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

时间:2016-09-13 11:51:35

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

按钮:

<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>

标记信息: 追踪:事件 类别:加入购物车 行动:{{Event}} 标签:{{Page Path}}

触发: 事件等于addToCart

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

Tag manager Variables

Tag Manager Data Layer

2 个答案:

答案 0 :(得分:1)

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

var dataLayer = [];

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

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

var dataLayer = dataLayer || [];

如果它已经存在,不要擦除它。

答案 1 :(得分:1)

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

您应该截取“标签”标签,然后点击您要观察的标签,然后会有关于为什么或为什么不会被解雇的信息。