1

Button:déclencheur Google Tag Manager à l'aide dataLayer wont feu

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

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

info Tag: Suivi: événement Catégorie: Ajouter au panier Action: {{event} } Libellé: {{Chemin de la page}}

Déclencheur: L'événement est égal à addToCart

J'utilise le mode Aperçu dans Chrome et même s'il enregistre mon événement de clic, il ne dit pas que le déclencheur est déclenché.

Tag manager Variables

Tag Manager Data Layer

Répondre

1

En supposant que votre code vient ci-dessus après l'extrait de conteneur GTM, ce que vous avez fait dans la première ligne est de redéfinir la couche de données, à savoir.

var dataLayer = []; 

Ceci efface la couche de données comme GTM le sait, et casse potentiellement vos balises.

Vous devez définir la couche de données dans une manière plus sûre comme celui-ci, par exemple:

var dataLayer = dataLayer || []; 

afin de ne pas essuyer dehors si elle existe déjà.

+0

Pour moi, cela n'a aucun sens. Je dois déclarer la variable comme un tableau vide et ensuite pousser l'objet dans ce tableau. N'est-ce pas comment c'est fait? Que diriez-vous de la fonction SendData qui est appelée quand quelqu'un ajoute un produit au panier. La variable d'achat est-elle censée être retournée ou suffit-il d'ajouter un autre objet dans le tableau? –

1

Sur la gauche, vous pouvez voir les noms des événements qui ont été déclenchés, donc "addToCart" est définitivement renvoyé.

Vous devriez capturer l'onglet "Tags", et cliquer sur votre tag que vous aimeriez observer, puis il y a des informations sur pourquoi ou pourquoi il est viré.