我正在使用Google跟踪代码管理器(GTM)和电子商务跟踪。 Shop-System将以下信息发送给GTM:
dataLayer = [{
"event":"transaction",
"transactionId":"100002486",
"transactionDate":"2015-09-03",
"transactionTotal":295,
"transactionShipping":0,
"transactionTax":26.82,
"transactionPaymentType":"Rechnung",
"transactionCurrency":"EUR",
"transactionShippingMethod":"tablerate",
"transactionProducts":[
{
"name":"Handelsvertretergesetz",
"sku":"9783700760344",
"category":"Buch",
"price":113.64,
"quantity":1
},
{
"name":"Steuerrecht",
"sku":"9783700759294",
"category":"Kodex",
"price":77.27,
"quantity":2
}
];
Analytics电子商务跟踪工作完美。但现在到了挑战:
我需要通过GTM实施另一个非谷歌电子商务跟踪代码,最终应该是这样的:
ScarabQueue.push(['purchase', {
orderId: '231213',
items: [
{item: '182', price: 19.9, quantity: 1},
{item: '747', price: 29.7, quantity: 3}
]
}]);
所以我想我只是通过GTM添加另一个自定义HTML标记:
<script>
ScarabQueue.push(['purchase', {
orderId: '{{transactionId}}',
items: [
{{transactionProducts}}
]
}]);
</script>
正确插入{{transactionId}}后,项目就会丢失。
知道如何将{{transactionProducts}}变量转换为自定义HTML标记吗?谢谢!
答案 0 :(得分:0)
我想我看到了问题(或者至少有一个问题)。在你的ScarabQueue中,“items”应该是一个包含两个产品数据数组的对象。但是,您正在推送一个对象(此对象包含产品数据数组)。我正确地说法语有点麻烦,所以我的截图包括我的意思:
在左侧,您可以看到正确的(手动)分配,在右侧,您可以看到示例dataLayer的推送。左手项是一个包含2个项目的对象(包含产品数据的数组)。右手“items”只包含一个嵌套在其中的产品数据的元素(transactionProducts对象)。
您可以尝试将{{transactionProducts}}变量重命名为“items”并推送:
items = {{transactionProducts}};
ScarabQueue.push(['purchase', {
orderId: '{{transactionId}}',
items
}]);
没有保证,但我认为这应该有效,或者至少它会导致与“手动”数据分配类似的结构: