Google Analytics で livedoor や BIGLOBE が集計できない件への対処法

_addOrganic() でカスタマイズしても Google Analytics は検索クエリが「q」で、サブドメインが「search」だと正常に検出してくれないという話があります。

確かに言われてみると livedoor や BIGLOBE はカウントされていません。 逆に search が妙に多くて「search.com ってそんなに一般的なのかなあ?」と訝しんでいたのでした。 ドメイン名の一部に search を含んでいるものが全て集約されているとすると合点が行きます。

実際に試してみると、livedoor は "live"、BIGLOBE は "search" でカウントされているようでした。 どうもデフォルトで登録済みのサーチエンジンが優先されるようで、参照元ホスト名を部分一致で判定しているようです。

そこで何とか livedoor や BIGLOBE からのトラフィックを判別できないかと調べたのですが、以下のようにすれば出来ました。

pageTracker._clearOrganic();
pageTracker._addOrganic("google", "q");
pageTracker._addOrganic("yahoo", "p");
pageTracker._addOrganic("goo", "MT");
pageTracker._addOrganic("nifty", "q");
pageTracker._addOrganic("infoseek", "qt");
pageTracker._addOrganic("msn", "q");
pageTracker._addOrganic("search.livedoor", "q");
pageTracker._addOrganic("search.biglobe", "q");
pageTracker._addOrganic("search.com", "q");
pageTracker._addOrganic("live.com", "q");
pageTracker._addOrganic("aol", "query");
pageTracker._addOrganic("ask", "q");
pageTracker._addOrganic("baidu", "wd");
pageTracker._addOrganic("excite", "search");
pageTracker._addOrganic("namaan", "query");
pageTracker._addOrganic("luna", "q");

そうです。_clearOrganic() という API を用いてデフォルトの登録を消去し、全てを自分で登録するのです。

部分一致だとすると Google と goo の扱いも気になるところですが、とりあえずこのコードの通りの呼び出し順で Google と goo のトラフィックもきちんと分離できています。 このテクニックを使えば Google のウェブ検索と画像検索のトラフィックを分けて集計したり、ということもできそうですね。

参考記事


2008.7.26 追記
Nifty が検索のリニューアルをしていて、検索文字列パラメータが "Text" から "q" に変更となっています。 これに合わせてコードを修正しました。

2008. 12. 5 追記
デフォルトの設定を消すことなく、分析したいサーチエンジンを追加登録したいという方は、こちらのブログ記事 をご覧下さい。 最後の方に改善されたコードが紹介されています。


2010.10.14 更に追記
現在は _addOrganic() の引数が増えて、追加する検索エンジンをデフォルトで登録されているものよりも優先させることができるようになっていて、第3引数を true にすれば _clearOrganic() を呼ぶ必要はありません。 詳しくはヘルプを参照ください。