Google Analytics(分析)JavaScript事件跟踪器代码不跟踪事件

时间:2012-02-28 06:14:10

标签: javascript google-analytics

我有我添加到我网站的Google Analytics代码(在PHP页面中),我还添加了代码来跟踪出站链接/事件。代码略有修改,因为我打开链接之前不需要等待一秒钟,因为无论如何它们都在新窗口中打开。

传出链接都正常工作。

出于某种原因,事件根本没有被跟踪。

以下是标题中的Google Analytics代码:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXXXX-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);
  })();

</script>

<script type="text/javascript">
function recordOutboundLink(link, category, action) {
  try {
    var myTracker=_gat._getTrackerByName();
    _gaq.push(['myTracker._trackEvent', category, action]);
  }catch(err){}
}
</script>

以下是我在每个链接上的代码:

<a href="http://sitelink.tld" target="_blank" onClick="recordOutboundLink(this, 'Outbound Links', 'http://sitelink.tld');">

有人可以帮我弄清楚为什么事件不会出现在Analytics Events页面上吗?

4 个答案:

答案 0 :(得分:1)

你的代码中是否是拼写错误? var myTracker=_gat._getTrackerByName();

不应_gat_gaq

答案 1 :(得分:1)

我在链接和表单元素上使用此代码,使用默认跟踪代码我获取事件,类别操作等。这一个只设置了前两个字段。

onclick="_gaq.push(['_trackEvent', 'Site wide', 'Search Input']);"

答案 2 :(得分:1)

您正在混合旧的同步语法和新的异步synteax。 你的功能应该是这样的:

function recordOutboundLink(link, category, action) {
    _gaq.push(['_trackEvent', category, action]);
}

答案 3 :(得分:1)

通过在函数中放置setTimeout,让js有时间运行并将事件发送给GA。在_gaq.push可以执行之前,页面将被重定向到出站链接。

function recordOutboundLink(link, category, action) {
    _gaq.push(['_trackEvent', category, action]);
    setTimeout('document.location = "' + link.href + '"', 100);
}

或者,在新窗口中打开:

function recordOutboundLink(link, category, action) {
    _gaq.push(['_trackEvent', category, action]);
    setTimeout('window.open("' + link.href + '","newsite")', 100);
}

如果您确定跟踪器正在运行并且有时间在新窗口加载之前运行,那么您的原始解决方案应该可以正常运行。

相关问题