GTM-以变量/宏形式返回增强型电子商务对象

雅库布·克里兹(Jakub Kriz)

情况

增强型电子商务跟踪已在某些网站上完全实施。这是通过内置功能增强的电子商务-使用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中吗?

雅库布·克里兹(Jakub Kriz)

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

在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

跟踪商品目录的展示次数-增强型电子商务Google Analytics(分析)

如何指定产品从哪个“列表”添加到购物车?增强型电子商务

GA增强型电子商务中checkout_option的几个选项

电子商务与Google Analytics(分析)的增强型电子商务的区别

使用Firebase捆绑包通过GTM v5增强了电子商务标签

Google Analytics(分析)增强型电子商务有效载荷在结帐时过大

在GTM增强型电子商务中实施CPA会员购买

如何处理Analytics(分析)增强型电子商务产品的流通量

如何从dataLayer数组创建GTM变量?

在设置了dataLayer并且运行了GTM.js脚本之后,推送到增强型电子商务

GTM增强型电子商务购买活动

增强型电子商务跟踪记录重复计数

enableEcommerce:增强型电子商务是否为false?

将旧版SQL转换为标准SQL-增强型电子商务

GA增强型电子商务会话在重定向后迷路了

增强型电子商务无法识别内部促销视图对象

Google跟踪代码管理器-增强型电子商务和Ajax

使用GTM的增强型电子商务,但不包含页内数据

通过GTM电子商务增强功能和dataLayer推送跟踪的结帐ajax步骤

GA增强型电子商务:将字符串值用作“步骤”字段,而不是数字值

在现有的电子商务设置中实施GTM

Google跟踪代码管理器多个增强型电子商务活动

Analytics(分析)增强型电子商务-发送产品展示

Google 标签管理器未记录增强型电子商务的交易

使用 curl 和增强型电子商务跟踪采购服务器端

使用两个 GTM 属性设置 Analytics 电子商务

增强型电子商务:我是否推送关于过滤产品的新印象列表?

GTM 不从数组返回值

GTM 变量中的 Javascript IF/Else