Google Analytics pageTracker未定义?

lee*_*n3o 34 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>
Run Code Online (Sandbox Code Playgroud)

然后我在我的mailto链接中使用它

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

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

jos*_*rry 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>
Run Code Online (Sandbox Code Playgroud)

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

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

有关详细信息,请查看" 异步跟踪用户指南".

  • 非常感谢:)喜欢这个地方,几分钟和答案 - 发布在Google论坛上的小时前,而不是一个回复! (6认同)

Mer*_*nox 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();
Run Code Online (Sandbox Code Playgroud)

在新代码中保留页面中的旧代码.