【问题标题】:How to get the whole data of Google Tag Manager data layer如何获取谷歌标签管理器数据层的全部数据
【发布时间】:2017-01-08 14:35:09
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: javascript google-tag-manager


    【解决方案1】:

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

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

    所以你首先要创建一个 javascript 类型的 GTM 变量并将变量名设置为“dataLayer”:

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

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

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

    【讨论】:

    • 这很奇怪,但它返回undefined。虽然如果在控制台中运行dataLayer[dataLayer.length-1],它确实给了我我需要的东西......为什么?
    • 因为我没有测试就写了,这是绝对不应该做的。更新了一个工作示例的答案(我猜问题是匿名函数中的变量范围)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2018-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多