WordPressをモバイル対応させるプラグインKtai StyleとGoogle Analyticsでのアクセス解析でGoogle Analyticsを携帯サイトで利用するためのライブラリGA4Kを導入したと書きましたが、ちょっと挙動があやしかったので一時的に使用をやめていました。(GA4Kのバージョンは1.1.0)
というのも、どうやらクローラーのアクセスもカウントしている節があるのです。
具体的には、Google Analytics上で↑のようなDoCoMoからのアクセスがあるのですが、Apacheのログを見ても下記のようなYahoo!のモバイル版クローラーのアクセスしか見当たらないのです。
124.83.159.168 - - [01/Feb/2009:18:00:58 +0900] "GET /tech/index.php/archives/156?view=co_post HTTP/1.1" 206 3625 "-" "DoCoMo/2.0 SH902i (compatible; Y!J-SRD/1.0; http://help.yahoo.co.jp/help/jp/search/indexing/indexing-27.html)"
ちょっとコードを見てみると、GoogleAnalytics/Service/analytics.php L36あたりで
//モバイル判定
$send_flg = isMobile($_SERVER['HTTP_USER_AGENT']);
みたいなことをやってて、isMobile()の中の処理を見てみると
function isMobile($user_agent){
$mobile_flg = false;
if(eregi(USER_AGENT_PATTERN_DOCOMO, $user_agent)){
//echo("ドコモ");
$mobile_flg = true;
}else if(eregi(USER_AGENT_PATTERN_SOFTBANK, $user_agent)){
...
となっていました。USER_AGENT_PATTERN_DOCOMOは残念なことに
define('USER_AGENT_PATTERN_DOCOMO', '^DoCoMo');
なので、"DoCoMo"という文字列が UserAgent に存在すると、それがクローラーでも集計されてしまうというシナリオのようです。ここまでわかればPHP超初心者の自分でもパッチが作れそうだと思ったのですが、今日は寝不足で力尽きたのでまた次回。
2009/2/17追記:http://eos.exbridge.jp/news/show/17 の1.1.1でこの問題は修正されているようです。