Addingwell
Guide technique complet : plugin infrastructure Shopify. Installation, DataLayer GA4, Custom Pixel checkout, injection GTM, bypass adblockers, cookie restore, attribution cookies, DataLayer Monitor.
1Role / Objectif
Addingwell est le plugin d'infrastructure qui automatise toute la couche technique du tracking Shopify :
- Injection automatique du DataLayer GA4 (11+ events e-commerce)
- Custom Pixel pour les events checkout (begin_checkout, purchase)
- Injection GTM sur toutes les pages du store
- Bypass adblockers via CDN proxy first-party
- Cookie restore pour contourner ITP Safari
- Hebergement du serveur sGTM (server-side GTM)
Addingwell remplace toute configuration manuelle du DataLayer. Aucun code custom n'est necessaire dans le theme pour le tracking.
2Architecture
Ce qu'Addingwell installe automatiquement
Shopify Store
├── DataLayer GA4 (toutes les pages)
│ └── 11+ events e-commerce standards
├── Custom Pixel (checkout)
│ └── begin_checkout + purchase
├── GTM Web Container (injection)
│ └── Script injecte sur toutes les pages
├── CDN Proxy (bypass adblockers)
│ └── Domain first-party pour les scripts
├── Cookie Restore (ITP Safari)
│ └── Restauration cookies first-party
└── Serveur sGTM
└── Custom domain + region configurableIntegration dans le stack
Shopify
→ Theme layer
→ Bridge Cookiebot → Shopify Privacy API
→ Addingwell
→ DataLayer GA4 + DataLayer Monitor (custom pixel)
→ GTM Web
→ Cookiebot CMP (Consent Mode v2, EEA + UK)
→ GA4 tag → sGTM
→ Meta Pixel → sGTM
→ Google Ads tag → sGTM
→ sGTM (Addingwell server)
→ GA4 (server)
→ Meta CAPI (server)
→ Google Ads Enhanced Conversions (server)
→ Attribution cookies (fbp, fbc, gclid, wbraid, gbraid)Avantages
- Zero configuration theme — tout est automatique
- Compatible avec tous les themes Shopify
- Pas de code Liquid custom necessaire pour le tracking
- Mise a jour automatique quand Shopify change ses APIs
- Support natif des markets multi-devises
3Installation
Creer un compte et installer
- 1Creer un compte sur addingwell.com (billing actif requis)
- 2Installer le plugin Shopify depuis l'App Store Addingwell
- 3Dans les settings du plugin, activer les features suivantes
Features a activer
| Feature | Role |
|---|---|
| DataLayer GA4 | 11+ events e-commerce automatiques |
| GTM injection | GTM sur toutes les pages du store |
| Custom Pixel checkout | Events checkout (begin_checkout, purchase) |
| Bypass adblockers | CDN proxy, contourne les bloqueurs |
| Cookie restore | Bypass ITP Safari, attribution longue duree |
Configurer le custom pixel checkout
- 1Shopify Admin > Settings > Customer Events
- 2Add custom pixel > coller le code fourni par Addingwell
Permission : Not required
Le Custom Pixel utilise la permission "Not required". Il repose sur le Google Advanced Consent Mode via GTM, pas sur la Shopify Privacy API. Ne jamais modifier cette permission.
Configurer le serveur sGTM
- 1Creer le serveur dans le dashboard Addingwell
- 2Custom domain : tags.ma-boutique.com (votre sous-domaine)
- 3Region recommandee : Europe multi-region
Configurer le DNS (custom domain)
Le custom domain (ex: tags.ma-boutique.com) sert a la fois de endpoint sGTM et de CDN proxy pour GTM. Il permet le tracking first-party (bypass adblockers, ITP Safari).
| Type | Nom | Valeur |
|---|---|---|
| CNAME | tags | fournie par Addingwell |
La valeur CNAME exacte est affichee dans Addingwell > Server > Custom Domain lors de la creation du serveur. Propagation DNS : quelques minutes a 48h selon le registrar.
4DataLayer GA4
Events e-commerce injectes
| Event GA4 | Page | Description |
|---|---|---|
| page_view | Toutes | Chargement de page |
| view_item_list | Collection | Vue liste produits |
| select_item | Collection | Clic sur un produit |
| view_item | Produit | Vue fiche produit |
| add_to_cart | Produit / Collection | Ajout au panier |
| remove_from_cart | Panier | Retrait du panier |
| view_cart | Panier | Vue panier |
| begin_checkout | Checkout | Debut checkout (Custom Pixel) |
| add_shipping_info | Checkout | Info livraison renseignee |
| add_payment_info | Checkout | Info paiement renseignee |
| purchase | Thank you | Achat confirme (Custom Pixel) |
Structure d'un event
dataLayer.push({
event: "view_item",
ecommerce: {
currency: "EUR",
value: 49.90,
items: [{
item_id: "SKU-001",
item_name: "T-Shirt Premium",
price: 49.90,
quantity: 1
}]
}
})Verification rapide
- 1Ouvrir la Console du navigateur sur le store
- 2Taper dataLayer et verifier les events
- 3Naviguer : page → collection → produit → panier
- 4Verifier page_view, view_item_list, view_item, add_to_cart
Cette structure est generee automatiquement par Addingwell. Pas de dataLayer.push() custom necessaire.
5Custom Pixel Checkout
Le checkout Shopify est isole (iframe). Addingwell utilise un Custom Pixel pour capturer les events checkout.
Events captures
- begin_checkout — debut du processus d'achat
- purchase — achat confirme avec transaction_id, value, items
Permission : Not required
Le Custom Pixel utilise la permission "Not required". C'est intentionnel : il repose sur le Google Advanced Consent Mode via GTM, pas sur la Shopify Privacy API. Ne jamais modifier cette permission.
Flux des events checkout
Shopify Checkout (iframe)
↓
Custom Pixel Addingwell
↓
dataLayer.push({ event: "purchase", ... })
↓
GTM Web Container
↓
GA4 → sGTM → DestinationsInjection GTM
Addingwell injecte automatiquement le snippet GTM Web sur toutes les pages du store Shopify.
- Pas besoin de modifier theme.liquid
- Injection optimisee (async, non-bloquante)
- Compatible avec tous les themes
- Mise a jour automatique du snippet
- Supporte le CDN proxy pour le bypass adblockers
L'injection GTM via Addingwell est la methode recommandee. Ne pas injecter GTM manuellement dans le theme si Addingwell est installe.
Bypass Adblockers
Requete normale (bloquee) browser → googletagmanager.com ✗ (adblocker) Requete via CDN proxy (passe) browser → cdn.monstore.com → googletagmanager.com ✓
- CDN proxy first-party sur le domaine du store
- Les scripts GTM/GA4 sont servis depuis le meme domaine
- Les adblockers ne bloquent pas les requetes first-party
- Recuperation de 15-30% de donnees perdues
6Cookie Restore / Attribution
Probleme ITP Safari
Safari ITP limite les cookies first-party JavaScript a 7 jours (ou 24h dans certains cas). Les identifiants tracking (_ga, _fbp, _fbc) expirent trop vite.
Solution Cookie Restore
- Addingwell intercepte les cookies avant expiration
- Les cookies sont re-ecrits via un endpoint server-side
- Les cookies server-side ne sont pas affectes par ITP
- Duree de vie restauree a la valeur normale (2 ans pour _ga)
Impact
Sans cookie restore, l'attribution Safari est limitee a 7 jours max. Avec, les fenetres d'attribution sont restaurees a leur valeur normale.
Cookies d'attribution (1P)
Les cookies d'attribution sont persistes en first-party par Addingwell (cookie restore). Ils survivent a ITP Safari et aux purges navigateur, assurant une attribution fiable.
| Cookie | Plateforme | Usage |
|---|---|---|
| _fbp | Meta | Browser ID — identifie le navigateur pour le matching CAPI |
| _fbc | Meta | Click ID — capture le fbclid des publicites Meta |
| _gcl_aw (gclid) | Google Ads | Click ID — attribution des conversions Google Ads |
| _gcl_gb (gbraid) | Google Ads | Click ID — attribution cross-device (app→web) |
| _gcl_gw (wbraid) | Google Ads | Click ID — attribution web-to-app iOS 14.5+ |
Ces cookies sont automatiquement lus et transmis par sGTM aux destinations respectives. Le cookie restore Addingwell les reecrit en first-party via le custom domain, contournant ITP Safari (7 jours → duree complete).
7DataLayer Monitor
Le DataLayer Monitor est un Custom Pixel Shopify qui fournit une couche d'observabilite sur le tracking. Il instrumente dataLayer.push() et gtag(), charge le snippet Addingwell, et fournit des outils de debug en temps reel.
Fonctionnalites
| Feature | Description |
|---|---|
| Instrumentation dataLayer | Intercepte chaque dataLayer.push() pour logging et audit |
| Instrumentation gtag() | Capture les appels gtag() (config, event, consent, set) |
| Console stylee | Logs structures et colores dans la console DevTools |
| Audit doublons | Detecte les events envoyes plusieurs fois (fenetre configurable) |
| PII masking | Masque les donnees sensibles (email, tel) dans les logs console |
| Debug mode | Active via ?awdebug=1 dans l'URL — logs detailles |
| Page context push | Publie page_location, page_referrer et page_title fiables depuis init.context |
| Shopify Customer Events | Souscrit aux events standards Shopify et les logge |
| Addingwell loader | Charge le snippet Addingwell dans le contexte du custom pixel |
Installation du Custom Pixel
- 1Shopify Admin > Settings > Customer Events > Add custom pixel
- 2Nom : "AW × BE — DataLayer Monitor"
- 3Autorisation : "Non requise" — le pixel utilise le Google Advanced Consent Mode via GTM
- 4Vente de donnees : "Pas une vente de donnees"
- 5Coller le script DataLayer Monitor (v3.0.0)
- 6Connecter le pixel > Save
Le debug mode s'active en ajoutant ?awdebug=1 a n'importe quelle URL du store. Les logs detailles apparaissent dans la console DevTools avec des badges colores par type d'event.
Un seul pixel checkout actif
Ce custom pixel remplace le pixel checkout Addingwell par defaut. Ne pas avoir les deux actifs en meme temps — cela causerait des doublons.
8Configuration
Pre-requis
- Compte Addingwell actif (billing requis)
- Store Shopify connecte
- GTM Web Container ID (GTM-XXXXXXX)
- Custom domain configure pour le CDN proxy et sGTM (recommande)
Etapes de configuration
- 1Installer l'app Addingwell depuis le Shopify App Store
- 2Connecter le store dans le dashboard Addingwell
- 3Renseigner le GTM Web Container ID
- 4Activer le CDN proxy (bypass adblockers)
- 5Activer le Cookie Restore (bypass ITP)
- 6Creer le serveur sGTM + configurer le custom domain DNS
- 7Verifier l'injection GTM sur le store
Configuration sGTM
| Parametre | Valeur |
|---|---|
| Custom domain | tags.ma-boutique.com (sous-domaine du store) |
| Region | Europe multi-region (recommande) |
| DNS | CNAME — valeur fournie par Addingwell |
9Verification
Phase 1 : Infrastructure Addingwell
- 1Plugin Addingwell actif dans Shopify (Apps > Addingwell)
- 2DataLayer GA4 present — taper dataLayer dans la console
- 3Custom pixel checkout configure dans Addingwell
- 4Cookie restore actif — champ shopify_y present dans le DataLayer
- 5Requetes sGTM first-party visibles dans Network (custom domain)
- 6Custom domain sGTM repond avec statut 200
Verifier le DataLayer
- 1Ouvrir la console navigateur sur le store
- 2Taper dataLayer et verifier les events
- 3Naviguer : page → collection → produit → panier
- 4Verifier page_view, view_item_list, view_item, add_to_cart
- 5Completer un checkout test → verifier begin_checkout, purchase
Verifier GTM
- Ouvrir GTM Preview Mode
- Les events doivent apparaitre dans le debug panel
- Verifier que les variables ecommerce sont remplies
Verifier le CDN Proxy
- Ouvrir l'onglet Network du navigateur
- Les requetes GTM/GA4 doivent pointer vers le custom domain
- Pas de requete directe vers googletagmanager.com
Verifier les cookies d'attribution
- DevTools > Application > Cookies
- Verifier la presence de _fbp, _fbc, _gcl_aw (gclid)
- Les cookies doivent avoir le domaine du store (first-party)
10Troubleshooting
Verifier :
- 1App Addingwell installee et connectee
- 2Store actif dans le dashboard Addingwell
- 3Pas de conflit avec un autre script DataLayer
Verifier :
- Custom Pixel actif dans Settings → Customer Events
- Permission = "Not required"
- Pas d'erreur JS dans la console du checkout
- Verifier que le trigger purchase existe dans GTM
- Verifier que la requete sGTM repond 200
Verifier :
- GTM Container ID correct dans Addingwell
- Pas de snippet GTM manuel dans le theme (conflit)
- App Addingwell activee
Verifier :
- Cookie Restore active dans Addingwell > Settings
- Verifier le champ shopify_y dans le DataLayer
- Verifier les enregistrements DNS du custom domain sGTM
- Custom domain sGTM repond avec statut 200
Verifier :
- Cookie restore desactive dans Addingwell
- Custom domain sGTM non configure
- Les cookies doivent apparaitre dans DevTools > Application > Cookies avec le domaine du store
Verifier :
- Verifier qu'un seul custom pixel checkout est actif (DataLayer Monitor OU pixel Addingwell, pas les deux)
- Verifier dans GTM qu'un event n'a pas deux triggers actifs
- Utiliser ?awdebug=1 pour voir l'audit doublons dans la console