LoginSignup
9
11

More than 5 years have passed since last update.

[PHP] Google Analytics のアクセス偽装方法を実装してみる [FuelPHP]

Last updated at Posted at 2015-03-16

f:id:makoto1899:20150121152037j:plain

なんか、あるサイトのアクセス解析をしているのだが、Google Analytics の解析と、実サーバのアクセスログの値が、10倍ぐらい違う。なにこれ!? って感じだけど、人気サイトであると思わせたいのかな~と。まあ、良いか。

FavoritesFollows (欧州サッカーNEWSををTwitterにつぶやくBot)で、どうしてもクリック解析がしたくて、短縮URLシステムまで構築し、Google Analytics の軽いハックまでした経験から、Google Analytics のアクセス偽装方法を実装してみる~を解説します。

前提条件!

  • PHP5.3が動くサーバ
  • PHPの言語知識
  • FuelPHPの知識or学習意欲
  • Google Analyticsの知識
  • Contab で定期自動実行が出来る

では!

キーポイントは、Server-Side Google Analytics PHP Client です。これは、Google AnalyticsをJavaScriptではなく、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 は

から、任意の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 Analytics上の解析で、JavaScript によるアクセス偽装をした場合、一番バレやすい点として、画面の解像度があるのですが、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 のアクセス偽装方法を実装してみる」でした。悪用しないでね!じゃ!

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11