[PHP] Google 애널리틱스 액세스 위장 방법 구현 [FuelPHP]

7174 단어 분석FuelPHPPHP
f:id:makoto1899:20150121152037j:plain

어쩐지 한 사이트의 액세스 해석을 하고 있지만, Google Analytics의 해석과 실제 서버의 액세스 로그 값이 10배 정도 다르다. 뭐야 이거!? 라는 느낌이지만, 인기 사이트라고 생각하게 하고 싶을까~라고. 글쎄, 좋은가?

FavoritesFollows (유럽 축구 NEWS를 Twitter에 중얼거리는 Bot)로, 아무래도 클릭 해석을 하고 싶어서, 단축 URL 시스템까지 구축해, Google Analytics의 가벼운 해킹까지 한 경험으로부터, Google Analytics의 액세스 위장 방법을 구현해 보자 ~를 해설합니다.

전제 조건!
  • PHP5.3이 실행되는 서버
  • PHP 언어 지식
  • FuelPHP 지식 or 학습 의욕
  • Google 애널리틱스 지식
  • Contab에서 정기 자동 실행이 가능합니다

  • 그럼!

    키포인트는 Server-Side Google Analytics PHP Client  입니다. 이것은 Google 애널리틱스를 자바 스크립트가 아니라 PHP에서 직접 추적을 발행할 수 있습니다. 초역하면 PHP에서 "여기에서 액세스 되었잖아"를 Google Analytics 서버에 보낼 수 있습니다.

    소스는 여기!
    /**
     * GoogleanAlyticsトラッキングを、PHPで強引に送信する
     * 
     * @param type $long_url
     * @param type $title
     * @param type $remote_addr
     * @param type $http_user_agent
     */
    public static function googleanalytics_track($long_url, $title, $remote_addr, $http_user_agent)
    {
        // Initilize GA Tracker
        $tracker = new GoogleAnalytics\Tracker(\Config::get('googleanalytics.key'), \Config::get('googleanalytics.domain'));
    
        // Assemble Visitor information
        // (could also get unserialized from database)
        $visitor = new GoogleAnalytics\Visitor();
        $visitor->setIpAddress($remote_addr);
        $visitor->setUserAgent($http_user_agent);
    
        // Assemble Session information
        // (could also get unserialized from PHP session)
        $session = new GoogleAnalytics\Session();
    
        // Assemble Page information
        $page = new GoogleAnalytics\Page(str_replace("http://", "/", $long_url));
        $page->setTitle($title);
    
        // Track page view
        $tracker->trackPageview($page, $session, $visitor);
    
    }
    
  • $long_url (은)는, 액세스처 위장하고 싶은 URL를 그대로 삽입.
  • $title 은, 액세스처 위장하고 싶은 페이지 타이틀을 그대로 삽입.
  • $remote_addr 은 IP 주소를 포함합니다. 어디에서 액세스했는지 가장할 수 있습니다.
  • $http_user_agent는 UA를 가장합니다.

  • 예를 들어, 스마트 폰 (iPhone 등) 액세스에서 3 대 경력 (도코모/au/SoftBank)에서 액세스라고 위장하고 싶다면 $ remote_addr
  • 만들자 스마트 폰 콘텐츠 : sp 모드 서버 정보 | 서비스 및 기능 | NTT 도코모

  • KDDI au: 기술 정보 > IP 주소 대역

  • 웹 기술 정보 | SoftBank 스마트 폰 서비스 개발 지원 사이트 | SoftBank  

  • 에서 임의의 IP 주소를 포함하면 OK! 다만, 고정이라고 Google Analytics의 해석으로 알 수 있으므로, 랜덤하게 하지 않으면 안됩니다.

    $http_user_agent는

    User Agent | Android(TM) 기술 정보 | au

    빼내면 좋다고 생각합니다. iPhone에 최신은 이런 느낌이다.

    Mozilla/5.0 (iPhone; CPU iPhone OS 8_0_2 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12A405 Safari/600.1.4

    또한 Google 애널리틱스의 분석에서 자바스크립트 액세스 위장을 했을 경우 가장 흔들리기 쉬운 점으로 화면 해상도가 있는데 php-ga에서는 설정할 수 있습니다.
    $visitor->setScreenResolution('1024x768');
    

    이 1024x768의 문자열을, UA가 iPhone이라면 iPhone용의 해상도에. UA가 Xperia인 경우 Xperia용 해상도로 설정합니다. (덧붙여서, 이것은 JavaScript로는 할 수없는 것 같습니다 ... 진짜!?)

    그리고, 만약에 마음을 넣는 분은, 화면의 색도 설정합시다.
    $visitor->setScreenColorDepth('32-bit');
    

    라든지 설정하면 좋다. (자세한 것은, 모르기 때문에, 조사해 주세요~)

    리퍼러(Referrer)가 없으면, 괴롭히지 말아라.
    $page->setReferrer($referrer);
    

    에서 $referrer 부분에 액세스 소스로 가장하는 URL을 포함하십시오. Google Analytics는 액세스 경로도 분석하므로 중요합니다!

    이상으로, FuelPHP로 「Google Analytics의 액세스 위장 방법을 구현해 보겠습니다」였습니다. 악용하지 마세요!

    좋은 웹페이지 즐겨찾기