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さん情報ありがとうございます。
関連しているかもしれない記事
- Google Analyticsにフォーム入力イベントなどを機能拡張するJavaScript「GA Functions」
- SEOでやるべきたった一つのこと
- 投稿にカスタムフィールドを挿入するショートコードのプラグイン Insert Custom Fields
- Googleタグマネージャとアナリティクスでフォーム入力イベントトラッキング – 独自のイベントリスナー作成の基本
- SEOのペナルティでGoogle検索の順位が急降下した例
トラックバック: cheap wedding rings for women uk
トラックバック: sonamyh.com
トラックバック: expedia travel customer service
2012年6月20日 9:42 AM
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!
2012年1月10日 7:34 PM
“Analyticsトラッキングコードの外部ファイル化と検索エンジンの追加 | Google Analytics | http://t.co/Awn0fsZ2” http://t.co/DbZcxka4