Magento 2 · Consentement aux cookies · Google Consent Mode v2
La plupart des bannières annoncent le choix du visiteur après le démarrage du conteneur de balises — et le premier appel est alors déjà parti avec tout accordé. Celle-ci transmet l'état avant le chargement du conteneur, tient un registre indiquant le texte réellement affiché, et arrive avec 53 cookies déjà classés : la première page n'est pas un tableau vide.
Laissez votre e-mail et vous recevez les identifiants de notre dépôt Composer. Aucune clé à coller : le module s'active tout seul pour votre domaine.
Il s'installe désactivé. Tant que vous ne l'activez pas, pas un octet de plus sur votre boutique.
Magento 2.4.x, PHP de 8.1 à 8.5, n'importe quel thème. Installation avec Composer, depuis notre dépôt.
L'état du consentement n'a qu'un seul moment où il compte : avant le démarrage du conteneur de balises. Une bannière qui annonce le choix quelques lignes plus tard l'annonce à un conteneur qui a déjà passé son premier appel — et cet appel porte la valeur implicite, c'est-à-dire « accordé ». Avec notre module de data layer installé, celui-ci transmet l'état pour qu'il soit déclaré dans le même script que celui qui charge le conteneur : la seule disposition où il est certain d'arriver en premier. Sans ce module, il déclare l'état lui-même.
Mesuré sur des boutiques en production avant de construire ce module : la bannière du thème déclarait le consentement à la ligne 71 du code source alors que le conteneur démarrait à la ligne 45, et le premier appel à Google portait gcs=G111 — tout accordé, avant que le visiteur ait choisi quoi que ce soit. Avec ce module, ce même premier appel porte gcs=G100 : tout refusé, comme il se doit.
Un visiteur qui autorise les statistiques et refuse la publicité doit produire exactement cela, et rien de plus. Ici, inutile de nous croire sur parole : ouvrez le panneau réseau, autorisez seulement les statistiques, et la requête reçue par Google porte gcs=G101 — statistiques accordées, publicité refusée. Autorisez tout et cela devient G111. Refusez et cela reste G100. Le visiteur choisit des groupes en langage clair ; les sept signaux des plateformes en découlent, car personne ne sait ce qu'est ad_user_data et tout le monde sait ce qu'est la publicité.
HTML et CSS purs avec leur propre préfixe de classes : le rendu est identique sur un thème moderne, sur le thème classique et sur un thème maison. Ce sont de vraies captures de notre boutique de démonstration, pas des maquettes.
C'est une propriété de la structure, pas une promesse de brochure : les deux boutons sortent de la même boucle avec la même classe, il n'y a donc rien à styler différemment. Il n'existe aucun réglage qui cache le refus, le rétrécit, le place derrière un « en savoir plus » ou le transforme en lien gris, et il n'en existera pas. Il n'y a pas de croix qui ferme la bannière sans rien enregistrer, car fermer n'est pas choisir. Une chose vous revient : que le bouton d'acceptation soit plein tandis que les autres restent en contour. Cela change le remplissage et rien d'autre.
Mesuré sur les deux thèmes : 15488 px² par bouton, écart nul, même ligne, même police, et le même contraste de texte de 10,75:1 quelle que soit la mise en avant choisie. La bannière prend aussi le focus clavier dès son apparition : le premier bouton est à deux Tab au lieu de cinquante.
Compter combien de personnes ont accepté ne prouve rien. Chaque ligne enregistre ici les groupes autorisés et les groupes refusés, ce qui a réellement été envoyé à chaque plateforme, et une empreinte des textes exacts montrés à ce visiteur — vous ouvrez une ligne et vous lisez, mot pour mot, le texte auquel il a adhéré. Une référence peut être citée par le visiteur, l'adresse n'est jamais conservée en entier, et tout s'exporte en CSV. Le registre ne quitte jamais votre serveur.
C'est la différence entre « il a accepté » et « il a accepté ceci ». Changez vos textes et l'empreinte change avec eux : les visiteurs sont réinterrogés, et chaque ligne plus ancienne renvoie toujours au texte qu'ils avaient sous les yeux ce jour-là.
La raison pour laquelle la plupart des modules cookies sont désactivés dès le premier jour, c'est qu'ils s'ouvrent sur un tableau vide et attendent que vous remplissiez quarante lignes à la main. Celui-ci arrive avec 53 cookies et 4 groupes déjà classés — ceux que Magento écrit lui-même, les nôtres et les plus courants des tiers — chacun avec son auteur, sa durée et une description en langage clair. Ensuite le navigateur signale les noms qu'il voit et que le catalogue ne répertorie pas : ils arrivent dans une file que vous classez d'un clic.
Cela fonctionne : sur notre propre boutique de démonstration, le détecteur a trouvé dès le premier passage deux cookies de paiement que personne n'avait déclarés. Ils figurent désormais dans le catalogue livré.
Supprimer un cookie après l'avoir écrit, c'est du nettoyage. Ne pas l'écrire, c'est du consentement. Un thème Magento moderne embarque une barrière pour les cookies internes, et ce module la pilote au lieu de la réimplémenter : il lui déclare ses groupes, de sorte qu'un cookie appartenant à un groupe non autorisé n'est jamais écrit, et il les rouvre dès que le visiteur choisit. Sur le thème classique, où cette barrière n'existe pas, les cookies des groupes refusés sont supprimés par nom et par préfixe — et l'administration indique clairement dans laquelle des deux situations se trouve votre thème, au lieu de vous laisser le supposer.
Le choix du visiteur n'entre jamais dans le HTML. Deux visiteurs aux choix opposés reçoivent des pages identiques octet par octet, et la décision est prise dans le navigateur à partir d'un seul cookie d'environ 130 octets. Cela compte plus qu'il n'y paraît : un module qui écrit le choix dans la page multiplie vos variantes en cache ou — pire — sert le choix de l'un à tous les autres. Le seul cas où une copie supplémentaire existe est celui où vous configurez les règles par pays, et il n'y en a alors qu'une.
Ce module vous donne les outils pour recueillir, appliquer et prouver le consentement. Il ne vous rend pas conforme : cela dépend de la façon dont vous le configurez, de ce que vous écrivez dans votre politique et de votre conseiller. Trois limites qu'il vaut mieux connaître avant l'installation qu'après :
Si c'est la retenue des scripts tiers qui vous intéresse : activez-la, listez vos adresses, puis effectuez un achat complet sur votre boutique — sur les deux thèmes si vous en avez deux, commande comprise — avant de la laisser active. C'est la fonction qui peut empêcher une boutique de fonctionner, et c'est précisément pour cela qu'elle arrive désactivée.
Chaque champ et chaque explication de la configuration sont traduits, tout comme ce que lisent vos visiteurs : la bannière, la fenêtre des préférences, les noms des groupes et la description de chacun des 53 cookies livrés avec le module. Laissez un champ de texte vide et vous obtenez le texte intégré dans la langue de cette vue boutique. Chaque consentement enregistre la version des textes affichée : un changement de traduction se voit donc aussi dans le registre.
La langue de la vue boutique est reprise automatiquement ; l'anglais sert de repli. Sept langues : anglais, italien, allemand, espagnol, français, néerlandais et portugais.
Magento 2.4.x (Open Source ou Adobe Commerce), PHP de 8.1 à 8.5, n'importe quel thème. Notre module de data layer est conseillé mais pas requis : avec lui, l'état du consentement est déclaré dans le même script que celui qui charge votre conteneur de balises. Le serveur doit joindre codingrow.com en HTTPS une fois par jour pour l'activation automatique.
Ce qui change, version après version.
Un guide pratique Magento 2 par e-mail, uniquement quand nous en publions un. Rien d'autre.
Les articles sont en anglais. Un clic pour vous désinscrire, dans chaque e-mail. · privacy