GuideInfrastructure~15 min

Shopify

Guide technique complet : la plateforme e-commerce source de toutes les donnees. Architecture store, nettoyage pre-installation, checkout, pixels, Privacy API, markets multi-devises et verification.

Connectors0/1
Shopify
Store URL
Shopify Admin > Settings — ex : ma-boutique.myshopify.com

1Role / Objectif

Shopify est la source de toutes les donnees e-commerce. Le store genere les events utilisateur que le reste du stack (Addingwell, GTM, sGTM) collecte et distribue.

  • Source des events e-commerce (page_view, add_to_cart, purchase...)
  • Checkout proprietaire avec Custom Pixel API
  • Shopify Privacy API pour le controle du consentement pixels
  • Markets pour le multi-devises et multi-langues
  • Customer Events pour les web pixels et custom pixels

Shopify ne gere aucun tag marketing directement. Tout passe par Addingwell (DataLayer + GTM injection) puis GTM (tags + consent).

2Architecture du Store

Couches du stack sur Shopify

Shopify Store
├── Theme (Storefront)
│   └── Pages publiques (home, collection, product, cart)
│
├── Checkout (iframe isole)
│   └── Extensible via Custom Pixels
│
├── Customer Events (Settings)
│   ├── Web Pixels (JS sandbox)
│   └── Custom Pixels (code libre)
│
├── Apps installees
│   ├── Addingwell (DataLayer + GTM + sGTM)
│   ├── Cookiebot (CMP via GTM)
│   └── Klaviyo (natif Shopify)
│
└── Privacy API
    └── Consent management pour les pixels

Points cles

  • Le theme n'a aucun role dans le tracking (pas de code Liquid custom)
  • Le checkout est isole — seuls les Custom Pixels y accedent
  • Addingwell gere toute la couche DataLayer et GTM automatiquement
  • La Privacy API controle uniquement les web/custom pixels Shopify

3Nettoyage Pre-installation

Avant d'installer le stack de tracking, il est indispensable de nettoyer les systemes existants. Deux systemes de tracking actifs en parallele = doublons d'events = donnees corrompues.

Regle absolue

Nettoyer avant d'installer le stack. Un ancien pixel ou une app tracking oubliee peut corrompre toutes les donnees.

Apps a supprimer

AppRaison
Facebook & Instagram (Meta natif)Pixel Meta integre, conflit avec Meta CAPI via GTM
Google & YouTube (Google natif)Tracking Google integre, conflit avec GA4 + Google Ads via GTM
Trackify, Pixel Perfect, Elevar, etc.Apps tracking tierces, doublons garantis
Scripts tracking en dur dans le theme<script> injectes manuellement dans theme.liquid

Ou verifier

  1. 1Shopify Admin > Settings > Apps and sales channels — desinstaller les apps tracking listees ci-dessus
  2. 2Shopify Admin > Settings > Customer events (custom pixels) — supprimer les anciens custom pixels
  3. 3theme.liquid — chercher et supprimer les patterns fbq('init', ...), gtag('config', ...) et tout script tracking injecte manuellement

Desactiver la confidentialite native Shopify

Conflit consent

Le consent est gere par Cookiebot via GTM, pas par Shopify. La banniere et la page d'opposition natives doivent etre desactivees pour eviter les conflits (double banniere, signaux contradictoires).

Aller dans Shopify Admin > Settings > Confidentialite des clients :

ParametreValeur requise
Banniere cookies — Parametres automatisesOFF
Banniere cookies — RegionsNon visible dans aucune region (decocher toutes les regions)
Page opposition — Parametres automatisesOFF
Page opposition — RegionsNon active dans aucune region (decocher toutes les regions)
Politique de confidentialitePeut rester "Automatisee" (contenu legal, n'interfere pas)
Hebergement des donneesUnion europeenne (coherent avec CDS Region .eu dans Cookiebot)

4DataLayer Events

Le DataLayer est genere automatiquement par Addingwell. Aucun code custom n'est necessaire dans le theme.

Events par page

PageEventsDonnees cles
Toutespage_viewURL, titre, referrer
Collectionview_item_list, select_itemListe produits, position
Produitview_itemSKU, prix, variante
Produit / Collectionadd_to_cartItem, quantite, valeur
Panierview_cart, remove_from_cartItems, valeur totale
Checkoutbegin_checkoutItems, valeur (Custom Pixel)
Checkoutadd_shipping_info, add_payment_infoMethode livraison/paiement
Thank youpurchaseTransaction ID, revenue, items (Custom Pixel)

Source unique

Tous les events passent par le meme DataLayer. Il n'y a pas de double source. Addingwell est le seul injecteur.

5Checkout Extensibility

Le checkout Shopify est un iframe isole. Le JavaScript du theme ne peut pas y acceder directement. Shopify propose deux mecanismes pour le tracking checkout :

MecanismeAccesUsage
Web PixelsSandbox JS (limite)Pixels standards (Meta)
Custom PixelsCode libre (complet)DataLayer custom, GTM events

Custom Pixel Addingwell

Addingwell utilise un Custom Pixel pour capturer begin_checkout et purchase dans le checkout, puis les envoie au DataLayer GTM.

Permission : Not required

Le Custom Pixel Addingwell utilise "Not required". C'est intentionnel : le consent est gere par Cookiebot dans GTM (Consent Mode v2), pas par la Shopify Privacy API.

Checkout sandbox — limitation de test

GTM Preview ne fonctionne pas sur le checkout

Le checkout Shopify est un environnement sandbox isole. GTM Preview n'y fonctionne pas. Verifier les events begin_checkout et purchase uniquement via DevTools > Network et la console JavaScript.

6Web Pixels vs Custom Pixels

Web PixelsCustom Pixels
EnvironnementSandbox JS (worker)Sandbox JS (iframe)
Acces DOMNonNon
Acces cookiesNonNon
Code customNon (config uniquement)Oui (code libre)
ConsentShopify Privacy APIConfigurable (Required / Not required)
ExempleKlaviyo, Meta nativAddingwell DataLayer

Les web pixels sont geres par les apps Shopify (Klaviyo, etc.). Les custom pixels sont configures manuellement dans Settings → Customer Events.

7Shopify Privacy API

Role

La Shopify Customer Privacy API controle quels web pixels et custom pixels sont autorises a fire. Elle est synchronisee avec Cookiebot via le bridge.

Flux de consentement

Cookiebot (CMP dans GTM)
        ↓
Bridge cookie-consent_boostecom.liquid
        ↓
Shopify.customerPrivacy.setTrackingConsent({
  marketing: true/false
})
        ↓
Web pixels fires / bloques

Ce que la Privacy API controle

ElementControle par Privacy APIControle par Consent Mode GTM
Web pixels (Klaviyo, Meta natif)OuiNon
Custom pixelsSi permission = RequiredNon
Tags GTM (GA4, Meta CAPI, etc.)NonOui
Scripts themeNonNon

Banniere Shopify native

La banniere cookies et la page d'opposition Shopify doivent etre desactivees (aucune region cochee) pour eviter les conflits avec Cookiebot. Voir la section Nettoyage Pre-installation pour le detail.

8Markets & Multi-devises

Shopify Markets gere le multi-devises et multi-langues. Le tracking doit supporter les conversions dans la devise locale.

Impact sur le tracking

  • Addingwell inclut la devise (currency) dans chaque event e-commerce
  • Les valeurs (value, price) sont en devise locale du visiteur
  • GA4 supporte nativement le multi-devises
  • Meta CAPI recoit la devise correcte via sGTM
  • Pas de configuration supplementaire necessaire

Le DataLayer Addingwell gere automatiquement la devise locale. Aucune configuration supplementaire n'est necessaire pour les markets.

9Configuration

Pre-requis

  • Store Shopify actif (plan Basic ou superieur)
  • Acces admin avec permission Apps et Customer Events
  • Domaine custom configure
  • Nettoyage pre-installation effectue (voir section 3)

Apps a installer

  1. 1Addingwell — DataLayer GA4, injection GTM, bypass adblockers, cookie restore
  2. 2Cookiebot — CMP RGPD (banniere consent, configure via GTM)

Features Addingwell a activer

FeatureRole
DataLayer GA411+ events e-commerce automatiques
GTM injectionGTM sur toutes les pages du store
Custom Pixel checkoutEvents checkout (begin_checkout, purchase)
Bypass adblockersCDN proxy, contourne les bloqueurs
Cookie restoreBypass ITP Safari, attribution longue duree

Custom Pixel checkout

  1. 1Aller dans Shopify Admin > Settings > Customer Events
  2. 2Add custom pixel > coller le code fourni par Addingwell
  3. 3Permission : "Not required" (pas "Required") — le consent est gere par GTM, pas la Privacy API

Serveur sGTM

  1. 1Creer le serveur dans Addingwell
  2. 2Configurer le custom domain (ex: tags.ma-boutique.com)
  3. 3Region recommandee : Europe multi-region
  4. 4DNS : CNAME fourni par Addingwell > Server > Custom Domain

Verifications post-install

  1. 1Addingwell connecte et actif dans le dashboard
  2. 2Custom Pixel Addingwell present dans Settings → Customer Events
  3. 3Permission Custom Pixel = "Not required"
  4. 4Banniere Shopify native desactivee (Settings → Customer Privacy)
  5. 5Bridge consent present dans theme.liquid (cookie-consent_boostecom.liquid)
  6. 6DataLayer Monitor custom pixel installe dans Customer Events
  7. 7Custom domain sGTM repond avec statut 200

10Verification

Verifier le DataLayer

  1. 1Ouvrir la console navigateur sur le store
  2. 2Taper dataLayer et verifier la presence des events
  3. 3Naviguer : home → collection → produit → panier
  4. 4Verifier page_view, view_item_list, view_item, add_to_cart, view_cart
  5. 5Completer un checkout test → verifier begin_checkout, purchase

Verifier les Custom Pixels

  1. 1Admin Shopify → Settings → Customer Events
  2. 2Verifier que le Custom Pixel Addingwell est present et actif
  3. 3Verifier la permission = "Not required"
  4. 4Verifier que le DataLayer Monitor est present et actif
  5. 5Pas d'autre custom pixel en conflit

Verifier la Privacy API

  1. 1Console navigateur → Shopify.customerPrivacy.getTrackingConsent()
  2. 2Avant consent : marketing = "no_interaction"
  3. 3Apres acceptation Cookiebot : marketing = "yes"
  4. 4Apres refus Cookiebot : marketing = "no"

Test pre-consent (navigation privee)

  1. 1Ouvrir le site en navigation privee
  2. 2Cliquer "Tout refuser" dans la banniere Cookiebot
  3. 3GTM Preview : verifier que seuls les tags Necessary se declenchent
  4. 4Network : aucune requete vers GA4, Meta, Google Ads

Test post-consent

  1. 1Ouvrir le site en navigation privee
  2. 2Cliquer "Tout accepter" dans la banniere
  3. 3GTM Preview : tags analytics et marketing doivent se declencher
  4. 4GA4 DebugView : events visibles en temps reel

Test purchase — commande test

Effectuer un achat test, puis executer dans la console :

dataLayer.filter(e => e.event === 'purchase')
  • transaction_id unique (aucun doublon)
  • value correcte (prix total avec taxes et livraison)
  • currency valide (ISO 4217 — ex : EUR, USD)
  • items array complet avec tous les produits

Nettoyage final

Apres verification du stack, confirmer le nettoyage des elements qui peuvent interferer :

  • App "Facebook & Instagram" supprimee (pixel Meta natif)
  • App "Google & YouTube" supprimee (tracking Google natif)
  • Anciennes apps tracking supprimees (Trackify, Pixel Perfect, Elevar, etc.)
  • Aucun script tracking manuel dans le theme (liquid)
  • Banniere cookies + page opposition Shopify desactivees (aucune region cochee)

11Troubleshooting

DataLayer vide

Verifier :

  1. 1App Addingwell installee et active
  2. 2Store connecte dans le dashboard Addingwell
  3. 3Pas de conflit avec un autre script DataLayer
purchase manquant

Verifier :

  • Custom Pixel actif dans Settings → Customer Events
  • Permission = "Not required"
  • Pas d'erreur JS dans la console du checkout
  • DataLayer Monitor actif pour diagnostiquer (?awdebug=1)
Privacy API retourne no_interaction apres consent

Verifier :

  • Bridge cookie-consent_boostecom.liquid dans theme.liquid
  • Position : apres {{ content_for_header }}
  • Shopify.loadFeatures ok dans la console
  • Event CookiebotOnConsentReady fire
Doublons d'events

Verifier :

  • Pixels natifs encore actifs (Facebook & Instagram, Google & YouTube)
  • event_id non transmis dans le DataLayer
  • Containers GTM importes plusieurs fois
  • Supprimer les apps tracking natives et verifier l'event_id
Events checkout manquants (begin_checkout, purchase)

Verifier :

  • Custom pixel checkout Addingwell non actif
  • Trigger purchase absent dans GTM
  • Requete sGTM non envoyee (verifier Network)
  • Verifier via la console : dataLayer.filter(e => ['begin_checkout','purchase'].includes(e.event))
Cookie restore non fonctionnel

Verifier :

  • Activation manquante dans Addingwell > Settings
  • DNS du custom domain sGTM incorrect
  • Verifier le champ shopify_y dans le DataLayer
  • Verifier les enregistrements DNS (CNAME)
Banniere Cookiebot absente

Verifier :

  • CBID incorrect dans la variable GTM
  • Domaine non valide dans Cookiebot > Settings > Domain Groups
  • Tag Cookiebot desactive dans GTM
Klaviyo charge avant le consent (~16 requetes)

Verifier :

  • Comportement normal — l'app embed Klaviyo se charge au premier rendu
  • Le bridge Cookiebot → Shopify Privacy API controle le consent pour les web pixels Klaviyo
  • Verifier que cookie-consent_boostecom.liquid est installe
  • setTrackingConsent doit etre appele apres CookiebotOnConsentReady
Checklist Shopify0/12