Baliser add_to_cart proprement
Le piège de la fusion
Le dataLayer de GTM ne remplace pas les objets : il les fusionne en
profondeur. Un add_to_cart poussé après un view_item_list hérite donc des
items de la liste si rien ne les efface entre-temps.
Le correctif tient en une ligne, et il doit précéder chaque événement ecommerce :
dataLayer.push({ ecommerce: null });
dataLayer.push({ event: "add_to_cart", ecommerce: { /* … */ } });
C'est ce que fait pushEcommerce sur ce site, et c'est la seule raison de son
existence.
La vérification
Sur le catalogue, cliquez « Ajouter au panier » sur un produit.
Dans l'aperçu, l'événement add_to_cart doit porter un article, et sa
quantity doit valoir 1.
Recommencez depuis une fiche produit en
passant la quantité à 3. La quantity poussée doit valoir 3, et value 36 —
pas 12.
select_item n'est pas un clic sur « Ajouter »
Sur ce site, select_item ne part que sur le lien d'une carte, jamais sur son
bouton d'ajout. La distinction n'est pas cosmétique : compter les ajouts directs
comme des sélections gonfle le taux de clic des listes, et le rapport montre
alors des sélections qu'aucune vue produit ne suit — une anomalie qu'on passe des
heures à chercher côté attribution alors qu'elle est côté balisage.