正在分析电子商务数据以推送到谷歌标签管理器的数据层

Parsing eCommerse data to push into dataLayer for Google Tag Manager

本文关键字:数据 谷歌 标签 管理器 电子商务      更新时间:2023-09-26

下面是推送到以太网上的电子商务数据。

我想提取特定的数据位,将其推送到谷歌标签管理器(GTM)的dataLayer数组。任何隐藏的东西,我都没有用(例如信用卡信息等)。请注意,所有这些代码都可以随时向公众提供,并且不包含敏感数据。

尝试A:

<script type="text/javascript">//anything below I'm not going to mess with
var _gaq = _gaq || [];
BLACKBAUD.netcommunity.api.DonationConfirmation.add(function(data){
if(data.TransTotal){
_gaq.push(['_addTrans', data.TransID, '',data.TransTotal, '', '', '', '', '']);
for(var i=0;i<data.Items.length;i++){
_gaq.push(['_addItem', data.Items[i].ID, data.Items[i].SKU, data.Items[i].Name, '', data.Items[i].Price, data.Items[i].Quantity]);
};
_gaq.push(['_trackTrans']);
dataLayer.push({gaqBatch_gaq}); //Except for here. I have added this line.
};
});
</script> 

以上是我最初的尝试。它按原样推送一组推送数据(3个段)(参见图片)。

谷歌标签管理器-预览模式-数据层推送结果(A)

尝试B:

我修改了上面的剪报,

dataLayer.push({_gaq});

var gaqTemp = [].concat.apply([], _gaq); //Merges Arrays. Found this on stackoverflow. dataLayer.push({'gaqBatch' : gaqTemp}); //Pushes Merged Array to dataLayer as 'gaqBatch'

结果如下:谷歌标签管理器-预览模式-数据层推送结果(B)

我真正想要的是:

    {
gtm: {
...
},
...
gaqBatch: [
'giftID' : 6024, //from gaqBatch array index 1
'giftAmount' : $25, //from gaqBatch array index 3
'transID' : aaaa-bbbb-cccc-dddd-eeee-ffff, //from gaqBatch array index 11
'giftType' : Donation, //from gaqBatch array index 12
'giftTotal' : $25 //from gaqBatch array index 15
]
}

如果我能避免将电子商务片段中的所有数据推送到GTM数据层中,我更喜欢这样。也就是说,将其临时存储在一个数组中,并创建5个对象:giftID、giftMount、transID、gittType、giftTotal

这些对象的目的是将它们用作GTM中的dataLayer变量,以在Google Analytics中提供度量。

谢谢你,

很抱歉篇幅太长,这是我的第一篇文章,我不想忘记任何细节。

想好了。。。

var _gaq = _gaq || [];
var dataLayer = dataLayer || [];
_gaq.push('_addTrans', '9874', '', '115', '', '', '', '', '','_addItem', '5949', '10000-100000-10000-10000-10000000', 'Donation', '', '115', '1','_trackTrans');
var tmpGiftAmount = _gaq[3];
var tmpGiftID = _gaq[1];
var tmpTransID = _gaq[11];
dataLayer.push({'giftAmount' : tmpGiftAmount, 'giftID' : tmpGiftID, 'transID' : tmpTransID});