【问题标题】:Google Analytics custom events not tracking properlyGoogle Analytics 自定义事件未正确跟踪
【发布时间】:2012-03-07 03:26:42
【问题描述】:

这是 GA 输出代码:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA_CODE']);
  _gaq.push(['_setDomainName', 'SUBDOMAIN']);
  _gaq.push(['_trackPageview']);
  _gaq.push(['_trackEvent', 'Priority', 'Created (day)', 'Label info', '']);



  (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>

trackEvent 行似乎是正确的......但由于某种原因没有跟踪。是不是因为我把值字段留空了?

【问题讨论】:

    标签: google-analytics


    【解决方案1】:

    对于_trackEventvalue 参数应为整数。因为它是一个可选参数,你可以省略它:

    _gaq.push(['_trackEvent', 'Priority', 'Created (day)', 'Label info']);
    

    具有非整数值将阻止事件被跟踪。

    【讨论】:

    • 我改变了它,现在它说我的访问者正在发送事件(您的访问中有 401 个发送了事件),但它仍然显示总共 0 个事件。我几个小时前才做出这个改变,难道还没有足够的时间来加载事件吗?
    • @MatthewBerman 可能需要一两天才能开始显示这些事件
    • @eduardocereto 哦,真的吗?好的,这很奇怪,但我会在几天后报告。这很奇怪,因为它是说用户正在传递事件,但实际事件没有出现。那是你的经历吗?此外,我的测试事件(忘记了我实际上是如何触发这个事件的)在它通过的同一天出现了。
    • @Matthew Berman——我也在处理这个问题;它显示我的 52 次访问发送了事件,但没有事件数据通过。已经超过 24 小时,应该有足够的时间来存储一些数据。
    • @TonyTheJet 如果是这种情况,您可能使用了错误的跟踪调用。 Google 文档中的示例用于异步跟踪代码(格式为 _gaq.push(['_trackEvent', ...]))。如果您使用的是传统代码,则需要调用 pageTracker._trackEvent(...) 形式。我自己犯了这个错误,看到的结果与您描述的完全相同。我一更改它,它就按预期工作了。
    【解决方案2】:

    我相信_trackEvent 从 GA 跟踪代码 sn-p 调用时将无法正常工作,至少它不是为这种用途而设计的。如果您想在页面加载后执行事件,请尝试从您的 body 标记的 onLoad 事件中调用它。

    其次,将可选值参数传递为'' 会使其未定义,看起来它可能会产生错误,因此,由于它是可选的,所以根本不要传递它。

    而且 GA 报告存在延迟,数据处理大约需要 24 小时(您可以在新旧版本之间切换,有时一个显示数据的速度比另一个快)。

    【讨论】:

    • 另外''undefined 是完全不同的东西。这是一个完美的例子。如果您将值作为空字符串 ('') 传递,它将不起作用,但如果您忽略它或将其作为 undefined 传递,则事件有效。
    • 我相信空字符串和未定义可能不同,也可能不同,这取决于条件语句。在 JS 中,'' == undefined 为真,'' === undefined 为假。在任何情况下,在该可选参数中同时传递空字符串和 undefiend var 完全没有意义。
    • 至于跟踪代码中的_trackEvent,我的观点是它不起作用的原因有很多,例如,这个方法不是为了从代码中调用而设计的,会退出页面跳出率等。但这是我的想法,我还没有检查过。
    • 好点。您仍然可以使用 opt_noninteractive 标志来避免破坏跳出率。 _gaq.push(['_trackEvent', 'Cate', 'Act', 'Lab', 0, true]);
    • 是的,但在 GATC 中执行此类事件只会在事件跟踪报告中复制标准 GA 网页浏览数据。那么使用它有什么意义呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-07
    相关资源
    最近更新 更多