我有一个基本的异步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的元素上。这是强制性的,还是可以像我一样将代码放在函数中?
答案 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();
});