GuideAnalytics~15 min

Google Analytics 4

Guide technique pour mesurer le trafic et les conversions e-commerce : architecture côté serveur, couche de transport, débogage, attribution.

Connecteurs0/1
ID de mesure GA4
GA4 > Administration > Flux de données > flux Web (p. ex. G-XXXXXXX)

1Rôle et objectif

Dans notre dispositif de tracking, GA4 joue deux rôles :

Analytics

  • Mesure du trafic et du comportement
  • Tunnel e-commerce complet
  • Attribution des conversions
  • Rapports et analyses

Transport technique

  • Achemine les événements jusqu'au sGTM
  • Protocole de collecte standard
  • Seul moyen fiable d'atteindre le sGTM
  • Contourne les bloqueurs de publicité grâce au domaine personnalisé

GA4 est à la fois l'outil d'analytics et le véhicule technique qui alimente toutes les destinations côté serveur (Meta CAPI, Google Ads, etc.).

2Architecture côté serveur

Le flux complet

Addingwell DataLayer
      |
GTM Web Container
      |
GA4 Config Tag (transport_url = sGTM)
      |
Server-Side GTM (domaine personnalisé)
      |
+-- GA4 Server Tag --> Google Analytics
+-- Meta CAPI Tag --> Meta Conversions API
+-- Google Ads Tag --> Enhanced Conversions
+-- Autres destinations côté serveur

Pourquoi côté serveur ?

  • Contourne les bloqueurs de publicité (domaine personnalisé first-party)
  • Données plus fiables (aucune perte côté client)
  • Consent Mode géré côté serveur
  • Un point de collecte unique pour toutes les destinations
  • Cookie restore contre l'ITP, via Addingwell

3Transport des données

Dans notre architecture, GA4 sert de couche de transport entre le GTM Web et le sGTM. Les événements GA4 transportent toutes les données dont les destinations ont besoin.

server_container_url

Le champ server_container_url de la balise GA4 Config envoie les hits vers le sGTM au lieu de google-analytics.com.

Sans server_container_url :
navigateur --> google-analytics.com (bloqué par les bloqueurs de publicité)

Avec server_container_url :
navigateur --> tags.ma-boutique.com --> sGTM --> GA4 + destinations

Point critique

Sans server_container_url, les hits GA4 partent directement chez Google et aucune destination côté serveur ne fonctionne (Meta CAPI, conversions améliorées Google Ads, etc.).

Le parcours des données GA4

GA4 est branché automatiquement sur le transport côté serveur. La balise GA4 Config du GTM Web envoie les hits vers le domaine personnalisé du sGTM (first-party), qui les reçoit et les redistribue.

GTM Web (client)
--> GA4 Config + Transport tag
  --> Requête HTTP vers le domaine personnalisé du sGTM (first-party)

sGTM (serveur)
--> GA4 Client (reçoit la requête)
  +-- GA4 Server tag --> Google Analytics 4
  +-- META - CAPI - All Events --> Meta (Full CAPI, server-only)
  +-- GADS - Conv - purchase --> Google Ads Enhanced Conversions
  +-- (bientôt) TikTok Events API, Snap CAPI

Enrichissement côté serveur :
- Hachage SHA-256 automatique (e-mail, téléphone, adresse)
- Cookies d'attribution (fbp, fbc, gclid, wbraid, gbraid)
- event_id pour la déduplication
- Signaux Consent Mode v2 transmis

Ce que GA4 reçoit

  • Tous les événements e-commerce du DataLayer (page_view, view_item, add_to_cart, purchase, etc.)
  • Les paramètres enrichis (items[], value, currency, transaction_id)
  • Les signaux Consent Mode v2 (analytics_storage, ad_storage)
  • Les cookies d'attribution first-party (fbp, fbc, gclid), grâce au cookie restore

Ce que GA4 ne reçoit pas directement

  • Les données personnelles en clair (hachées uniquement côté serveur)
  • Les événements destinés aux autres plateformes (Meta, Google Ads) : le sGTM les traite en parallèle
  • Les événements sans consentement analytics (seulement les pings anonymisés de l'Advanced Consent Mode)

GA4 n'a besoin d'aucune configuration supplémentaire pour servir de transport. L'ID de mesure et le server_container_url saisis dans le bloc Connecteurs suffisent : les conteneurs GTM préconfigurés font le reste.

4Événements e-commerce

Événements suivis dans GA4

Événement GA4Étape du tunnelParamètres clés
page_viewToutes les pagespage_location, page_title
view_item_listDécouverteitem_list_name, items[]
select_itemDécouverteitem_list_name, items[]
view_itemConsidérationcurrency, value, items[]
add_to_cartConsidérationcurrency, value, items[]
remove_from_cartConsidérationcurrency, value, items[]
view_cartConsidérationcurrency, value, items[]
begin_checkoutConversioncurrency, value, items[]
add_shipping_infoConversionshipping_tier, currency, value
add_payment_infoConversionpayment_type, currency, value
purchaseConversiontransaction_id, currency, value, items[]

Paramètres enrichis

Chaque événement e-commerce contient le tableau items[] complet : item_id, item_name, price, quantity, item_category et item_variant.

Balise Config (GTM Web)

La balise GA4 Config du conteneur GTM Web règle la collecte et le transport vers le sGTM.

ParamètreValeurRôle
ID de mesureG-XXXXXXXXXXIdentifie la propriété GA4
server_container_urlhttps://tags.ma-boutique.comEnvoie les hits vers le sGTM
Consentementanalytics_storageSoumis au consentement Cookiebot
DéclencheurAll Pages (toutes les pages)Initialisée sur chaque page

Balise GA4 Transport

Une seconde balise GA4 Event sert de transport aux événements e-commerce : elle relaie les événements du DataLayer jusqu'au conteneur serveur (sGTM).

Les deux balises (Config et Transport) sont incluses dans le conteneur GTM Web préconfiguré. Les identifiants (ID de mesure, server_container_url) y sont injectés depuis le bloc Connecteurs.

Balise GA4 Server (sGTM)

Dans le sGTM, la balise GA4 Server reçoit les événements et les transmet à la propriété Google Analytics.

GA4 Client (sGTM) reçoit le hit
      |
GA4 Server Tag --> transmis à Google Analytics
      |
Autres balises (Meta, Google Ads) --> lisent les mêmes événements
      |
Chaque destination reçoit les données enrichies
  • Le client GA4 analyse les hits entrants
  • La balise GA4 Server les transmet à Google Analytics
  • Les autres balises (Meta CAPI, Google Ads) se déclenchent sur les mêmes événements
  • Aucun double envoi : un seul hit GA4 alimente toutes les destinations

Conversions et attribution

Dans GA4, marquez comme conversions (« événements clés » dans l'interface de GA4) les événements qui comptent :

ÉvénementConversionValeur
purchaseOuiChiffre d'affaires de la transaction
begin_checkoutFacultatifValeur du panier
add_to_cartNon-
page_viewNon-

Modèle d'attribution

  • Par défaut, GA4 utilise l'attribution basée sur les données (Data-Driven Attribution)
  • Les conversions modélisées compensent les pertes de données (consentement, bloqueurs de publicité)
  • L'Advanced Consent Mode envoie des pings anonymisés, même sans consentement analytics
  • Les conversions Google Ads importées depuis GA4 profitent de cette modélisation

5Configuration

Prérequis

  • Propriété GA4 créée dans Google Analytics
  • ID de mesure (G-XXXXXXXXXX)
  • Flux Web configuré
  • Domaine personnalisé du sGTM configuré (server_container_url)

Bloc Connecteurs

Les identifiants GA4 se renseignent dans le bloc Connecteurs :

ChampExempleUtilisation
ga4_measurement_idG-XXXXXXXXXXBalise GA4 Config du GTM Web
server_container_urlhttps://tags.ma-boutique.comTransport vers le sGTM

Ces valeurs sont injectées automatiquement dans les conteneurs GTM au moment du téléchargement. Rien à configurer à la main dans GTM.

DebugView et Temps réel

DebugView

  1. 1Administration GA4 → DebugView
  2. 2Activez le mode débogage (aperçu GTM ou debug_mode=true)
  3. 3Les événements apparaissent en temps réel, avec tous leurs paramètres
  4. 4Vérifiez les paramètres ecommerce (items[], value, currency)
  5. 5Vérifiez que les événements arrivent bien (aucun trou dans le tunnel)

Temps réel

  • GA4 → Rapports → Temps réel
  • Affiche les événements des 30 dernières minutes
  • Pratique pour vérifier rapidement un changement
  • N'affiche pas le détail des paramètres (passez par DebugView pour cela)

Latence

Les rapports GA4 standards ont 24 à 48 h de retard. Pour déboguer, utilisez toujours DebugView ou le rapport Temps réel.

6Vérification

Vérifier le transport vers le sGTM

  1. 1Ouvrez l'onglet Réseau (Network) du navigateur
  2. 2Filtrez sur le domaine personnalisé (tags.ma-boutique.com)
  3. 3Les requêtes /collect doivent pointer vers le sGTM
  4. 4Aucune requête directe vers google-analytics.com

Vérifier les événements GA4

  1. 1GA4 → DebugView (activez le mode débogage)
  2. 2Naviguez sur la boutique : accueil → collection → produit → panier → paiement
  3. 3Vérifiez chaque événement du tunnel
  4. 4Vérifiez les paramètres ecommerce (items[], value, currency)
  5. 5Passez un achat test → vérifiez que purchase porte bien un transaction_id

Vérifier le consentement

  • Avant consentement : uniquement des pings anonymisés (Advanced Consent Mode)
  • Après consentement analytics : événements complets, avec les cookies GA4
  • Vérifiez dans le mode Aperçu de GTM que le consentement conditionne bien les balises

Contrôles de GA4 en tant que destination (phase 3)

Points de contrôle propres à GA4 en tant que destination du sGTM :

  • Événements visibles dans le rapport Temps réel de GA4 après consentement
  • Requêtes envoyées par le domaine personnalisé du sGTM (et non par googletagmanager.com)
  • Balise GA4 Server active dans le sGTM, qui transmet bien à Google Analytics
  • Vérifiez dans GA4 → Administration → DebugView que les événements arrivent bien du serveur

7Dépannage

Aucun événement dans GA4

Vérifier :

  1. 1ID de mesure correct dans le bloc Connecteurs
  2. 2Balise GA4 Config présente dans GTM Web
  3. 3GTM injecté par Addingwell (GTM bien présent)
  4. 4server_container_url pointe vers le bon sGTM
Événements dans GA4 mais pas dans le sGTM

Vérifier :

  • server_container_url configuré dans la balise GA4 Config
  • Le DNS du domaine personnalisé pointe vers le sGTM
  • sGTM en service (pas à l'arrêt)
  • Client GA4 actif dans le sGTM
Événement purchase absent de GA4

Vérifier :

  • Pixel personnalisé Addingwell actif dans Shopify
  • Événement purchase présent dans le DataLayer (console)
  • Balise GA4 Event déclenchée sur l'événement purchase dans GTM
  • transaction_id présent et unique
DebugView de GA4 vide

Vérifier :

  • ID de mesure incorrect dans la variable GTM
  • Mode débogage inactif (activez-le via l'aperçu GTM ou debug_mode=true)
  • Consentement refusé : acceptez-le et rechargez la page
  • Vérifiez que la balise GA4 Config se déclenche dans l'aperçu GTM
Requêtes GA4 bloquées par les bloqueurs de publicité

Vérifier :

  • Vérifiez que server_container_url utilise un domaine personnalisé first-party
  • Le domaine personnalisé du sGTM doit se trouver sur le même domaine que la boutique
  • Vérifiez dans l'onglet Réseau : les requêtes doivent partir vers tags.ma-boutique.com, pas vers google-analytics.com
  • Sans domaine personnalisé, toutes les destinations côté serveur sont touchées
Achats en double dans GA4

Vérifier :

  • Vérifiez que l'event_id (transaction_id) est unique pour chaque commande
  • Supprimez les apps de tracking natives (Facebook & Instagram, Google & YouTube)
  • Vérifiez qu'aucune balise GA4 n'est en double dans GTM Web
  • Un seul conteneur GTM doit être actif sur la boutique

8Checklist GA4

Checklist GA40/10

Vérifiez la couche que vous venez d'installer

Scannez la boutique : 41 contrôles lisent ce qu'elle envoie maintenant à GA4, Meta et Google Ads.