gpt4 book ai didi

google-chrome - Google Analytics Event Tracking 仅针对 Chrome 上的多个帐户不触发

转载 作者:行者123 更新时间:2023-12-03 15:33:00 31 4
gpt4 key购买 nike

我有一个关于 Google Analytics 事件跟踪的问题,在 Chrome 上很明显,在其他浏览器上没有。

我在我的网站上触发了以下 Google Analytics(分析)跟踪代码,用于点击 anchor 链接:

_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]);

使用 Web 代理工具,我可以看到第一个正在触发,但第二个没有。这似乎是许多 _trackEvent 点击的情况,其中点击是指向另一个页面的链接,正如我所说,在 Google Chrome 中可见。 p>

就好像 Chrome 已经决定在完成 JavaScript 执行之前重定向到 anchor 中的链接。我在 IE 或 FF 中没有遇到这个问题。

我尝试在调用之后和调用之间添加 setTimeout,但无济于事。

setTimeout('document.location="' + link.href + '"', 500);

最佳答案

问题在于,当请求在当前窗口中加载新页面时,Chrome(和其他浏览器)将取消任何待处理的图像请求。您可能很幸运,第一个 _trackEvent 请求被记录下来,因为在第二个 _trackEvent 期间进行了额外的处理。

向链接添加延迟时,您需要确保不执行链接的默认操作 - 否则默认操作会在 setTimeout 函数发生之前跟随链接。

下面的代码检查链接是否在新窗口中打开——如果没有,它会延迟跟随链接 150 毫秒:

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>

关于google-chrome - Google Analytics Event Tracking 仅针对 Chrome 上的多个帐户不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15226302/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com