我有一个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}}
});
有人知道如何正确更新数组的数据层变量吗?
答案 0 :(得分:1)
我想我已经弄清楚了...这与变量的版本有关:https://www.simoahava.com/gtm-tips/data-layer-variable-versions-explained/
我将其设置为版本2,这是默认情况下的版本2,仅在更新对象时才将它们串联起来,而不是完全覆盖对象。我切换到了版本1,现在可以像我现在想要的那样工作。