GuideInfrastructure~15 min

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.

Connecteurs0/1
URL de la boutique
Admin Shopify > Paramètres (p. ex. ma-boutique.myshopify.com)

1Rô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).

2Architecture 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

3Nettoyage 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

AppRaison
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èmeBalises <script> ajoutées à la main dans theme.liquid

Où vérifier

  1. 1Admin Shopify > Paramètres > Applications et canaux de vente : désinstaller les apps de tracking listées ci-dessus
  2. 2Admin Shopify > Paramètres > Événements clients (pixels personnalisés) : supprimer les anciens pixels personnalisés
  3. 3theme.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ètreValeur attendue
Bannière de cookies : paramètres automatisésOFF
Bannière de cookies : régionsVisible dans aucune région (décocher toutes les régions)
Page d'opposition : paramètres automatisésOFF
Page d'opposition : régionsActive 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éesUnion européenne (cohérent avec la CDS Region .eu de Cookiebot)

4É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énementsDonnées clés
Toutespage_viewURL, titre, référent
Collectionview_item_list, select_itemListe de produits, position
Produitview_itemSKU, prix, variante
Produit / Collectionadd_to_cartArticle, quantité, valeur
Panierview_cart, remove_from_cartArticles, valeur totale
Paiementbegin_checkoutArticles, valeur (pixel personnalisé)
Paiementadd_shipping_info, add_payment_infoMode de livraison / de paiement
RemerciementpurchaseID 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.

5Checkout 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écanismeAccèsUsage
Web pixelsSandbox JS (limité)Pixels standard (Meta)
Pixels personnalisésCode 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.

6Web pixels et pixels personnalisés

Web pixelsPixels personnalisés
EnvironnementSandbox JS (worker)Sandbox JS (iframe)
Accès au DOMNonNon
Accès aux cookiesNonNon
Code sur mesureNon (configuration uniquement)Oui (code libre)
ConsentementShopify Privacy APIRéglable (Required / Not required)
ExempleKlaviyo, Meta natifDataLayer 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.

7Shopify 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émentContrôlé par la Privacy APIContrôlé par le Consent Mode de GTM
Web pixels (Klaviyo, Meta natif)OuiNon
Pixels personnalisésSi autorisation = RequiredNon
Balises GTM (GA4, Meta CAPI, etc.)NonOui
Scripts du thèmeNonNon

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.

8Markets 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.

9Configuration

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

  1. 1Addingwell : DataLayer GA4, injection de GTM, contournement des bloqueurs de publicité, cookie restore
  2. 2Cookiebot : CMP RGPD (bannière de consentement, configurée via GTM)

Fonctionnalités Addingwell à activer

FonctionnalitéRôle
DataLayer GA4Au moins 11 événements e-commerce automatiques
Injection GTMGTM 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 restoreContourne l'ITP de Safari, attribution sur une longue durée

Pixel personnalisé du tunnel de paiement

  1. 1Aller dans Admin Shopify > Paramètres > Événements clients
  2. 2Ajouter un pixel personnalisé > coller le code fourni par Addingwell
  3. 3Autorisation « Not required » (et non « Required »), car le consentement est géré par GTM, pas par la Privacy API

Serveur sGTM

  1. 1Créer le serveur dans Addingwell
  2. 2Configurer le domaine personnalisé (p. ex. tags.ma-boutique.com)
  3. 3Région recommandée : Europe multi-region
  4. 4DNS : le CNAME fourni dans Addingwell > Server > Custom Domain

Contrôles après installation

  1. 1Addingwell connecté et actif dans son tableau de bord
  2. 2Pixel personnalisé Addingwell présent dans Paramètres → Événements clients
  3. 3Autorisation du pixel personnalisé = « Not required »
  4. 4Bannière native Shopify désactivée (Paramètres → Confidentialité des clients)
  5. 5Passerelle de consentement présente dans theme.liquid (cookie-consent_boostecom.liquid)
  6. 6Pixel personnalisé DataLayer Monitor installé dans Événements clients
  7. 7Le domaine personnalisé du sGTM répond avec un statut 200

10Vérification

Vérifier le DataLayer

  1. 1Ouvrir la console du navigateur sur la boutique
  2. 2Taper dataLayer et vérifier que les événements sont présents
  3. 3Naviguer : accueil → collection → produit → panier
  4. 4Vérifier page_view, view_item_list, view_item, add_to_cart, view_cart
  5. 5Passer une commande test → vérifier begin_checkout et purchase

Vérifier les pixels personnalisés

  1. 1Admin Shopify → Paramètres → Événements clients
  2. 2Vérifier que le pixel personnalisé Addingwell est présent et actif
  3. 3Vérifier que l'autorisation est sur « Not required »
  4. 4Vérifier que le DataLayer Monitor est présent et actif
  5. 5Aucun autre pixel personnalisé en conflit

Vérifier la Privacy API

  1. 1Console du navigateur → Shopify.customerPrivacy.getTrackingConsent()
  2. 2Avant tout choix : marketing = "no_interaction"
  3. 3Après acceptation dans Cookiebot : marketing = "yes"
  4. 4Après refus dans Cookiebot : marketing = "no"

Test avant consentement (navigation privée)

  1. 1Ouvrir le site en navigation privée
  2. 2Cliquer sur « Tout refuser » dans la bannière Cookiebot
  3. 3Preview GTM : vérifier que seules les balises Necessary se déclenchent
  4. 4Onglet Network : aucune requête vers GA4, Meta ou Google Ads

Test après consentement

  1. 1Ouvrir le site en navigation privée
  2. 2Cliquer sur « Tout accepter » dans la bannière
  3. 3Preview GTM : les balises de mesure d'audience et marketing doivent se déclencher
  4. 4DebugView 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 :

javascript
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)

11Dépannage

DataLayer vide

Vérifier :

  1. 1App Addingwell installée et active
  2. 2Boutique connectée dans le tableau de bord Addingwell
  3. 3Aucun conflit avec un autre script DataLayer
purchase manquant

Vérifier :

  • Pixel personnalisé actif dans Paramètres → Événements clients
  • Autorisation = « Not required »
  • Aucune erreur JS dans la console du tunnel de paiement
  • DataLayer Monitor actif pour le diagnostic (?awdebug=1)
La Privacy API renvoie no_interaction après le consentement

Vérifier :

  • Passerelle cookie-consent_boostecom.liquid présente dans theme.liquid
  • Position : après {{ content_for_header }}
  • Shopify.loadFeatures OK dans la console
  • L'événement CookiebotOnConsentReady se déclenche
Événements en double

Vérifier :

  • Pixels natifs encore actifs (Facebook & Instagram, Google & YouTube)
  • event_id absent du DataLayer
  • Conteneurs GTM importés plusieurs fois
  • Supprimer les apps de tracking natives et vérifier l'event_id
Événements du tunnel de paiement manquants (begin_checkout, purchase)

Vérifier :

  • Pixel personnalisé Addingwell du tunnel de paiement inactif
  • Déclencheur purchase absent dans GTM
  • Requête sGTM non envoyée (vérifier l'onglet Network)
  • Vérifier dans la console : dataLayer.filter(e => ['begin_checkout','purchase'].includes(e.event))
Le cookie restore ne fonctionne pas

Vérifier :

  • Option non activée dans Addingwell > Settings
  • DNS du domaine personnalisé sGTM incorrect
  • Vérifier le champ shopify_y dans le DataLayer
  • Vérifier les enregistrements DNS (CNAME)
Bannière Cookiebot absente

Vérifier :

  • CBID incorrect dans la variable GTM
  • Domaine non valide dans Cookiebot > Settings > Domain Groups
  • Balise Cookiebot désactivée dans GTM
Klaviyo se charge avant le consentement (environ 16 requêtes)

Vérifier :

  • Comportement normal : l'app embed Klaviyo (le bloc de l'app intégré au thème) se charge au premier rendu
  • La passerelle Cookiebot → Shopify Privacy API contrôle le consentement des web pixels Klaviyo
  • Vérifier que cookie-consent_boostecom.liquid est installé
  • setTrackingConsent doit être appelé après CookiebotOnConsentReady
Checklist Shopify0/12

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.