アクセス解析は色々ありますが、高機能で人気なのが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