gpt4 book ai didi

javascript - 解释 Google Analytics 异步跟踪器

转载 作者:数据小太阳 更新时间:2023-10-29 04:41:20 28 4
gpt4 key购买 nike

我知道谷歌的异步分析跟踪器是如何工作的。以下代码用于初始化命令数组:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(
['_setAccount', 'UA-xxxxxxxx-x'],
['_trackPageview']
);
</script>

现在,这是一个标准数组,一旦加载了 GA 的代码就会被替换,并用作一种存储您的点击的队列。

我的困惑在于想知道如果用户单击导致重新加载的链接(在加载 GA javascript 之前),这些点击如何可能会持续存在。如果 GA 代码没有捕获到对 _gaq 对象的推送,那么用户单击一个链接并转到一个新页面,这个数组每次都只是重新初始化,不是吗?

javascript 变量不会在导致刷新的请求中持续存在,这不是真的吗?如果是这种情况,我们是否会丢失导致页面重新加载的原始点击?

非常感谢任何解释。

最佳答案

是的,您是对的,如果用户在 ga.js 加载并执行了对 Google 服务器的 __utm.gif 请求之前离开了网站,那么它将不会跟踪 _gaq 数组,并且该信息将永远消失.但是这个版本的代码仍然比旧的同步代码有很多好处。

首先,使用此方法加载 ga.js 是阻塞的。

巧妙地,ga.js 的加载是通过 JavaScript 间接注入(inject)的,而不是通过硬编码 <script>标签。根据 Google Code Blog ,

The second half of the snippet provides the logic that loads the tracking code in parallel with other scripts on the page. It executes an anonymous function that dynamically creates a element and sets the source with the proper protocol. As a result, most browsers will load the tracking code in parallel with other scripts on the page, thus reducing the web page load time.

这意味着对于大多数现代浏览器来说,ga.js 的加载以非阻塞方式发生(作为一个好处,async="true"部分,目前在 FF 4+, IE10p2+, Chrome 12+, Safari 5.1+, 中支持,正式化了这种异步化)。这会适度减少加载时间,并适度降低在 ga.js 加载之前发生点击的可能性。

预先对_gaq数组进行排队的好处是可以防止竞争条件;以前,如果您尝试在加载 ga.js 之前进行 GA 调用(例如,事件跟踪视频播放),它会抛出错误并且事件调用将丢失并且永远无法恢复。这样,只要 ga.js 最终加载,_gaq 数组就可以在加载时为所有调用提供服务。

关于javascript - 解释 Google Analytics 异步跟踪器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3754367/

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