web-dev-qa-db-fra.com

Comment GTM sait-il envoyer des données de commerce électronique améliorées lorsqu'elles sont ajoutées à la couche de données?

Je pose cette question pour mieux comprendre comment fonctionne GTM, dans l'espoir de le déboguer moi-même. Mais un meilleur titre pourrait être:

Je veux que le commerce électronique amélioré "fonctionne tout simplement" lorsque je passe à la couche de données. Qu'est-ce que je fais mal?

Dans le passé, j'ai implémenté la couche de données de commerce électronique améliorée de GTM sur Magento 1 . Étant donné que Magento est rendu côté serveur, le tableau JS dataLayer est déjà rempli de produits/impressions/conversions/etc. au moment du chargement de la page. Dans ces scénarios, j'ai pu simplement:

  1. Ajout d'une balise Universal Analytics "Affichage de page" dans GTM
  2. Cochez la case "Activer les fonctionnalités de commerce électronique améliorées" et "Utiliser la couche de données"
  3. Le faire tirer sur "Toutes les pages en mode Page",

Cela suffisait à GTM pour appeler automatiquement les fonctions de commerce électronique améliorées qui poussent ces données vers Analytics.

Je dis auto magic allié parce que je réalise maintenant que je tenais pour acquis la façon dont cela fonctionnait. J'implémente maintenant ceci pour un site rendu côté client, où le dataLayer n'est rempli que longtemps après le chargement de la page. J'ai dû ajouter des balises GTM supplémentaires (UA avec type = Event) et des déclencheurs pour déclencher ces balises lorsque des événements spécifiques sont poussés vers le dataLayer.

Le suivi des conversions/achats fonctionne désormais, mais pour une raison quelconque, les impressions ne sont pas repoussées. GTM dit que la balise se déclenche et je vois une demande HTTP pour envoyer l'événement UA (a t=event), mais aucune donnée d'impressions n'est présente dans la demande.

Idéalement, je pourrais ajouter une seule balise, et GTM appellerait la fonction Analytics appropriée chaque fois que de nouvelles données productDetail/impressions/addToCart/Purchase sont transmises au dataLayer - de la même manière qu'il se comporte lorsque le dataLayer est prérempli au moment du chargement de la page .

Est-il même possible de faire fonctionner GTM de cette façon (sans ajouter manuellement une balise pour chaque type d'événement eComm que je veux pousser)? Ou peut-être que je ne comprends tout simplement pas comment cela est censé fonctionner.

2
Eric Seastrand

Je suis actuellement sur mobile, je ne peux donc pas confirmer les détails, mais je pense que la balise "Événement" de Google Analytics vous manque. Vous venez de mentionner une balise pageview et l'activation du commerce électronique, mais vous n'envoyez que des pages vues à GA. Vous avez besoin d'un événement GA pour déclencher le moment où un achat ou un autre événement de commerce électronique se produit.

Donc:

1) Nouvelle balise Universal Analytics dans GTM, de type "Evénement" puis sélectionnez le bon type, comme "Transaction", etc ...

2) Attribuez à cette balise un nouveau déclencheur qui se déclenche sur tous les événements de commerce électronique (ces événements doivent être définis par vos dataLayer pressions chaque fois qu'une transaction se produit)

J'espère que ça aide.

1
Tobi S