“pageTracker”が使えない?! Google Analytics エラー対処法「pagetracker is not defined.」

2010年11月25日

イベント・トラッキングが出来なくなった?!

Google Analyticsで、問い合わせフォームやダウンロードのクリック測定をするのに便利なのが、「バーチャル・ページビュー」や「イベント・トラッキング」です。

Google Analyticsのヘルプには、"pageTracker"を使ってそれぞれ次のように記述するように説明されています。

pageTracker._trackPageview(‘仮想URL’)
pageTracker._trackEvent(‘カテゴリ’, ‘アクション’, ‘ラベル’, ‘値’)

しかし、Google Analyticsの新しいトラッキングコードである、非同期トラッキングコード(Asynchronous Tracking Code)を使用すると、この"pageTracker"が使えません。

Googleがこっちがオススメだよ!って推奨してるから、トラッキングコードが新しくなってパワーアップしたみたいだから、と無邪気にスニペット(トラッキングコード)の変更だけをすると困ったことになります。。

新しいトラッキングコードでは、"pageTracker"がそのまま使えないため、トラッキングコードだけを変えると、"pageTracker"の部分でjavascriptエラーが発生してしまいます。

エラーコンソールなどでみると「pageTracker is not defined.」と言われちゃいます。最初は、いきなり使えなくなって戸惑ってしまいました。Googleがこっちがオススメだよ!って推奨してるから、じゃあ、ってことで古いものと差替えたのに、"pageTracker"の注意書きやアナウンスなんかは(多分)何もなかったんだもん(見落としかなぁ~)。。未だに、Google Analyticsのヘルプには、"pageTracker"を使えって書いてありますし。

Google Analytics 非同期トラッキングコードでの、イベント・トラッキングの方法

ではどうすればいいか。Google Analyticsの非同期トラッキングコードで、「バーチャル・ページビュー」や「イベント・トラッキング」を使用するには、"pageTracker"に代わって"_gaq.push"を使います。記述の方法は次のようになります。

バーチャルページビュー
_gaq.push([‘_trackPageview’,’仮想URL’]

イベントトラッキング
_gaq.push([‘_trackEvent’,’カテゴリ’,’アクション’,’ラベル’,’値’])

これを、例えばダウンロードボタンをクリックした時に、「バーチャル・ページビュー」と「イベント・トラッキング」の両方を記録するようなリンクのタグはこのようになります。(2011.10.23修正)

<a href="javascript:void(0);" onclick="javascript:_gaq.push([‘_trackPageview’,’/download/pdf’]);_gaq.push([‘_trackEvent’,’download’,’PDF’]);return false;">ダウンロード</a>

<a href="ZYX.pdf" onclick="javascript:_gaq.push([‘_trackPageview’,’/download/pdf’]);_gaq.push([‘_trackEvent’,’download’,’PDF’]);">ダウンロード</a>

この変更、その他カスタム変数などを使っている場合も変更が必要です。

【参考】
非同期スニペットのスタート ガイド – Google Analytics – Google Code
非同期トラッキングの利用ガイド – Google Analytics – Google Code
Google Analytics 非同期トラッキングコード再考 | MOL