なんか、あるサイトのアクセス解析をしているのだが、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サーバに送りつける事が出来ます。
ソースは、こちら!
- $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 のアクセス偽装方法を実装してみる」でした。悪用しないでね!じゃ!
良くわからない方は、makoto at dive-in.to までメールを。知っている事なら答えます。