NO AC.Milan, NO LIFE

ミラニスタによるミランと関係が薄いブログ

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

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サーバに送りつける事が出来ます。

ソースは、こちら!

  • $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 までメールを。知っている事なら答えます。