Google Analytics pageTracker未定义?

时间:2010-08-17 14:29:36

标签: javascript google-analytics

有点困惑......我正在尝试跟踪被点击的mailto链接,但是不断显示'pageTracker未定义'。我在我的结束体标记()

之前有以下代码
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-000000']); // This is my account number, I have added the zeros in this editor
  _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);
  })();
</script>

然后我在mailto链接中使用它

<a href="mailto:hello@mydomain.co.uk" onClick="javascript:pageTracker._trackPageview('/mailto/hello');">hello@mydomain.co.uk</a>

我不明白为什么它不起作用?任何帮助将不胜感激

4 个答案:

答案 0 :(得分:75)

新的Async Google Analytics代码(您正在使用的)与非Async的工作方式略有不同。任何时候你想在pageTracker上调用一个方法,你只需将“消息”推送到“_gaq”队列。

<a href="mailto:hello@mydomain.co.uk" onClick="_gaq.push(['_trackPageview', '/mailto/hello'])">hello@mydomain.co.uk</a>

虽然跟踪mailto链接可能会更好地作为一个事件:

<a href="mailto:hello@mydomain.co.uk" onClick="_gaq.push(['_trackEvent', 'mailto', 'home'])">hello@mydomain.co.uk</a>

有关详细信息,请查看Async Tracking Users Guide

答案 1 :(得分:20)

我们还可以添加:

//mantain syntax between old and new asynch methods
//http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html#Syntax
function _pageTracker (type) {
    this.type = type;
    this._trackEvent = function(a,b,c) {
       _gaq.push(['_trackEvent', a, b, c]);
    };
}

var pageTracker = new _pageTracker();

在新代码中维护页面中的旧代码。

答案 2 :(得分:3)

以下是代码:

onClick="_gaq.push(['_trackEvent', 'pdf', 'download', '/pdf/myPdf'])">myPdf</a>

答案 3 :(得分:1)

我还需要一种方法来解决下载PDF问题,并且继续使用我所使用的内容:

<a href="http://www.domain.com/assets/downloads/filename.pdf" target="_blank" onClick="_gaq.push(['_trackEvent', 'Downloads', 'Download', 'Price Brochure PDF'])">Download Brochure</a>

有关 _trackEvent 的详情,请见API Doc page