Osc*_*lli 3 javascript google-tag-manager
将数据推送到 GoogleTagManager 的 dataLayer 后,例如:
dataLayer.push({user: 'me', site: 'bacon.com'})
Run Code Online (Sandbox Code Playgroud)
如何在不知道推送的内容的情况下,将整个对象从 GTM 面板推送到数据层?
也许有 js 变量存储这些信息?
谢谢
dataLayer 是一个全局 JavaScript 变量,一个对象数组。GTM 可以通过 JavaScript 变量类型访问全局变量,该类型读取整个数组。
然后,您可以使用自定义 JavaScript 变量(它是一个返回值的匿名函数)来提取该数组中的最后一个元素。
因此,您首先创建一个 javascript 类型的 GTM 变量并将变量名称设置为“dataLayer”:
然后使用它来访问返回数组的最后一个元素:
在自定义 JS 变量中获取最新条目,在您的情况下为“{user: 'me', site: 'bacon.com'}”,而无需知道对象的确切键。然后,您可以迭代该对象,以对各个值执行您需要执行的任何操作。
请记住,只有在事件发生时才会评估变量,因此您要么需要“本机”GTM 事件(单击、提交等),要么需要推送自定义事件。另外,最后一个元素本身可能实际上是一个事件(例如,如果单击事件发生在推送数据之后,则为 gtm.click)。