Google Analytics无法在功能中跟踪事件

时间:2013-10-07 22:15:26

标签: jquery google-analytics

我有一个基本的异步Google Analytics代码:

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

比较低,我听一下点击并希望通过Google Analytics跟踪它:

$('#content').on("click", "#btn", function(e) {
    var elem = $(this);
    this.form.target = '_self';
    _gaq.push(['_trackEvent', 'download', elem.text()]);
    return true;
});

点击被触发,我可以看到_gaq被定义了 但不知何故,事件永远不会被追踪? 我读了https://developers.google.com/analytics/devguides/collection/gajs/?hl=fr
和不同的Stack Overflow答案,但我没有找到我所缺少的东西...

我找到的所有示例都将代码直接放在具有OnClick的元素上。这是强制性的,还是可以像我一样将代码放在函数中?

1 个答案:

答案 0 :(得分:0)

_trackEvent通过从Google Analytics服务器请求跟踪像素来记录数据,并将数据作为请求的参数。如果浏览器开始处理新页面(因为跟踪链接或提交表单),则可以取消图像请求,并且不记录数据。

Google的beta Universal Analytics(analytics.js)允许使用在发送数据时执行的hitCallback函数。

ga.js的常用模式是在链接或提交表单之前添加一点延迟(150毫秒)。

尝试类似

的内容
$('#content').on("click", "#btn", function(e) {
  var elem = $(this);
  _gaq.push(['_trackEvent', 'download', elem.text()]);
  var form = this.form;
  form.target = '_self';
  setTimeout(function(){ form.submit(); }, 150);
  e.preventDefault();

});