crm*_*cco 3 google-analytics google-chrome cross-browser web-analytics event-tracking
我的Google Analytics事件跟踪问题仅在Chrome上显而易见,而且没有其他浏览器.
我在我的网站上触发了以下Google Analytics跟踪代码,点击了锚点链接:
_gaq.push(['_trackEvent', 'Basket Remove', product_name, product_code, product_price, false]);
_gaq.push(['rollup._trackEvent', 'Basket Remove', product_name, product_code, product_price, false]);
Run Code Online (Sandbox Code Playgroud)
使用Web代理工具我可以看到第一个是触发,但第二个不是.对于_trackEvent
点击是指向另一个网页的链接的点击次数似乎就是这种情况,正如我所说的那样,只有谷歌浏览器才能显示.
在完成JavaScript执行之前,Chrome几乎已决定重定向到锚点中的链接.我没有在IE或FF中遇到此问题.
我试过坚持一次setTimeout
之后,之间的电话,但无济于事.
setTimeout('document.location="' + link.href + '"', 500);
Run Code Online (Sandbox Code Playgroud)
问题是,当在当前窗口中加载新页面的请求时,Chrome(和其他浏览器)将取消任何待处理的图像请求.您可能很幸运第一个_trackEvent请求被记录,因为在第二个_trackEvent期间进行了额外的处理.
向链接添加延迟时,需要确保链接的默认操作不会执行 - 否则在执行setTimeout功能之前,默认操作将在链接之后.
以下代码检查链接是否在新窗口中打开 - 如果没有,它会在链接后延迟150ms:
function track(link) {
_gaq.push(['_trackEvent', 'Basket Remove', product_name, product_code, product_price, false]);
_gaq.push(['rollup._trackEvent', 'Basket Remove', product_name, product_code, product_price, false]);
if ('_blank' == link.target) return true;
var url = link.href;
setTimeout(function(){ document.location = url; }, 150);
return false;
}
<a href="someURL" onclick="return track(this);">ClickMe</a>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2575 次 |
最近记录: |