ShopifyRGPDConformitéE-commerce

RGPD et cookies sur Shopify : pourquoi ton bandeau ne bloque probablement rien

Par Victor A.08/08/267 min de lecture
RGPD et cookies sur Shopify : pourquoi ton bandeau ne bloque probablement rien

Ton bandeau cookies s'affiche. Le visiteur clique sur « Tout refuser ». Et Google Analytics a chargé son script 4 secondes plus tôt, pendant qu'il lisait le texte.

C'est ce que je trouve le plus souvent quand j'ouvre l'onglet Réseau d'une boutique Shopify française. Le bandeau est propre, le texte est bien rédigé, et il arrive après la fête.

Je suis développeur, pas juriste. La CNIL documente très bien le volet juridique sur son site. Ce que je décris ici se passe dans le code de ton thème.

ce que la CNIL demande, en pratique

Le consentement doit être recueilli avant le dépôt ou la lecture du traceur. Tout ce qui part pendant le chargement de la page est déjà hors des clous.

Refuser doit être aussi simple qu'accepter. La CNIL parle de deux boutons présentés au même niveau et dans le même format, « tout accepter » et « tout refuser ». Un gros bouton vert avec un petit lien gris « paramétrer » en dessous ne remplit pas la condition.

Le choix du visiteur se conserve, qu'il ait accepté ou refusé. La CNIL considère 6 mois comme une bonne pratique dans les deux sens. Reposer la question à chaque visite quand la personne a refusé va directement contre cette recommandation.

Sur les durées, la recommandation tient en 2 chiffres. 13 mois maximum pour le cookie, sans renouvellement automatique. 25 mois maximum pour les données collectées.

Une exemption existe pour la mesure d'audience, à condition qu'elle produise uniquement des statistiques anonymes, sans recoupement avec d'autres traitements et sans suivre la personne d'un site à l'autre. Google Analytics en configuration standard ne rentre pas dans cette case.

Le 1er septembre 2025, la CNIL a sanctionné Shein de 150 millions d'euros, en partie parce que des traceurs publicitaires se déposaient dès l'arrivée sur le site, avant que le visiteur puisse interagir avec le bandeau. Google a pris 325 millions le même jour. Le motif technique retenu contre Shein, je le retrouve sur des boutiques à 40 commandes par mois.

ce que la bannière native de Shopify couvre

Shopify en fournit une depuis l'admin, dans Paramètres puis Confidentialité des clients puis Bannière de cookies.

Sur une boutique récente, les paramètres automatiques sont actifs par défaut et Shopify configure la bannière pour les visiteurs de l'EEE et du Royaume-Uni si tu as des marchés actifs sur ces zones.

Quand le visiteur clique, la bannière appelle setTrackingConsent() et publie l'événement visitorConsentCollected sur le document. Toute la mécanique passe par là.

Shopify applique ensuite la décision à ce que sa doc appelle ses surfaces gérées, c'est-à-dire les web pixels déclarés, les audiences et le checkout. Dans un marché configuré pour exiger le consentement, un web pixel ne s'exécute que si les permissions demandées ont été accordées.

Restent entre tes mains les scripts que tu as collés toi-même dans le thème, les apps qui injectent leur propre code, et tes intégrations serveur.

le trou, ce sont les scripts posés dans le thème

Un <script src="..."> dans theme.liquid s'exécute au chargement de la page. La bannière ne le connaît pas et ne peut rien contre lui.

Cas classique : le pixel Meta installé à la main il y a 3 ans par un prestataire, avant que l'app officielle fasse le travail. Il tire à chaque page vue, consentement ou pas.

Pour qu'un script maison respecte le consentement, il faut lui apprendre à poser la question. La Customer Privacy API expose analyticsProcessingAllowed(), marketingAllowed(), preferencesProcessingAllowed() et saleOfDataAllowed(), qui renvoient un booléen combinant tes réglages marchands, la localisation du visiteur et son choix.

Le schéma qui tient la route ressemble à ça. Tu ne charges rien au départ. Tu t'abonnes à visitorConsentCollected. Tu injectes le script dans le DOM au moment où la permission passe à true. Et pour le visiteur qui avait déjà répondu lors d'une visite précédente, tu interroges currentVisitorConsent() au chargement.

Même logique pour les apps. Une app qui pose son tag via un app embed sans passer par les web pixels se comporte exactement comme ton script maison. Il faut vérifier app par app.

vérifie ton propre site en 5 minutes

Ouvre ta boutique dans une fenêtre de navigation privée, pour partir d'un état propre sans cookie hérité.

Appuie sur F12, va dans l'onglet Réseau, coche « Conserver le journal », puis recharge la page.

Surtout, ne touche pas au bandeau. Laisse-le affiché et regarde ce qui part tout seul.

Dans le champ de filtre, tape successivement google-analytics, googletagmanager, facebook.net, analytics.tiktok, doubleclick, clarity et hotjar. Chaque requête qui remonte est un traceur parti sans attendre ton clic.

Passe ensuite dans l'onglet Application, section Cookies, et cherche _ga, _fbp et _ttp. S'ils sont posés avant toute interaction, tu as ta réponse.

Refais le test complet en cliquant « Tout refuser ». Les mêmes requêtes ne doivent plus partir et les mêmes cookies ne doivent plus apparaître. Ce qui subsiste après ce deuxième passage, c'est ta liste de travail.

Consent Mode v2 ajoute 2 signaux aux 2 d'origine. On a maintenant ad_storage, analytics_storage, ad_user_data et ad_personalization.

Depuis début mars 2024, si ces signaux ne remontent pas, les visiteurs de l'EEE n'alimentent plus les audiences GA4 partagées avec Google Ads. Ton remarketing sur l'Europe se vide tout seul, sans alerte.

Google propose 2 implémentations et la distinction compte beaucoup. En mode basique, les tags Google ne se chargent pas tant que le visiteur n'a pas répondu au bandeau. En mode avancé, les tags se chargent immédiatement et envoient des pings sans cookie tant que le consentement est refusé, ce qui alimente la modélisation de Google.

Le mode avancé donne de meilleures estimations dans tes rapports. Il fait aussi partir une requête vers un serveur Google avant tout consentement. C'est précisément le terrain sur lequel la CNIL a mis en demeure des éditeurs, donc tranche en connaissance de cause, avec ton conseil juridique si tu vends en volume.

Côté Shopify, quand la bannière native est active, le consentement remonte à l'API et Google le reçoit. Si tu utilises un pixel personnalisé, tu dois insérer le snippet Consent Mode toi-même.

les pixels Meta et TikTok

Le pixel Meta installé via l'app officielle Facebook & Instagram est déclaré comme web pixel Shopify. Il hérite donc du consentement, sans travail de ta part.

Si le même pixel existe aussi en dur dans theme.liquid, tu récoltes 2 problèmes d'un coup. Un tag qui ignore le consentement, et des événements comptés en double qui faussent ton ROAS. Supprime la version du thème, garde celle de l'app.

TikTok suit la même règle. Passe par l'app officielle et le pixel est déclaré proprement.

Le point le plus souvent oublié reste la Conversions API. Quand tes événements partent de serveur à serveur, aucun bandeau ne s'interpose. C'est ton code qui doit lire l'état du consentement et décider s'il envoie ou pas.

par où commencer ce mois-ci

Fais l'audit réseau décrit plus haut, écris la liste des traceurs fautifs, puis attaque dans cet ordre. Les scripts en dur dans le thème d'abord, les apps ensuite, le serveur en dernier.

Vérifie au passage que ton bouton « Tout refuser » a le même poids visuel que « Tout accepter », et que ta politique de confidentialité liste vraiment les traceurs que tu déposes.

Tant que tu es dans les pages légales, tes CGV et ton bouton de rétractation méritent le même coup d'œil. Les deux ont bougé récemment.

Compte une demi-journée pour une boutique avec 5 ou 6 apps. Au-delà, ça dépend surtout du nombre de couches accumulées par les prestataires précédents.

À propos de l’auteur

Victor A.

Victor A.

Tech-Everywhere

Développeur Shopify indépendant basé en Bretagne. J’aide les marques DTC à booster leurs performances techniques, leur SEO et leurs conversions.

Articles similaires

Cal.com

Un projet Shopify en tête ?

Discutons de tes enjeux en 30 minutes. Premier appel gratuit, sans engagement.

RGPD et cookies sur Shopify : pourquoi ton bandeau ne bloque probablement rien | Victor A. @Tech-Everywhere