Google Analytics 4
Guide technique pour mesurer le trafic et les conversions e-commerce : architecture côté serveur, couche de transport, débogage, attribution.
Série Tracking · Analytics · environ 15 min de lecture.
Identifiants nécessaires pour ce guide :
| Identifiant | Variable GTM | Où le trouver |
|---|---|---|
| ID de mesure GA4 | Const - GA4 - Measurement ID | GA4 > Administration > Flux de données > flux Web (p. ex. G-XXXXXXX) |
Rô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.).
Architecture 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
Transport 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 renseignés dans le conteneur GTM Web suffisent : les conteneurs GTM préconfigurés font le reste.
Événements e-commerce
Événements suivis dans GA4
| Événement GA4 | Étape du tunnel | Paramètres clés |
|---|---|---|
| page_view | Toutes les pages | page_location, page_title |
| view_item_list | Découverte | item_list_name, items[] |
| select_item | Découverte | item_list_name, items[] |
| view_item | Considération | currency, value, items[] |
| add_to_cart | Considération | currency, value, items[] |
| remove_from_cart | Considération | currency, value, items[] |
| view_cart | Considération | currency, value, items[] |
| begin_checkout | Conversion | currency, value, items[] |
| add_shipping_info | Conversion | shipping_tier, currency, value |
| add_payment_info | Conversion | payment_type, currency, value |
| purchase | Conversion | transaction_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ètre | Valeur | Rôle |
|---|---|---|
| ID de mesure | G-XXXXXXXXXX | Identifie la propriété GA4 |
| server_container_url | https://tags.ma-boutique.com | Envoie les hits vers le sGTM |
| Consentement | analytics_storage | Soumis au consentement Cookiebot |
| Déclencheur | All 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 des constantes à renseigner avec vos valeurs.
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énement | Conversion | Valeur |
|---|---|---|
| purchase | Oui | Chiffre d'affaires de la transaction |
| begin_checkout | Facultatif | Valeur du panier |
| add_to_cart | Non | - |
| page_view | Non | - |
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
Configuration
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)
Identifiants GA4
Les identifiants GA4 à renseigner dans le conteneur GTM Web :
| Champ | Exemple | Utilisation |
|---|---|---|
| ga4_measurement_id | G-XXXXXXXXXX | Balise GA4 Config du GTM Web |
| server_container_url | https://tags.ma-boutique.com | Transport vers le sGTM |
Remplacez ces valeurs d'exemple dans le conteneur GTM Web avant de le publier (guide Google Tag Manager).
DebugView et Temps réel
DebugView
- Administration GA4 → DebugView
- Activez le mode débogage (aperçu GTM ou debug_mode=true)
- Les événements apparaissent en temps réel, avec tous leurs paramètres
- Vérifiez les paramètres ecommerce GA4 (items[], value, currency)
- Vé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.
Vérification
Vérifier le transport vers le sGTM
- Ouvrez l'onglet Réseau (Network) du navigateur
- Filtrez sur le domaine personnalisé (tags.ma-boutique.com)
- Les requêtes /collect doivent pointer vers le sGTM
- Aucune requête directe vers google-analytics.com
Vérifier les événements GA4
- GA4 → DebugView (activez le mode débogage)
- Naviguez sur la boutique : accueil → collection → produit → panier → paiement
- Vérifiez chaque événement du tunnel
- Vérifiez les paramètres ecommerce GA4 (items[], value, currency)
- Passez 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
Dépannage
Checklist GA4
Checklist GA4
- ID de mesure (G-XXXXXXXXXX) renseigné dans le conteneur GTM Web
- server_container_url pointe vers le domaine personnalisé du sGTM
- Balise GA4 Config présente et active dans GTM Web
- Transport sGTM : requêtes visibles via le domaine personnalisé dans l'onglet Réseau
- É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)
- DebugView : événements e-commerce avec tous leurs paramètres (items[], value, currency)
- Événement purchase avec un transaction_id unique
- Consent Mode : uniquement des pings anonymisés avant le consentement analytics
- Aucun doublon : un seul conteneur GTM, aucune app de tracking native