GTM:使用transactionProducts可变为自定义HTML标记

时间:2015-09-03 09:49:21

标签: javascript e-commerce google-tag-manager

我正在使用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标记吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我想我看到了问题(或者至少有一个问题)。在你的ScarabQueue中,“items”应该是一个包含两个产品数据数组的对象。但是,您正在推送一个对象(此对象包含产品数据数组)。我正确地说法语有点麻烦,所以我的截图包括我的意思:

enter image description here

在左侧,您可以看到正确的(手动)分配,在右侧,您可以看到示例dataLayer的推送。左手项是一个包含2个项目的对象(包含产品数据的数组)。右手“items”只包含一个嵌套在其中的产品数据的元素(transactionProducts对象)。

您可以尝试将{{transactionProducts}}变量重命名为“items”并推送:

items = {{transactionProducts}};
ScarabQueue.push(['purchase', {
    orderId: '{{transactionId}}',
    items
}]);

没有保证,但我认为这应该有效,或者至少它会导致与“手动”数据分配类似的结构:

enter image description here