DEEVDEEV
Tous les articles
Ingénierie7 min de lecture

Consent Mode v2, ou le jour où l'analytique s'est tue

Un site peut être entièrement instrumenté, passer tous les contrôles, et n'enregistrer strictement rien. Voici la panne que nous avons connue sur notre propre site, pourquoi elle est invisible, et comment prouver que votre balise est vivante.

Le pire bug d'analytique n'est pas celui qui remonte de mauvais chiffres. C'est celui qui remonte zéro, parce que zéro ressemble à un mois calme.

La panne

Nous avons reconstruit ce site avec Google Analytics 4 derrière une couche de consentement. La balise était sur la page. L'identifiant de mesure était correct. La propriété existait et le flux de données était configuré. Le rapport temps réel n'affichait rien pendant des semaines, et les explications évidentes, les bloqueurs de publicité et un trafic faible, étaient toutes deux assez plausibles pour nous empêcher de creuser.

La cause tenait en quelques caractères. L'extrait fourni par Google définit la fonction ainsi :

function gtag(){dataLayer.push(arguments);}

Elle transmet l'objet arguments, pas un tableau. Nous l'avions modernisée avec un paramètre de reste, ce qui transmet un tableau. Chaque appel s'exécutait, la file se remplissait, et la bibliothèque de Google rejetait silencieusement chaque entrée parce que la forme n'était pas la bonne. Aucune erreur, aucun avertissement, aucune requête en échec. Rien.

Pourquoi personne ne le voit

Parce que tous les contrôles que vous feriez passent. Le script se charge. L'onglet réseau montre la requête de collecte. La console est propre. Le seul moyen de le voir est d'inspecter ce qui est réellement arrivé dans le dataLayer, où les entrées apparaissent comme un tableau au lieu d'un objet Arguments.

Le Consent Mode est un second endroit où perdre des données

Le Consent Mode v2 demande de définir des valeurs par défaut avant l'initialisation de la balise, et « refusé » est la valeur correcte dans l'UE. Ce n'est pourtant pas un interrupteur qui coupe la mesure : avec analytics_storage refusé, la balise envoie toujours un signal sans cookie, ce qui conserve le trafic agrégé sans poser d'identifiant. Ce qu'il ne faut pas oublier, c'est de mettre l'état à jour lorsque quelqu'un accepte, l'autre manière d'avoir une propriété parfaitement conforme et définitivement muette.

Comment prouver que la balise est vivante

  • Ouvrez la console sur votre propre site et lisez directement dataLayer. Les entrées doivent apparaître comme Arguments, pas comme Array
  • Surveillez le temps réel en chargeant le site depuis un téléphone en données mobiles, ce qui écarte votre réseau et vos extensions
  • Acceptez le bandeau et vérifiez que la mise à jour du consentement est bien envoyée, pas seulement la valeur par défaut initiale
  • Vérifiez que l'identifiant de mesure de la page correspond au flux que vous observez, préfixe www de l'URL du flux compris

Nous avons trouvé la nôtre en lisant la file d'attente. Deux visiteurs sont apparus en temps réel dans la minute.

Article suivantCe que produit réellement un atelier de découverte IA