Google 分析:dataLayer.push 不使用变量数组?
Google analytics: dataLayer.push not working with array of variables?
我想知道为什么 gtag.js 在推送到 dataLayer 变量数组而不是 'arguments' 时不起作用?这是一些代码示例:
window.dataLayer = window.dataLayer || []
function gtag(first: any, second: any) {
window.dataLayer.push([first, second])
}
gtag('js', new Date())
gtag('config', trackingCode)
这仅在我将“[first, second]”替换为 'arguments'
时有效
我们不知道你试图通过覆盖 gtag
函数来实现什么,所以我们无法回答关于 "works"
和什么的具体问题没有。
可以说的是:arguments
is an Object and GTM expects an object from dataLayer.push
,因此这遵循了预期的设计(而 [first, second]
是一个数组,因此不是)。
请注意 push
调用本身 "works":
但是您将无法通过 GTM 读取该数据,如上所述,GTM.push
需要传递对象。
如果你想以完全免费的方式使用数据层,你可以使用GTM数据层助手:
https://github.com/google/data-layer-helper
这确实通过 Meta commands:
支持数组语法
dataLayer.push(['abc.push', 4, 5, 6]);
但是默认情况下 GTM 不支持读取此数据(GTM 再次需要一个对象,因此它可以根据对象属性提取值),因此要读取该数据通过 GTM,您需要在 GTM 标签和变量中使用 dataLayer 助手。
所以,最后,这个版本的代码对我来说工作正常,没有 linter 错误:
window.dataLayer = window.dataLayer || []
function gtag(..._args: unknown[]) {
window.dataLayer.push(arguments)
}
gtag('js', new Date())
gtag('config', trackingCode)
我想知道为什么 gtag.js 在推送到 dataLayer 变量数组而不是 'arguments' 时不起作用?这是一些代码示例:
window.dataLayer = window.dataLayer || []
function gtag(first: any, second: any) {
window.dataLayer.push([first, second])
}
gtag('js', new Date())
gtag('config', trackingCode)
这仅在我将“[first, second]”替换为 'arguments'
时有效我们不知道你试图通过覆盖 gtag
函数来实现什么,所以我们无法回答关于 "works"
和什么的具体问题没有。
可以说的是:arguments
is an Object and GTM expects an object from dataLayer.push
,因此这遵循了预期的设计(而 [first, second]
是一个数组,因此不是)。
请注意 push
调用本身 "works":
但是您将无法通过 GTM 读取该数据,如上所述,GTM.push
需要传递对象。
如果你想以完全免费的方式使用数据层,你可以使用GTM数据层助手:
https://github.com/google/data-layer-helper
这确实通过 Meta commands:
支持数组语法dataLayer.push(['abc.push', 4, 5, 6]);
但是默认情况下 GTM 不支持读取此数据(GTM 再次需要一个对象,因此它可以根据对象属性提取值),因此要读取该数据通过 GTM,您需要在 GTM 标签和变量中使用 dataLayer 助手。
所以,最后,这个版本的代码对我来说工作正常,没有 linter 错误:
window.dataLayer = window.dataLayer || []
function gtag(..._args: unknown[]) {
window.dataLayer.push(arguments)
}
gtag('js', new Date())
gtag('config', trackingCode)