GTM - 在变量/宏中返回增强型电子商务对象

时间:2015-10-05 14:16:24

标签: google-analytics google-tag-manager google-datalayer enhanced-ecommerce

情况

在某些网站上完全实施了增强型电子商务跟踪功能。这是通过内置功能增强型电子商务完成的 - 使用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中时,是否有任何常见的解决方案来检索增强型电子商务对象?

1 个答案:

答案 0 :(得分:1)

Google跟踪代码管理器宏/变量

在GTM中,JavaScript宏无法返回JS对象。 Niether JS变量无法返回JS对象。

所以最后我将这个宏构建到TAG中并且它可以工作。最终解决方案如下所示:

return Json(user);