Creazy!

WEBエンジニア・ヤガーのテック・ガジェットブログ

SEO 小技集

Google Analytics に独自検索エンジンを追加している場合の問題と対応

投稿日:


Google Analytics で異常発生
今日まで夏休みなんですが、昨日まで出かけていた期間のアクセス解析をGoogle Analyticsで確認していたら、すごい勢いで下降線。というか、これは明らかにおかしいのでデバッグしてみるとGoogle Analyticsのコードでエラーが発生していました。
Google Analytics の検索エンジン定義と独自の検索エンジンを追加する方法
こちらのエントリーで書いている通り、Google Analyticsがデフォルトで対応していない日本国内の検索エンジンを、「Organic(検索エンジン)」と認識させ、キーワードなどに正確に反映されるためのカスタマイズを行っていたのですが、そこで使っていた一部関数が現在のバージョンでは使えなくなっているようなのです。おそらく、Google側のコードが変更されたのは 9/3 〜 9/4 くらいだと思われます。
詳細は続きにて解説します。

問題のソースコード

独自の検索エンジンを追加するために以下のようなコードをはりつけていました。

var pageTracker = _gat._getTracker("UA-xxxxxx-x");
// デフォルトの検索エンジンリストをバックアップ
var _org_search_list = pageTracker.hd();
// 一旦、クリア
pageTracker._clearOrganic();
// 検索エンジンリストを追加
pageTracker._addOrganic("goo.ne.jp","MT");
pageTracker._addOrganic("livedoor","q");
pageTracker._addOrganic("nifty","Text");
pageTracker._addOrganic("biglobe","q");
pageTracker._addOrganic("excite.co.jp","search");
pageTracker._addOrganic("infoseek","qt");
pageTracker._addOrganic("fresheye","kw");
pageTracker._addOrganic("hatena","word");
pageTracker._addOrganic("auone","q");
pageTracker._addOrganic("marsflag","phrase");
pageTracker._addOrganic("mooter","keywords");
pageTracker._addOrganic("namaan","query");
pageTracker._addOrganic("bloglines","q");
// デフォルトの検索エンジンリストをリストア
for( var i=0 ; i<_org_search_list.length ; i++ ){
pageTracker._addOrganic(_org_search_list[i].zb,_org_search_list[i].Nb);
}
pageTracker._trackPageview();

今回問題となっているのは、pageTracker.hd() という関数なのですが、これはGoogle Analytics側に定義されている検索エンジンの定義リストを取得するためのものでした。この関数が現在は無くなってしまっているため、google や yahoo などもともと Analytics に定義されている大手検索エンジン経由のアクセスが記録されなくなってしまっていました。

とりあえずの回避策

簡単に別の関数に置き換えられそうであれば、修正版を提示したかったのですが、すぐにはできなそうなのでとりあえずエラーを回避するコードを紹介します。

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-XXXXXX-1");
if ( pageTracker.hd ) {
var _org_search_list = pageTracker.hd();
pageTracker._clearOrganic();
}
pageTracker._addOrganic("goo.ne.jp","MT");
pageTracker._addOrganic("livedoor","q");
pageTracker._addOrganic("nifty","Text");
pageTracker._addOrganic("biglobe","q");
pageTracker._addOrganic("excite.co.jp","search");
pageTracker._addOrganic("infoseek","qt");
pageTracker._addOrganic("fresheye","kw");
pageTracker._addOrganic("hatena","word");
pageTracker._addOrganic("auone","q");
pageTracker._addOrganic("marsflag","phrase");
pageTracker._addOrganic("mooter","keywords");
pageTracker._addOrganic("namaan","query");
pageTracker._addOrganic("bloglines","q");
if ( pageTracker.hd ) {
for( var i=0 ; i<_org_search_list.length ; i++ ){
pageTracker._addOrganic(_org_search_list[i].zb,_org_search_list[i].Nb);
}
}
pageTracker._trackPageview();
</script>

pageTracker.hd という関数があれば今まで通りの処理を行い、なければ、既存の検索エンジンリストのクリアをせずに独自検索エンジンを追加していきます。まあ、この関数なくなってるのでIFで分岐する意味があるのかっていうのはあるのですが・・・。

最新の検索エンジン定義リスト

AnalyticsのHTMLコード(ga.js)を解析しきっていないので完全な対応策はまだないのですが、とりあえず最新の検索エンジン定義は取得できたので表にしておきます。

検索エンジンホスト 検索キー
images.google q
google q
yahoo p
msn q
bing q
aol query
aol encquery
lycos query
ask q
altavista q
netscape query
cnn query
looksmart qt
about terms
mamma query
alltheweb q
gigablast q
voila rdata
virgilio qs
live q
baidu wd
alice qs
yandex text
najdi q
aol q
club-internet query
mama query
seznam q
search q
wp szukaj
onet qt
netsprint q
google.interia q
szukacz q
yam k
pchome q
kvasir q
sesam q
ozu q
terra query
nostrum query
mynet q
ekolay q
search.ilse search_for
rambler words

Goolgeのライバルか!?と言われているBingが追加されていますね。

まとめ

とりあえず、エラー回避策の紹介までになってしまいましたが、ボクの紹介した方法でAnalyticsタグを改変されている方は数字的にも結構影響あると思いますので、すぐに対応される事をお勧めします。以前から、「自己責任で」という前置きのもと紹介しておりますが、この機にデフォルトの解析コードに戻しておくのが一番安全かもしれません。
ただ、個人的には国内の検索エンジンについても正確に把握したいので、別の対応方法がないか引き続き検討してみたいと思います。何か分かればお知らせします。
できる100ワザ Google Analytics 増補改訂版 SEO&SEMを強化する新・アクセス解析術 (単行本)
4844327348

-SEO, 小技集

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

no image

第13回:URLエンコードとURLデコードを簡単にするブックマークレット

URLエンコードとURLデコードって頻繁には使わないけど、いざ使う時は適当にGoogleで検索して出てきた変換サイトを使っていたりしました。 この辺とか、 URLエンコードとデコードが行えるフォームで …

Google Analytics の検索エンジン定義と独自の検索エンジンを追加する方法

【2009/09/07:追記】 このページで解説している方法が使えなくなりました。 問題の解説と対応策は下記エントリーをご覧ください。 Google Analytics に独自検索エンジンを追加してい …

no image

mixi日記投稿用APIを使ってPHPからmixi日記にポスト

via: mixi for iPhoneから発掘されたmixi日記投稿用API « ku という事で、iPhone用のアプリをキッカケにmixi日記にポストできるAPIが見つかったそうです。Perlの …

ハイビジョン映像(AVCHD)を記録するとMTSファイルになって扱いにくいのでffmpegでmp4に変換

手持ちのビデオ撮影機材が予算の関係で中古で購入したミラーレス一眼(GF1、GF3、GX1、なぜか全てPanasonic LUMIX)なんですが、高画質で録画しようとするとAVCHDのMTSファイルにな …

Re2: 第3回:JavaScriptで画像サイズと合ったポップアップウィンドウを開く

修正を重ねている「第3回:JavaScriptで画像サイズと合ったポップアップウィンドウを開く」で作った関数ですが、ようやく完成系になったかもしれません。 今回は画像(IMGタグ)のonloadの扱い …

スポンサードリンク

スポンサードリンク