如何获取Google Tag Manager数据层的全部数据

How to get the whole data of Google Tag Manager data layer

我将数据推送到 GoogleTagManager 的数据层后,例如:

dataLayer.push({user: 'me', site: 'bacon.com'})

如何在不知道推送的内容的情况下将整个对象从 GTM 面板推送到数据层?

也许有存储这些信息的js变量?

谢谢

dataLayer 是一个全局 JavaScript 变量,一个对象数组。 GTM 可以通过 JavaScript 变量类型访问全局变量,它读取整个数组。

然后您可以使用自定义 JavaScript 变量,这是一个 returns 值的匿名函数,以提取该数组中的最后一个元素。

因此,您首先要创建一个 javascript 类型的 GTM 变量,并将变量名称设置为 "dataLayer":

然后使用它来访问返回数组的最后一个元素:

在自定义 JS 变量中获取最新条目,在您的情况下为“{user: 'me', site: 'bacon.com'}”,而无需知道对象的确切键。然后您可以遍历该对象以对单个值执行任何需要执行的操作。

请记住,只有在事件发生时才会评估变量,因此您要么需要 "native" GTM 事件(点击、提交等),要么需要推送自定义事件。最后一个元素实际上也是一个事件本身也可能发生(例如 gtm.click 如果点击事件发生在您推送数据之后)。