GoogleAnalytics の _trackPageview での「pageTracker is not defined」の対処
Google Analytics で PDF や WMV 等の動画ファイルがファイルがどれくらい見られているかをトラッキングするのに使おうとしていた「_trackPageview」でJavaScriptエラーが発生する現象があったときの対処方法です。
pageTracker is not defined が発生する
最初に、以下のAnalytics ヘルプ のページを参考に、HTML の アンカータグに「_trackPageview」を設定しました。
サイトからのファイルのダウンロード (PDF、AVI、WMV など) をトラッキングするにはどうすればよいですか。 - Analytics ヘルプ
タグの onClick で「_trackPageview」を実行するように記述をします。
実際に設定したコードは以下のような形になります。
<a href="/files/hogehoge.pdf" onClick="javascript: pageTracker._trackPageview('/downloads/hogehoge'); ">
上のコードを設定したHTMLファイルをブラウザで開いて、リンクをクリックすると、「pageTracker is not defined」というエラーが発生しました。
Uncaught ReferenceError: pageTracker is not defined
エラーは Firefox の「Firebug」や Google Chromeの「デベロッパーツール(コンソール)」で見ることが出来ます。
Google Chrome で見ると以下のような形でエラーメッセージを確認できます。
_gaq.push を使うように変更になっていた
いろいろ調べてみると、Google Analytics では「非同期トラッキング」が標準設定になっていたようで、「_trackPageview」についても「_gaq.push」を使っての記述が必要になったようです。以下のページがとても参考になりました。
Google Analytics非同期トラッキングが標準設定に 海外SEO情報ブログ
なので、これに従ってタグの onClick 部分を書き換えてみます。
<a href="/files/hogehoge.pdf" onclick="javascript:_gaq.push(['_trackPageview','/download/hogehoge']);">PDFを見る</a>
今度はJavaScriptエラーも発生しなくなり、トラッキングも出来ているようでした。
イベントトラッキング(_trackEvent)や、カスタム変数(_setCustomVar)を使っている場合も同じような変更が必要になるようです。
今回参考にしたページ
サイトからのファイルのダウンロード (PDF、AVI、WMV など) をトラッキングするにはどうすればよいですか。 - Analytics ヘルプ
http://www.google.com/support/googleanalytics/bin/answer.py?answer=55529
Google Analytics非同期トラッキングが標準設定に 海外SEO情報ブログ
http://www.suzukikenichi.com/blog/google-analytics-asynchronous-tracking-is-now-default/
非同期トラッキングコード移行マニュアル カグア!
http://www.kagua.biz/tracking/asynchronous-ikou.html