增强型电子商务跟踪已在某些网站上完全实施。这是通过内置功能增强的电子商务-使用dataLayer完成的。
例:
var ecommercObject = {
'ecommerce': {
'purchase': {
'actionField': {
'id': 'T12345', // Transaction ID. Required for purchases and refunds.
'affiliation': 'Online Store',
'revenue': '35.43', // Total transaction value (incl. tax and shipping)
'tax':'4.90',
'shipping': '5.99',
'coupon': 'SUMMER_SALE'
},
'products': [{ // List of productFieldObjects.
'name': 'Triblend Android T-Shirt', // Name or ID is required.
'id': '12345',
'price': '15.25',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Gray',
'quantity': 1,
'coupon': '' // Optional fields may be omitted or set to empty string.
},
{
'name': 'Donut Friday Scented T-Shirt',
'id': '67890',
'price': '33.75',
'brand': 'Google',
'category': 'Apparel',
'variant': 'Black',
'quantity': 1
}]
}
}
}
我想将增强型电子商务实现重新用于另一个分析系统。
因此,我需要GTM中的宏/变量,该宏/变量返回增强型电子商务JavaScritp对象。
自定义JS:电子商务对象
我在控制台中尝试了该宏,但在GTM中不起作用。
(function(){
myStringArray = window.dataLayer;
var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
if(myStringArray[i].ecommerce){
return myStringArray[i];
}
}
return false;
})()
DataLayer变量: ECOMMERCE OBJECT
我要么尝试使用dataLayer变量名称为“ ecommerce”的宏类型DataLayer。没有效果。
当我在自定义TAG中使用此代码时:
var eecom = {{ECOMMERCE OBJECT}}
console.dir(eecom);
它返回空字符串。
有什么通用的解决方案可以检索增强型电子商务对象,使其出现在dataLayer中吗?
在GTM中,JavaScript宏无法返回JS对象。Niether JS变量无法返回JS对象。
所以最后我将这个宏构建到TAG中,并且可以正常工作。最终解决方案如下所示:
var dl = window.dataLayer;
var eecom = "";
var al = dl.length;
for (var i = 0; i < al; i++) {
if(dl[i].ecommerce){
eecom = dl[i].ecommerce;
break;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句