0

我有一个基本的异步 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); 
})();

比更低,我听一个点击并想用 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 将代码直接放在元素上。这是强制性的还是我可以像我一样将代码放入函数中?

4

1 回答 1

0

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

Google 的测试版 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();

});

于 2013-10-08T14:26:38.993 回答