アクセス解析は色々ありますが、高機能で人気なのがGoogle Analytics。Googleっていうネームバリューもしかり、使いやすくて自分も気に入ってます。でもJavaScriptを埋め込んで情報を送る仕組みなため、携帯とかモバイル関連の解析ができないのが難点。
そこでエクスブリッジからSELENE.GA4KというGoogle Analyticsを携帯サイトで利用するためのライブラリが登場しました。
で、Wordpressのktai styleプラグイン利用環境に導入する手順の覚書です。
SELENE.GA4Kの設置
まずこちらからSELENE.GA4Kをダウンロードして解凍。
Configフォルダ内のanalytics_config.phpファイルを修正。
21,22行目先頭のコメントアウトを消して有効にし、自分の環境に書き換える。
define('ANALYTICS_ID', 'XX-XXXXXXX-X');
define('WEBSITE_DOMAIN', 'http://muda.info');
Google Analyticsフォルダごとktai styleのテーマファイルのある場所にアップロード。
次にktai styleのテーマファイルheader.phpファイルを編集。
headタグの中あたりに以下のコードを追加。
<?php require_once (dirname(__FILE__) . '/../GoogleAnalytics/Config/analytics_config.php'); require_once (dirname(__FILE__) . '/../GoogleAnalytics/Service/analytics.php'); sendGoogleAnalytics(ANALYTICS_ID, WEBSITE_DOMAIN); ?>
ちなみにフォルダ構成はこんな感じです。
wp-content/ktai-themes/GoogleAnalitics/Service/
wp-content/ktai-themes/GoogleAnalitics/Config/
wp-content/ktai-themes/muda.info/header.php
パスはheader.phpファイルからの相対パスで。
dirname(__FILE__)は後ろに/付かないので入れ忘れないように注意。
一応これだけで解析そのものはできるようになります。
記事タイトルの解析
このままだと記事のタイトルが記録されず、すべてハイフンになるので使いづらいです。
なので記事タイトルもGoogle Analyticsに送信するようにします。
analytics.phpファイルの53行目に以下を追加
$ptitle = urlencode(ks_title()); //page title
その下の$urchinUrlにセットする処理でutmdtに$ptitleを記述。
つまり以下↓
$urchinUrl = 'http://www.google-analytics.com/__utm.gif?utmwv=1&utmn='.$utmn.'&utmsr=-&utmsc=-&utmul=-&utmje=0&utmfl=-&utmdt='.$ptitle.'&utmhn='.$utmhn.'&utmr='.$referer.'&utmp='.$utmp.'&utmac='.$utmac.'&utmcc=__utma%3D'.$cookie.'.'.$random.'.'.$today.'.'.$today.'.'.$today.'.2%3B%2B__utmb%3D'.$cookie.'%3B%2B__utmc%3D'.$cookie.'%3B%2B__utmz%3D'.$cookie.'.'.$today.'.2.2.utmccn%3D(direct)%7Cutmcsr%3D(direct)%7Cutmcmd%3D(none)%3B%2B__utmv%3D'.$cookie.'.'.$uservar.'%3B';
別にいちいち変数かまさなくてもいいと思いますが、わかりづらいので一応。
検索エンジンクローラー対策
ktai styleはそもそもモバイル端末しか来ない(PCからのアクセスではSELENE.GA4Kは実行されない)のでPC用クローラーは心配ありません。さらにSELENE.GA4KはPC用のクローラー防御対策を備えています。なのでもし仮に通っても記録されません。
でも携帯に模した検索クローラーはすごい数やってくる。。。
なので対策。
クローラー対策についてはke-tai.orgさんの記事を参考にしました。
isCrawler関数をanalytics.phpに追加。
/**
* クローラ判定
* @return bool true:クローラ、false:非クローラ
*/
function isCrawler()
{
$crawler_arr = array(
'Googlebot-Mobile',
'moba-crawler',
'mobile goo',
'LD_mobile_bot',
'froute.jp',
'Y!J-SRD',
'Y!J-MRD'
);
foreach ($crawler_arr as $val) {
if (false !== strpos($_SERVER['HTTP_USER_AGENT'], $val)) {
return true;
}
}
return false;
}
isMobile関数内のユーザーエージェント判定処理をisCrawlerの判定文で囲む。
つまり、クローラーだったら情報をGoogle Analyticsに送信しない。
if(!isCrawler()){
if(eregi(USER_AGENT_PATTERN_DOCOMO, $user_agent)){
//echo("ドコモ");
$mobile_flg = true;
}else if(eregi(USER_AGENT_PATTERN_SOFTBANK, $user_agent)){
//echo("SoftBank");
$mobile_flg = true;
}else if(isset($_SERVER["HTTP_X_JPHONE_MSNAME"])){
//echo("旧 J-Phone");
$mobile_flg = true;
}else if(eregi(USER_AGENT_PATTERN_AU, $user_agent)){
//echo("au");
$mobile_flg = true;
}else if(eregi(USER_AGENT_PATTERN_WILLCOM, $user_agent)){
//echo("WILLCOM");
$mobile_flg = true;
}else{
//echo("PC");
$mobile_flg = false;
}
}
こんな感じです。正直これやらないとクローラーきまくりで使い物にならないかと。
有用なクローラー判定処理を作成していただいたke-tai.orgさんに感謝です。
一応手順は以上ですがこの方法、サーバー内でJavaScrit送信処理を生成して送る方式なのでGoogle Analyticsの規約としては正直微妙だと思います。
なので試す方は自己責任でお願いします。
【追記】
Ver1.1.1でクローラー対策などが改善された模様です。
【さらに追記】
Google Analyticsで携帯解析がサポートされました。
関連記事:
- Newer: FTPサーバーダウン?
- Older: モバイルWiMAXがいよいよ今月から開始
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://blog.nakatta.net/archives/2009/02/google-analytics-mobile.html/trackback
- Listed below are links to weblogs that reference
- Google Analyticsでモバイル解析 from Nakatta blog