在某些网站上完全实施了增强型电子商务跟踪功能。这是通过内置功能增强型电子商务完成的 - 使用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中的宏/变量,它返回Enahnced Ecommerce JavaScritp Object。
自定义JS: ECOMMERCE OBJECT
我尝试在控制台中使用这个有效的宏,但不是在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中时,是否有任何常见的解决方案来检索增强型电子商务对象?
答案 0 :(得分:1)
在GTM中,JavaScript宏无法返回JS对象。 Niether JS变量无法返回JS对象。
所以最后我将这个宏构建到TAG中并且它可以工作。最终解决方案如下所示:
return Json(user);