您需要使用 analytics.js 进行的所有衡量几乎都可以使用 ga()
命令队列完成。本指南介绍了命令队列的含义、运行方式以及如何执行命令来衡量用户互动。
ga
命令队列
Google Analytics(分析)代码定义了一个称为“命令队列”的全局 ga
函数。之所以称其为命令队列,是因为该函数不会立即执行其中的命令,而是将这些命令加入到队列中,将这些命令的执行延迟到 analytics.js 库加载完成后进行。
在 JavaScript 中,函数也是对象,这意味着函数中也可以包含属性。Google Analytics(分析)代码在 ga
函数对象上定义了一个值为空数组的 q
属性。在 analytics.js 库尚未加载完成之前,调用 ga()
函数会将传递给 ga()
函数的参数列表附加到 q
数组的末尾。
例如,如果您运行 Google Analytics(分析)代码并立即将 ga.q
的内容写入控制台日志,就会看到一个数组,其中有两个元素,分别包含已传递给 ga()
函数的两组参数:
console.log(ga.q);
// Outputs the following:
// [
// ['create', 'UA-XXXXX-Y', 'auto'],
// ['send', 'pageview']
// ]
analytics.js 加载完成后,会立即查看 ga.q
数组的内容并依次执行每条命令。然后,ga()
函数将被重新定义以立即执行后续调用。
在这种模式下,开发者在使用 ga()
命令队列时无需担心 analytics.js 库是否已完成加载。该模式提供了一种类似于同步代码的简单接口,规避了异步代码的诸多复杂性。
将命令添加到队列
对 ga()
命令队列的所有调用都使用同一个签名。第一个参数“command”是一个标识特定 analytics.js 方法的字符串。其他参数都是要传递给该方法的参数。
特定命令所引用的方法可以是全局方法(例如 ga
对象上的 create
方法),也可以是跟踪器对象上的实例方法(例如 send
)。如果 ga()
命令队列收到一条它无法识别的命令,会直接将其忽略,这使得调用 ga()
函数这一行为非常安全,因为这几乎不会导致错误。
要查看可通过命令队列执行的所有命令的完整列表,请参阅 ga()
命令队列参考。
命令参数
大多数 analytics.js 命令(及其相应方法)都接受多种不同格式的参数。这是为了便于更轻松地向特定方法传递常用字段。
以下面的 Google Analytics(分析)代码中的两条命令为例:
ga('create', 'UA-XXXXX-Y', 'auto');
ga('send', 'pageview');
在第一条命令中,create
接受了可分别指定为第二个、第三个和第四个参数的 trackingId
、cookieDomain
和 name
可选字段。send
命令接受了可选的第二个参数 hitType
。
所有命令均接受普遍适用的 fieldsObject
参数,这种参数可用于指定任何字段。例如,可将上述代码中的两条命令改写为:
ga('create', {
trackingId: 'UA-XXXXX-Y',
cookieDomain: 'auto'
});
ga('send', {
hitType: 'pageview'
});
要查看每条命令所允许的可选参数的完整列表,请参阅 ga()
命令队列参考。
后续步骤
阅读本指南后,您应该对如何使用 analytics.js 执行命令以及命令队列的工作原理有了相当透彻的了解。下一篇指南将介绍如何创建跟踪器对象。