【问题标题】:updating array in gtm dataLayer更新 gtm dataLayer 中的数组
【发布时间】:2018-11-01 21:32:20
【问题描述】:

我有一个 gtm 变量,它使用数据层变量来表示购物车订单项。

 dataLayer = [{
 'cartLineitems': [
    {'productCode':'test1','quantity':1},
    {'productCode':'test2','quantity':1},
    {'productCode':'test3','quantity':1}
]
 }];

当购物车更新时,我正在设置一个自定义事件“onCartUpdate”并使用新的购物车 lineitems 数组更新 dataLayer。当数量改变时,这可以正常工作 - 新的 gtm 变量显示数组的第一个元素以及更新的数量。

dataLayer.push({
       'event': 'onCartUpdate',
       'cartLineitems': [
            {'productCode':'test1','quantity':2}},
            {'productCode':'test2','quantity':1}},
            {'productCode':'test3','quantity':1}
    });

但是,当客户从购物车中删除商品时,gtm 似乎并没有看到数组现在的元素减少了。在调试器中,它显示具有 2 个项目的最新版本的数据层,然后它具有“此消息之后的数据层值:”并显示原始值。 “变量”选项卡中显示的值是具有 3 个项目的版本。

dataLayer.push({
   'event': 'onCartUpdate',
   'cartLineitems': [
        {'productCode':'test1','quantity':2}},
        {'productCode':'test2','quantity':1}}
});

有谁知道如何正确更新作为数组的数据层变量?

【问题讨论】:

    标签: google-tag-manager


    【解决方案1】:

    我想我明白了...这与变量的版本有关:https://www.simoahava.com/gtm-tips/data-layer-variable-versions-explained/

    我将它设置为版本 2,默认情况下它必须仅在更新对象时连接对象,而不是完全覆盖对象。我切换到第 1 版,它现在可以正常工作了。

    【讨论】:

    • 将这些不同的行为命名为“版本”是 Google 恕我直言的一个非常糟糕的决定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多