【问题标题】:Is there a way to retrieve a value from an object contained in an array property of google dataLayer via GTM有没有办法通过 GTM 从 google dataLayer 的数组属性中包含的对象中检索值
【发布时间】:2020-02-28 20:40:42
【问题描述】:

我在 GTM 中创建了一个 dataLayer 变量,但由于某种原因,尽管数据已推送到 dataLayer(我可以在 Chrome DevTools 控制台中看到这些值),但我却没有为该变量定义。

注意:我能够获取所有对象和子对象的属性值,但不能获取作为数组项的对象的值(参见下面的示例)。

var data = { id: 123, name: 'Joe', actions: [ { type: 'some type', desciption: 'Some description' }
] }

将上面的数据推送到dataLayer,我就可以在GTM下面访问id和name了

data.id
data.name

但是,当我尝试使用以下 数据层变量名称从操作属性访问类型时,我得到了未定义。

data.actions[0].type

我是否做错了什么,或者使用数据层变量名称(版本 2)访问 GTM 中类型值的正确方法是什么。提前谢谢!

【问题讨论】:

    标签: javascript google-analytics javascript-objects google-tag-manager google-datalayer


    【解决方案1】:

    你能在 GTM 中启用“调试”吗?如果是这样,请启用它,然后加载页面并打开开发者工具,看看哪个变量填充了您想要的数据并从那里向后工作。

    我不确定我将要描述的确切 Javascript 术语,但在 data 数组(?)或对象(?)中,idname 是直接的后代/孩子。

    但是当您到达actions 时,您在actionstypedescription 之间多了一组括号。

    也许没关系,JS 真的不是我的菜,但如果你在 GTM 中启用调试,那么你可以打开开发工具并查看包含你想要的数据的变量/对象的确切语法并复制/将其粘贴到您的代码中。

    【讨论】:

      【解决方案2】:

      在 GTM 接口中访问变量等的数组索引时,您需要使用自定义 GTM 表示法,它基本上是数组的点表示法。只需将括号替换为“。”在数组的索引之前。

      您在问题中的代码将变为:

      data.actions.0.type
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-16
        • 2013-09-03
        • 2022-01-20
        • 2022-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-06
        相关资源
        最近更新 更多