Google Analytics异步跟踪代码片段的含义是什么?

5

谷歌在"将analytics.js添加到您的网站"指南中提供了以下代码片段:

window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;

这段代码是否初始化了Google Analytics?如何实现?
2个回答

4
让我们分解它。
window.ga=

将变量分配给 windows 对象上的 ga
window.ga||function(){...}

由于短路运算,这将分配现有的window.ga或调用函数。可以理解为:
if(!window.ga){
    window.ga = function(){...}
}

这个

(ga.q=ga.q||[])

如果windows.ga.q不存在,使用上面的方法进行简洁赋值来把一个数组分配给 ga.q。然后,将 arguments 添加到这个数组中。因此,ga 最终成为一个将参数push到数组中的函数。

接下来,

ga.l=+new Date;

这将使用一元运算符将日期作为数字(+new Date)分配给ga.l

因此,此代码最终创建了一个对象ga,其中包含一个在首次调用时创建空数组(q)并将arguments推入该数组的函数。它还创建了一个日期整数(l)。

为了将其大小减小到一行,并减少其大小,代码已被压缩。它还以这样的方式编写,如果对象已经存在,则不会被覆盖。

为什么?嗯,我认为@Patrick的答案涵盖了这一点


3

是和不是 - 它是 Google Analytics 初始化的一部分,但不是全部。

它的作用是检查 GA 库是否已经通过异步脚本标签加载。如果没有,它将创建一个数组 (ga.q),用于缓存在库完成加载之前创建的所有跟踪事件。

当加载 GA 完成时,库会处理这些排队的跟踪事件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接