首页 文章

使用dataLayer的Google跟踪代码管理器触发器不会触发

提问于
浏览
1

按钮:

<button id="btnBuy" onclick="SendData();"

JavaScript函数:

<script>
// Measure a view of product details. This example assumes the detail view occurs on pageload,
// and also tracks a standard pageview of the details page.
var dataLayer = [];

dataLayer.push( {
  'ecommerce': {
    'detail': {
      'actionField': {'list': 'Apparel Gallery'},    // 'detail' actions have an optional list property.
      'products': [{
      'name': '@GetString("Ecom:Product.Name")',         // Name or ID is required.
      'id': '@GetValue("Ecom:Product.Number")',
      'price': '@GetValue("Ecom:Product.ActualPriceWithVAT")',
      'brand': '@GetString("Ecom:Manufacturer.Name")',
      'category': 'PRODUCT_CATEGORY'
       }]
     }
   }
});

function SendData()
{
    var purchaseData = 
    dataLayer.push( {
        'event': 'addToCart',
        'ecommerce': {
            'currencyCode': 'SEK',
            'add': {                                // 'add' actionFieldObject measures.
                'products': [{                        //  adding a product to a shopping cart.
                    'name': '@GetString("Ecom:Product.Name")',
                    'id': '@GetValue("Ecom:Product.Number")',
                    'price': '@GetValue("Ecom:Product.ActualPriceWithVAT")',
                    'brand': '@GetString("Ecom:Manufacturer.Name")',
                    'category': 'Apparel',
                    'variant': $j('input[name=radioDim1]:checked').val(),
                    'quantity': $j( '#QuantitySelector option:selected' ).val(),
                    'size': $j( 'input[name=radioDim2]:checked' ).closest( 'label' ).text()
                }]
            }
        }
    } );

    return purchaseData;

}

</script>

标记信息:跟踪:事件类别:添加到购物车动作:{{事件}}标签:{}

触发:事件等于addToCart

我在Chrome中使用预览模式,即使它注册了我的点击事件,也没有说触发器被触发 .

Tag manager Variables

Tag Manager Data Layer

2 回答

  • 1

    假设您的代码位于GTM容器代码段之后,那么您在第一行中所做的就是重新定义dataLayer,即 .

    var dataLayer = [];
    

    这会消除dataLayer,因为GTM知道它,并可能破坏你的标签 .

    您应该以更安全的方式定义dataLayer,例如:

    var dataLayer = dataLayer || [];
    

    如果它已经存在,不要擦掉它 .

  • 1

    在左侧,您可以看到实际触发的事件名称,因此“addToCart”肯定会被触发 .

    您应截断“标签”标签,然后点击您要观察的标签,然后会有关于为什么或为什么不被触发的信息 .

相关问题