ga4-protocole-measurement-changement-cookie-bug

Google Analytics 4 : quand les cookies changent sans prévenir

Le nouveau format de cookie GA4 casse le Measurement Protocol : autopsie d’une agitation Analytics

Le 6 mai 2025. Personne n’a crié, personne n’a tweeté. Google, dans sa grande tradition de communication façon bunker soviétique, a discrètement changé le format du cookie de GA4. Bilan ? Des centaines d’implémentations Measurement Protocol parties en fumée. Pas un coup de feu, juste une série de sessions mortes-nées, des rapports GA4 dignes d’un cadavre exquis, et des développeurs qui suent comme des moLe 6 mai 2025, Google a modifié le format du cookie GA4. Pas de message d’alerte, pas de note dans la documentation officielle, pas même un tweet d’excuse écrit à la va-vite par un stagiaire. Résultat : des implémentations Measurement Protocol se sont effondrées. En silence. Comme une bibliothèque qu’on brûle de nuit.

Si vous utilisez le session_id extrait depuis les cookies GA4 pour alimenter vos requêtes via le Measurement Protocol (client ou server-side), il y a de fortes chances que vos données soient devenues… comment dire ? Aléatoires. Et si vous ne le saviez pas, c’est que vous n’avez pas encore regardé vos rapports.

Ce qui a changé : un cookie au format “j’ai décidé que ce serait cryptique”

Jusqu’au 6 mai, le cookie _ga_<ID> était assez stable. Vous pouviez extraire le session_id avec des méthodes simples (split, regex, bonne vieille intuition).

Formez-vous à Google Analytics !

Maîtriser Google Analytics est crucial pour comprendre votre audience, optimiser vos campagnes, améliorer l'expérience utilisateur et mesurer vos conversions... Gagnez du temps avec nos formations Google Analytics.

Depuis, il ressemble à ça :

GS2.1.s1747132561$o1$g0$t1747132655$j0$l0$h0

Dans ce chaos structuré :

  • GS2.1 : Version.
  • s1747132561 : L’identifiant de session.
  • Le reste ?
nouveau format de cookie GA4

Le session_id, ici, c’est 1747132561. Il se trouve entre .s et le premier $. Et toutes les logiques de parsing qui supposaient un format “ancien” sont désormais erronées. Résultat : des événements sans session, des sessions sans utilisateur, et GA4 qui vous répond : “Session ? Quelle session ?”

Ce que ça casse : vos rapports, votre attribution, et peut-être votre humeur

Ce changement discret a des effets très concrets :

  • Session ID manquant → les événements ne sont plus rattachés entre eux. Bonjour les sessions d’un seul événement.
  • Attribution dans le brouillard → GA4 n’arrive plus à relier une conversion à une source. Résultat : trafic “Unassigned”.
  • Données incohérentes → vos funnels ressemblent à une partie de Mikado après explosion.
  • Problèmes côté server-side → les setups avec GTM SS ou proxy custom qui s’appuient sur le cookie GA4 voient leurs requêtes Measurement Protocol incomplètes, voire rejetées.

Et non, Google n’a pas documenté ce changement. Ce sont des analystes (notamment Matteo Zambon et Simo Ahava) qui ont identifié et disséqué le problème. Comme souvent.

Ce qu’il faut faire : pas paniquer, juste coder (mieux)

Étape 1 : Corriger l’extraction du session_id

Adieu split naïf. Bonjour regex minimaliste.

const cookieValue = 'GS2.1.s1747132561$o1$g0$t1747132655$j0$l0$h0';
const match = cookieValue.match(/\.s(\d+)\$/);
const sessionId = match ? match[1] : null;

Simple, robuste, sans prétention. Comme une bonne scie sauteuse : ça coupe net.

Étape 2 : Mettre à jour les appels Measurement Protocol

Vérifiez que ce sessionId est bien intégré dans vos payloads Measurement Protocol (champ session_id). Si vous utilisez un serveur intermédiaire, adaptez la logique également côté backend.

Étape 3 : Observer les données

Surveillez la baisse des sessions isolées, le retour des sources dans les rapports d’acquisition, et le rebond des conversions correctement attribuées. Si tout revient à la normale, vous avez réparé l’essentiel.

Morale : Ne jamais faire confiance à un cookie qu’on n’a pas soi-même cuit

Ce changement est une piqûre de rappel : s’appuyer sur une structure non documentée dans un écosystème propriétaire, c’est jouer au funambule sur un câble qu’on ne contrôle pas.

Et Google, dans sa gestion de GA4, nous rappelle une chose : l’absence de communication n’est pas un oubli. C’est une stratégie.

Alors, documentez vos implémentations. Testez vos hypothèses. Et si votre session explose, que ce ne soit pas parce qu’un cookie a changé sans prévenir.

FAQ

Ce changement est-il documenté par Google ?
Non. Il a été découvert par la communauté. Google, de son côté, reste muet.

Mon implémentation server-side est-elle concernée ?
Oui, si vous extrayez les cookies GA4 pour enrichir vos événements Measurement Protocol. Adaptez immédiatement votre extraction.

Puis-je éviter le cookie pour gérer les sessions ?
Oui, mais cela implique de gérer manuellement une logique de session utilisateur cohérente côté client et serveur. Complexe, mais possible.

Les événements envoyés automatiquement par GA4 (via gtag.js ou GTM) sont-ils touchés ?
Non. Ce changement n’affecte que les appels personnalisés via le Measurement Protocol.

Existe-t-il une recommandation officielle de Google ?
Non. Aucun correctif ou documentation n’a été publié à ce jour.

Sources techniques fiables

Retour en haut
Formations Analytics