Shopify
Guide technique complet de Shopify, la plateforme e-commerce d'où part chaque donnée : architecture de la boutique, nettoyage avant installation, tunnel de paiement, pixels, Privacy API, Markets multidevise et vérification.
Série Tracking · Infrastructure · environ 15 min de lecture.
Identifiants nécessaires pour ce guide :
| Identifiant | Où le trouver |
|---|---|
| URL de la boutique | Admin Shopify > Paramètres (p. ex. ma-boutique.myshopify.com) |
Rôle et objectif
Shopify est la source de toutes les données e-commerce. La boutique émet les événements utilisateur que le reste du dispositif (Addingwell, GTM, sGTM) collecte puis redistribue.
- Source des événements e-commerce (page_view, add_to_cart, purchase, etc.)
- Tunnel de paiement propriétaire, avec la Custom Pixel API
- Shopify Privacy API pour piloter le consentement des pixels
- Markets pour le multidevise et le multilingue
- Événements clients (Customer Events) pour les web pixels et les pixels personnalisés
Shopify ne gère aucune balise marketing en direct. Tout passe par Addingwell (DataLayer et injection de GTM), puis par GTM (balises et consentement).
Architecture de la boutique
Les couches du dispositif sur Shopify
Boutique Shopify
├── Thème (vitrine)
│ └── Pages publiques (accueil, collection, produit, panier)
│
├── Tunnel de paiement (iframe isolé)
│ └── Extensible via les pixels personnalisés
│
├── Événements clients (Paramètres)
│ ├── Web pixels (sandbox JS)
│ └── Pixels personnalisés (code libre)
│
├── Apps installées
│ ├── Addingwell (DataLayer + GTM + sGTM)
│ ├── Cookiebot (CMP via GTM)
│ └── Klaviyo (natif Shopify)
│
└── Privacy API
└── Gestion du consentement des pixels
Points clés
- Le thème ne joue aucun rôle dans le tracking (pas de code Liquid sur mesure)
- Le tunnel de paiement est isolé : seuls les pixels personnalisés (custom pixels) y ont accès
- Addingwell prend en charge toute la couche DataLayer et GTM, automatiquement
- La Privacy API ne contrôle que les web pixels et les pixels personnalisés de Shopify
Nettoyage avant installation
Avant d'installer le dispositif de tracking, faites le ménage dans l'existant. Deux systèmes de tracking actifs en parallèle produisent des événements en double, donc des données faussées.
Règle absolue
Nettoyez avant d'installer le dispositif. Un seul pixel oublié, une seule app de tracking restée en place, et toutes les données peuvent être faussées.
Apps à supprimer
| App | Raison |
|---|---|
| Facebook & Instagram (Meta natif) | Pixel Meta intégré, en conflit avec Meta CAPI via GTM |
| Google & YouTube (Google natif) | Tracking Google intégré, en conflit avec GA4 et Google Ads via GTM |
| Trackify, Pixel Perfect, Elevar, etc. | Apps de tracking tierces : doublons assurés |
| Scripts de tracking codés en dur dans le thème | Balises <script> ajoutées à la main dans theme.liquid |
Où vérifier
- Admin Shopify > Paramètres > Applications et canaux de vente : désinstaller les apps de tracking listées ci-dessus
- Admin Shopify > Paramètres > Événements clients (pixels personnalisés) : supprimer les anciens pixels personnalisés
- theme.liquid : rechercher et supprimer les appels fbq('init', ...), gtag('config', ...) et tout script de tracking ajouté à la main
Désactiver les options de confidentialité natives de Shopify
Conflit de consentement
Le consentement est géré par Cookiebot via GTM, et non par Shopify. La bannière et la page d'opposition natives doivent être désactivées pour éviter les conflits (double bannière, signaux contradictoires).
Rendez-vous dans Admin Shopify > Paramètres > Confidentialité des clients :
| Paramètre | Valeur attendue |
|---|---|
| Bannière de cookies : paramètres automatisés | OFF |
| Bannière de cookies : régions | Visible dans aucune région (décocher toutes les régions) |
| Page d'opposition : paramètres automatisés | OFF |
| Page d'opposition : régions | Active dans aucune région (décocher toutes les régions) |
| Politique de confidentialité | Peut rester « Automatisée » (contenu juridique, sans interférence) |
| Hébergement des données | Union européenne (cohérent avec la CDS Region .eu de Cookiebot) |
Événements du DataLayer
Addingwell génère le DataLayer automatiquement. Aucun code sur mesure n'est nécessaire dans le thème.
Événements par page
| Page | Événements | Données clés |
|---|---|---|
| Toutes | page_view | URL, titre, référent |
| Collection | view_item_list, select_item | Liste de produits, position |
| Produit | view_item | SKU, prix, variante |
| Produit / Collection | add_to_cart | Article, quantité, valeur |
| Panier | view_cart, remove_from_cart | Articles, valeur totale |
| Paiement | begin_checkout | Articles, valeur (pixel personnalisé) |
| Paiement | add_shipping_info, add_payment_info | Mode de livraison / de paiement |
| Remerciement | purchase | ID de transaction, chiffre d'affaires, articles (pixel personnalisé) |
Source unique
Tous les événements passent par le même DataLayer. Il n'existe pas de seconde source : Addingwell est le seul à y injecter des événements.
Checkout Extensibility
Le tunnel de paiement Shopify est un iframe isolé : le JavaScript du thème n'y a pas accès. Shopify propose deux mécanismes pour y faire du tracking :
| Mécanisme | Accès | Usage |
|---|---|---|
| Web pixels | Sandbox JS (limité) | Pixels standard (Meta) |
| Pixels personnalisés | Code libre (complet) | DataLayer sur mesure, événements GTM |
Pixel personnalisé Addingwell
Addingwell utilise un pixel personnalisé pour capter begin_checkout et purchase dans le tunnel de paiement, puis les pousse dans le DataLayer GTM.
Autorisation : « Not required » (non requise)
Le pixel personnalisé Addingwell est réglé sur « Not required ». C'est voulu : le consentement est géré par Cookiebot dans GTM (Consent Mode v2), et non par la Shopify Privacy API.
Sandbox du tunnel de paiement : une limite pour les tests
Le mode Preview de GTM ne fonctionne pas dans le tunnel de paiement
Le tunnel de paiement Shopify est une sandbox isolée, où le mode Preview (aperçu) de GTM ne fonctionne pas. Vérifiez les événements begin_checkout et purchase uniquement via DevTools > Network et la console JavaScript.
Web pixels et pixels personnalisés
| Web pixels | Pixels personnalisés | |
|---|---|---|
| Environnement | Sandbox JS (worker) | Sandbox JS (iframe) |
| Accès au DOM | Non | Non |
| Accès aux cookies | Non | Non |
| Code sur mesure | Non (configuration uniquement) | Oui (code libre) |
| Consentement | Shopify Privacy API | Réglable (Required / Not required) |
| Exemple | Klaviyo, Meta natif | DataLayer Addingwell |
Les web pixels sont gérés par les apps Shopify (Klaviyo, etc.). Les pixels personnalisés se configurent à la main dans Paramètres → Événements clients.
Shopify Privacy API
Rôle
La Shopify Customer Privacy API décide quels web pixels et pixels personnalisés ont le droit de se déclencher. La passerelle la synchronise avec Cookiebot.
Flux de consentement
Cookiebot (CMP dans GTM)
↓
Passerelle cookie-consent_boostecom.liquid
↓
Shopify.customerPrivacy.setTrackingConsent({
marketing: true/false
})
↓
Web pixels déclenchés / bloqués
Ce que la Privacy API contrôle
| Élément | Contrôlé par la Privacy API | Contrôlé par le Consent Mode de GTM |
|---|---|---|
| Web pixels (Klaviyo, Meta natif) | Oui | Non |
| Pixels personnalisés | Si autorisation = Required | Non |
| Balises GTM (GA4, Meta CAPI, etc.) | Non | Oui |
| Scripts du thème | Non | Non |
Bannière native de Shopify
La bannière de cookies et la page d'opposition de Shopify doivent être désactivées (aucune région cochée) pour éviter les conflits avec Cookiebot. Le détail se trouve dans la section Nettoyage avant installation.
Markets et multidevise
Shopify Markets gère le multidevise et le multilingue. Le tracking doit donc prendre en charge les conversions dans la devise locale.
Conséquences pour le tracking
- Addingwell inclut la devise (currency) dans chaque événement e-commerce
- Les montants (value, price) sont exprimés dans la devise locale du visiteur
- GA4 gère nativement le multidevise
- Meta CAPI reçoit la bonne devise via le sGTM
- Aucune configuration supplémentaire nécessaire
Le DataLayer Addingwell gère automatiquement la devise locale. Aucune configuration supplémentaire n'est nécessaire pour Markets.
Configuration
Prérequis
- Boutique Shopify active (forfait Basic ou supérieur)
- Accès administrateur avec les autorisations Applications et Événements clients
- Domaine personnalisé configuré
- Nettoyage avant installation effectué (voir la section 3)
Apps à installer
- Addingwell : DataLayer GA4, injection de GTM, contournement des bloqueurs de publicité, cookie restore
- Cookiebot : CMP RGPD (bannière de consentement, configurée via GTM)
Fonctionnalités Addingwell à activer
| Fonctionnalité | Rôle |
|---|---|
| DataLayer GA4 | Au moins 11 événements e-commerce automatiques |
| Injection GTM | GTM sur toutes les pages de la boutique |
| Pixel personnalisé du tunnel de paiement | Événements du tunnel de paiement (begin_checkout, purchase) |
| Contournement des bloqueurs (bypass adblockers) | Proxy CDN qui contourne les bloqueurs de publicité |
| Cookie restore | Contourne l'ITP de Safari, attribution sur une longue durée |
Pixel personnalisé du tunnel de paiement
- Aller dans Admin Shopify > Paramètres > Événements clients
- Ajouter un pixel personnalisé > coller le code fourni par Addingwell
- Autorisation « Not required » (et non « Required »), car le consentement est géré par GTM, pas par la Privacy API
Serveur sGTM
- Créer le serveur dans Addingwell
- Configurer le domaine personnalisé (p. ex. tags.ma-boutique.com)
- Région recommandée : Europe multi-region
- DNS : le CNAME fourni dans Addingwell > Server > Custom Domain
Contrôles après installation
- Addingwell connecté et actif dans son tableau de bord
- Pixel personnalisé Addingwell présent dans Paramètres → Événements clients
- Autorisation du pixel personnalisé = « Not required »
- Bannière native Shopify désactivée (Paramètres → Confidentialité des clients)
- Passerelle de consentement présente dans theme.liquid (cookie-consent_boostecom.liquid)
- Pixel personnalisé DataLayer Monitor installé dans Événements clients
- Le domaine personnalisé du sGTM répond avec un statut 200
Vérification
Vérifier le DataLayer
- Ouvrir la console du navigateur sur la boutique
- Taper dataLayer et vérifier que les événements sont présents
- Naviguer : accueil → collection → produit → panier
- Vérifier page_view, view_item_list, view_item, add_to_cart, view_cart
- Passer une commande test → vérifier begin_checkout et purchase
Vérifier les pixels personnalisés
- Admin Shopify → Paramètres → Événements clients
- Vérifier que le pixel personnalisé Addingwell est présent et actif
- Vérifier que l'autorisation est sur « Not required »
- Vérifier que le DataLayer Monitor est présent et actif
- Aucun autre pixel personnalisé en conflit
Vérifier la Privacy API
- Console du navigateur → Shopify.customerPrivacy.getTrackingConsent()
- Avant tout choix : marketing = "no_interaction"
- Après acceptation dans Cookiebot : marketing = "yes"
- Après refus dans Cookiebot : marketing = "no"
Test avant consentement (navigation privée)
- Ouvrir le site en navigation privée
- Cliquer sur « Tout refuser » dans la bannière Cookiebot
- Preview GTM : vérifier que seules les balises Necessary se déclenchent
- Onglet Network : aucune requête vers GA4, Meta ou Google Ads
Test après consentement
- Ouvrir le site en navigation privée
- Cliquer sur « Tout accepter » dans la bannière
- Preview GTM : les balises de mesure d'audience et marketing doivent se déclencher
- DebugView de GA4 : les événements apparaissent en temps réel
Test d'achat : commande test
Passez une commande test, puis exécutez ceci dans la console :
dataLayer.filter(e => e.event === 'purchase')
- transaction_id unique (aucun doublon)
- value correcte (prix total, taxes et livraison comprises)
- currency valide (ISO 4217, p. ex. EUR, USD)
- Tableau items complet, avec tous les produits
Nettoyage final
Une fois le dispositif vérifié, confirmez qu'il ne reste rien qui puisse interférer :
- App « Facebook & Instagram » supprimée (pixel Meta natif)
- App « Google & YouTube » supprimée (tracking Google natif)
- Anciennes apps de tracking supprimées (Trackify, Pixel Perfect, Elevar, etc.)
- Plus aucun script de tracking ajouté à la main dans le thème (Liquid)
- Bannière de cookies et page d'opposition Shopify désactivées (aucune région cochée)
Dépannage
Checklist Shopify
- Nettoyage : anciens pixels et apps de tracking supprimés
- Nettoyage : scripts de tracking codés en dur retirés du thème
- Nettoyage : bannière de cookies et page d'opposition Shopify désactivées
- Addingwell installé et actif
- DataLayer visible dans la console du navigateur
- Pixel personnalisé du tunnel de paiement configuré (autorisation « Not required »)
- Pixel personnalisé DataLayer Monitor installé
- Passerelle de consentement installée (cookie-consent_boostecom.liquid)
- Privacy API synchronisée (consentement marketing via Cookiebot)
- Test avant consentement validé (balises bloquées après un refus)
- Test après consentement validé (balises actives après acceptation)
- Test d'achat validé (transaction_id, value, currency, items)