【问题标题】:Google UA enhanced ecommerce: different variable name for IDGoogle UA 增强型电子商务:ID 的不同变量名称
【发布时间】:2015-08-11 21:25:06
【问题描述】:

使用 GTM 和增强型电子商务:我需要在第三方系统上跟踪电子商务,并且所需的 ID 字段不称为 ID 或 transactionID ...它称为 confirmID。我正在尝试从购买中检索一些值,包括交易金额,但无法使用 dataLayer,因此我在 GTM 中使用自定义 JavaScript 变量并构建了一个标签来从自定义变量中读取数据。

如果我的 ID 字段名称与所需的 ID 字段名称不匹配,我该如何进行这项工作?这是我的 JavaScript 变量:

    function() {
  var ecommerceData = {
    'ecommerce': {
      'purchase': {
        'actionField': {'confirmid':'T123456',
          'tik_value':'500.00',
          'pids':'800911',
          'discounts':'chipster' }


        }
      } 
  };
   return ecommerceData;
}

【问题讨论】:

    标签: javascript google-analytics google-tag-manager


    【解决方案1】:

    在您的自定义 JS 宏中使用适当的增强型电子商务方案

    正确的购买方案如下所示:

    {
      'ecommerce': {
        'purchase': {
          'actionField': {
            'id': 'T12345',                         // Transaction ID. Required for purchases and refunds.
            'affiliation': 'Online Store',
            'revenue': '75.43',                     // Total transaction value (incl. tax and shipping)
            'tax':'4.90',
            'shipping': '5.99',
            'coupon': 'SUMMER_SALE'
          },
          'products': [{                            // List of productFieldObjects.
            'name': 'Blah T-Shirt',     // Name or ID is required.
            'id': '12345',
            'price': '23',
            'brand': 'Spaceship',
            'category': 'Cool stuffs',
            'variant': 'Bloody red',
            'quantity': 1,
            'coupon': 'esale2015',
            'metric1': 1,
            'dimension2':'Better World'                          
           },
           {
            'name': 'Donut Costume',
            'id': '67890',
            'price': '47.1',
            'brand': 'EatMe & Corp.',
            'category': 'Madman'z gallery',
            'variant': 'Pink with dots',
            'quantity': 1,
            'metric1': 1,
            'dimension2':'Dark Adventure' 
           }]
        }
      }
    }
    

    将原始格式错误的对象传递给宏

    宏名称:{{ECOM_DATA}}。

    相关:

     {  
     'ecommerce': {
          'purchase': {
            'actionField': {'confirmid':'T123456',
              'tik_value':'500.00',
              'pids':'800911',
              'discounts':'chipster' 
              } 
          }
      } 
    

    将错误格式的数据连接到正确的方案

    function() {
      var source = {{ECOM_DATA}};
      var transactionData = source.ecommerce[0].actionField;
      var productData = source.ecommerce[0].products;
    
      var ecommerceData =  {
        'ecommerce': {
          'purchase': {
            'actionField': {
              'id': transactionData.confirmid,                      // Transaction ID. Required for purchases and refunds.
    
              'revenue': transactionData.revenue,                    // Total transaction value (incl. tax and shipping)
    
              'coupon': transactionData.discounts
            },
            'products': [{                            
              'name': productData.name,     /
              'id': productData.id,
              'price': productData.price,
    
              'brand': productData.brand,
              'category': productData.cats,
              'variant': productData.modification,
              'quantity': productData.ammount,
              'coupon': productData.coupon,
              'metric1': productData.whatever,
              'dimension2':productData.collection                          
             }]
          }
        }
      }
      return ecommerceData;
    }
    

    进一步改进

    考虑一些输入保护(重要值不可用的情况)或数值的日期类型保护等......

    文档:

    增强型电子商务的自定义宏: https://developers.google.com/tag-manager/enhanced-ecommerce#macro

    购买操作字段说明: https://developers.google.com/tag-manager/enhanced-ecommerce#purchases

    【讨论】:

    • 这看起来可能有助于解决我的问题。我需要一点时间来消化它并测试它。我会跟进结果。谢谢!
    • 我不断收到解析错误,应该是分号。并且关注的领域似乎在 var source == {{ECOM_DATA}};线。在此之前,我将我的自定义宏命名为 ECOM_DATA 并使用此错误 TDC_ECOMMERCE 命名宏...如果这很重要。
    • 对不起,我的错,== 是相等的运算符。必须只有一个 = 符号。宏的名称 100% 由您决定。我为错误道歉,我没有尝试代码,我只是给你写了一个例子,它是如何工作的。
    • 哦,完全不用担心!我非常感谢您的反馈!我很快就会再次处理这个问题并会更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 1970-01-01
    • 2018-03-27
    • 2016-01-02
    • 1970-01-01
    相关资源
    最近更新 更多