1

Button:

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

JavaScript function:

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

Tag info: Tracking: Event Category: Add to cart Action: {{Event}} Label: {{Page Path}}

Trigger: Event equals addToCart

I am using the Preview mode in Chrome and even though it registers my click event it does not say that the trigger is fired.

Tag manager Variables

Tag Manager Data Layer

4

2 回答 2

1

假设您上面的代码出现在 GTM 容器片段之后,那么您在第一行所做的就是重新定义 dataLayer,即。

var dataLayer = [];

这会清除 GTM 所知道的 dataLayer,并且可能会破坏您的标签。

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

var dataLayer = dataLayer || [];

如果它已经存在,就不会将其清除。

于 2016-09-13T14:30:01.690 回答
1

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

您应该截取“标签”选项卡,然后单击您想要观察的标签,然后会有关于为什么或为什么不触发它的信息。

于 2017-04-25T14:32:19.350 回答