murak.net

アクセス解析・Googleアナリティクス・ネット戦略・SEO・Webプログラミングなどを綴るブログ

Analyticsトラッキングコードの外部ファイル化と検索エンジンの追加

Google Analyticsのトラッキングコードを変更したいときは、全てのページをその都度修正する必要があって面倒ですね。そんなときはトラッキングコードを外部ファイルにしておくと便利です。またSEOにも効果的です。

トラッキングコードの外部ファイル化と一緒に、トラッキングコードに追加する検索エンジンのコードを整理したので、合わせて紹介します。Analyticsの非同期トラッキングコードに対応しています。

まず、Analyticsトラッキングコードの外部ファイルを作成します。中身はGoogle Analyticsの非同期トラッキングコードそのままで、前後の<script>タグを削除します。

analytics.js:

var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

そして、全ページの<head>内に元々入っていたトラッキングコードを削除して、代わりに次の1行を入れれば完了です。外部ファイルanalytics.jsのパスは置き場所に合わせて変更してください。

<script type="text/javascript" src="js/analytics.js"></script>

Analyticsトラッキングコードへ検索エンジン追加

Analyticsにはyahoo、googleなど主要な検索エンジンが登録されていて、参照元や検索キーワードが自動的に集計されるのですが、その他の日本の検索エンジンは登録されていません。そこで、トラッキングコードに次のようなコードを追加すると日本の検索エンジンがAnalyticsに認識されるようになります。

analytics.js:

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);

  _gaq.push(['_addOrganic', 'ocnsearch', 'MT']);
  _gaq.push(['_addOrganic', 'naver.jp', 'q', true]);
  _gaq.push(['_addOrganic', 'livedoor-search', 'q', true]);
  _gaq.push(['_addOrganic', 'odn', 'search']);
  _gaq.push(['_addOrganic', 'hi-ho', 'search']);
  _gaq.push(['_addOrganic', 'excite', 'search']);
  _gaq.push(['_addOrganic', 'nifty', 'q', true]);
  _gaq.push(['_addOrganic', 'auone', 'q', true]);
  _gaq.push(['_addOrganic', 'so-net', 'query']);
  _gaq.push(['_addOrganic', 'hatena', 'word']);
  _gaq.push(['_addOrganic', 's.luna.tv', 'q']);
  _gaq.push(['_addOrganic', 'ecnavi', 'keyword']);
  _gaq.push(['_addOrganic', 'tnc.jword.jp', 'q']);
  _gaq.push(['_addOrganic', 't-com.jword.jp', 'q']);
  _gaq.push(['_addOrganic', 'search.jword.jp', 'name']);
  _gaq.push(['_addOrganic', 'asahi', 'Keywords']);
  _gaq.push(['_addOrganic', 'fresheye', 'kw']);

  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

2012年4月22日:goo、楽天、biglobeがアナリティクスで認識されるようになったためコードから削除しました。

検索エンジンは年々変化するのでコードを更新していく必要があります。今回紹介するコードは2011年12月現在の検索エンジンを調査して作成しました。全ての行を入れる必要はありません。アクセスが少ない検索エンジンを削ってコードを軽くしましょう。

コードの説明をすると、_gaq.push()の第2引数にドメインの一部を指定して、第3引数にキーワードのクエリを指定します。リファラーに両方が含まれていると検索エンジンとして認識されます。

第4引数のtrueは、検索エンジンのリストの先頭に追加する指定です。Analyticsにはデフォルトでドメイン”search”、クエリ”q”が登録されているので、通常はサブドメインに”search”が含まれていて同じクエリ”q”が使われているとsearchに含まれてしまいます。そこでtrueを付けると先に判定されるのでsearchに含まれるのを回避できます。

検索エンジンの判定は上から順番に行われるようなので、同じドメインが含まれる場合は順序に注意します。例えばodnの検索ドメインはodn.excite.co.jpなので、exciteより先に記載します。livedoorの検索ドメインはlivedoor-search.naver.jpなのでnaver.jpより優先させますが、trueで先頭に追加しているため、順序を逆にします。

次の画像がAnalyticsの検索サマリーです。検索エンジンの参照元として集計されていることが分かります。

 

 

作成にあたっては次のサイトを参考にさせていただきました。

補足

ocnsearch、goo、asahiが検索エンジンとして認識されないようです。どなたかご存知でしたら教えてください。
apacheのアクセスログにはリファラが記録されていましたが、trueを付けても、クエリを小文字にしても、ドメインを指定しても駄目でした。
クエリが大文字だと駄目なのかなあ。

ocnsearch、gooは少し前から認識されなくなり、asahiは2ページ目以降でないとリファラに残らないそうです。Cinciのmakitaniさん情報ありがとうございます。

関連しているかもしれない記事


投稿者: 村上 和久

アクセス解析・Webコンサルティングのアナライズネット代表・Webアナリスト。Googleアナリティクスの導入とカスタマイズ、ウェブ分析、アクセス解析に関するセミナーなどを行っている。

5件のコメント

  1. トラックバック: cheap wedding rings for women uk

  2. トラックバック: sonamyh.com

  3. トラックバック: expedia travel customer service

  4. Wow, incredible blog layout! How long have you been blogging for?
    you made blogging look easy. The overall look of your site is wonderful, as well
    as the content!

  5. “Analyticsトラッキングコードの外部ファイル化と検索エンジンの追加 | Google Analytics | http://t.co/Awn0fsZ2” http://t.co/DbZcxka4