Cookie Manager Tarteaucitron — Guide complet
Installation, configuration des services, scanner automatique, Consent Mode v2 et journal de consentement du module Cookie Manager Tarteaucitron pour PrestaShop 8 et 9.
Présentation
Cookie Manager Tarteaucitron est un module de gestion du consentement aux cookies pour PrestaShop 8.0+ et 9.x. Il combine le moteur open-source tarteaucitron.js, qui bloque effectivement les services avant consentement, avec une interface moderne : carte flottante animée, interrupteurs par catégorie et pastille de réouverture. Le module intègre Google Consent Mode v2, un scanner de trackers avec activation automatique, et un journal de consentement exportable.
Depuis la version 1.2.0, les fichiers tarteaucitron sont servis depuis votre propre domaine : aucune requête n’est envoyée vers un CDN tiers avant le consentement du visiteur.
Installation
- Dans votre back-office, allez dans Modules → Gestionnaire de modules → Installer un module.
- Téléversez le fichier
datafirefly_tarteaucitron.zip. - Cliquez sur Installer puis sur Configurer.
La configuration est accessible de deux façons, qui affichent le même écran : depuis le bouton Configurer du gestionnaire de modules, ou depuis l’entrée de menu Cookie Manager ajoutée à l’installation.
Après toute mise à jour du module, videz le cache PrestaShop depuis Paramètres avancés → Performances. Le script de mise à jour vide également l’OPcache PHP quand la fonction est disponible.
Mise à jour depuis une version antérieure
Écrasez le dossier /modules/datafirefly_tarteaucitron/ ou installez le nouveau ZIP depuis le back-office. Le script de mise à jour s’exécute automatiquement et prend en charge :
- la création de la table de journal si elle est absente ;
- l’ajout des nouvelles clés de configuration avec leurs valeurs par défaut ;
- la conversion des anciennes positions de bannière :
bottomdevientbottom-left,middleetpopupdeviennentcenter; - la recréation de l’entrée de menu si elle manque.
Si vous utilisiez la position middle ou popup, la bannière devient une modale centrée avec fond assombri. Le comportement est correct, mais le rendu change visiblement : vérifiez-le avant de publier.
Configuration générale
L’onglet Général contient les réglages de base :
- Module activé : interrupteur principal de la bannière sur le front-office.
- Langue de la bannière : en automatique, elle suit la langue PrestaShop de la page. Vous pouvez aussi forcer une des 36 langues embarquées.
- Position de la bannière : en bas à gauche ou à droite, en haut à gauche ou à droite, ou au centre sous forme de modale.
- Fichiers tarteaucitron : hébergement local, recommandé, ou CDN jsDelivr. Voir la section dédiée plus bas.
- Expiration du consentement : 365 jours par défaut. La CNIL recommande de ne pas dépasser 13 mois, soit 395 jours.
- Nom du cookie :
tarteaucitronpar défaut. Le modifier réinitialise les consentements déjà recueillis, puisque l’ancien cookie n’est plus lu. - Domaine du cookie : laissez vide pour le domaine courant, ou préfixez par un point pour partager le consentement entre sous-domaines.
- Pastille de réouverture : affiche une pastille « Cookies » après le consentement. Voir la section sur le retrait du consentement.
- Croix de fermeture vaut refus : ajoute une croix qui refuse tous les cookies non essentiels. Désactivée, la bannière impose un choix explicite.
L’onglet Textes & liens personnalise le titre, le message et les libellés des boutons. Laissé vide, un champ reprend le texte par défaut du module dans la langue de la bannière. L’onglet Design contrôle les couleurs, l’arrondi des angles, et affiche un aperçu en direct avec un contrôle de contraste WCAG entre la couleur des boutons et celle de leur texte.
Hébergement des fichiers tarteaucitron
Un bandeau cookies qui charge ses propres fichiers depuis un CDN transmet l’adresse IP du visiteur à un tiers avant même qu’il ait choisi. Le module embarque donc tarteaucitron.js 1.30.0 et ses 36 fichiers de langue dans views/vendor/tarteaucitron/, servis depuis votre domaine.
L’option CDN jsDelivr reste disponible dans l’onglet Général. Elle n’est pas recommandée : elle transmet l’adresse IP du visiteur à jsDelivr dès le chargement de la page, avant tout consentement.
Activer les services
L’onglet Services liste les 11 intégrations prêtes à l’emploi. Pour chacune, activez l’interrupteur et renseignez l’identifiant demandé :
- Google Analytics 4 : Measurement ID au format G-XXXXXXXX
- Google Tag Manager : Container ID au format GTM-XXXXXX
- Google Ads : Conversion ID
- Meta Pixel : Pixel ID numérique
- Hotjar : Site ID numérique
- LinkedIn Insight : Partner ID
- TikTok Pixel : Pixel ID
- Microsoft Clarity : Project ID
- Intercom : App ID
- YouTube : aucun identifiant, active le blocage des vidéos embarquées avant consentement
- Stripe : aucun identifiant, voir la section dédiée
Un service activé sans identifiant n’est pas chargé sur le front. Le module le signale en rouge dans le tableau et affiche un avertissement à la sauvegarde, mais vérifiez vos identifiants après avoir utilisé l’activation automatique du scanner.
Le champ identifiant se verrouille quand le service est désactivé. Sa valeur reste enregistrée : réactiver le service la restitue.
Scanner et détection automatique
L’onglet Détection auto configure le module à votre place :
- Cliquez sur Scanner le site maintenant. Le module lit les cookies présents sur votre domaine et récupère le HTML de votre front-office pour analyser les balises de script tierces.
- Deux tableaux s’affichent : les cookies détectés avec leur service probable et leur catégorie, et les scripts tiers identifiés avec leur état actuel dans le module.
- Cliquez sur Activer les services détectés : les interrupteurs correspondants passent à Oui.
- Sauvegardez, puis passez dans l’onglet Services pour renseigner les identifiants des services nouvellement activés.
Le scanner reconnaît Google Analytics, Google Tag Manager, Google Ads, Meta Pixel, Hotjar, LinkedIn, TikTok, Microsoft Clarity, Intercom, Brevo, Stripe et YouTube, ainsi que les cookies fonctionnels de PrestaShop.
Naviguez d’abord sur votre front-office dans le même navigateur, puis lancez le scan : les cookies déposés par vos trackers seront visibles et la détection sera plus complète. Si le back-office et le front sont sur des domaines différents, seule l’analyse des scripts fonctionne.
Statistiques et test A/B
Depuis la version 1.3.0, l’onglet Statistiques & A/B mesure ce que la bannière obtient réellement. Le module compte les affichages, et plus seulement les réponses : le taux d’acceptation devient calculable.
- Indicateurs : affichages, taux de réponse, taux de « tout accepter », taux de refus, part de choix personnalisés, opt-in par catégorie, répartition ordinateur / mobile et évolution quotidienne, sur 7, 30, 90 ou 365 jours, ou sur tout l’historique.
- Confidentialité : les compteurs sont agrégés par jour, variante et type d’appareil dans la table
dftac_banner_stats. Aucune donnée personnelle, aucun identifiant visiteur, aucun cookie. Un affichage n’est compté qu’une fois par visite, grâce à un marqueur local de session. - Robots : un filtre user-agent côté serveur écarte les moteurs et les outils d’audit, et l’affichage n’est comptabilisé qu’au premier geste du visiteur (pointeur, touche, défilement ou réponse). Sans ce filtre, les robots qui exécutent le JavaScript gonflent le dénominateur sans jamais répondre, et tirent le taux vers le bas.
- Export et remise à zéro : export CSV des compteurs et bouton de réinitialisation, tous deux indépendants du journal RGPD.
Lancer un test A/B
- Activez le test et fixez la part de trafic envoyée en variante B. 50 % donne le résultat lisible le plus vite.
- Renseignez uniquement les champs à tester : titre, message, libellés des trois boutons, position. Les champs laissés vides reprennent la variante A.
- Laissez tourner. Le tirage est stable pendant toute la visite.
- Lisez le verdict : le module compare les deux taux par un test z sur deux proportions et n’annonce un gagnant qu’au-delà de 100 affichages par variante et d’un écart significatif à 95 %.
- Recopiez le texte gagnant en variante A, puis éteignez le test.
Le réglage qui déplace le plus le taux d’acceptation est la position : comparez la modale centrée à la carte en coin avant de travailler les formulations.
Google Consent Mode v2
Obligatoire depuis mars 2024 pour les annonceurs européens, Consent Mode v2 permet à Google de modéliser les conversions même en cas de refus. L’onglet Consent Mode v2 du module :
- émet les sept signaux requis (
ad_storage,ad_user_data,ad_personalization,analytics_storage,functionality_storage,personalization_storage,security_storage) en default dans le<head>, avant tout tag ; - permet de configurer chaque état par défaut,
deniedétant recommandé dans l’EEE ; - met à jour les signaux dès que le visiteur répond.
Particularité du module : l’état par défaut est déduit du cookie de consentement existant lorsqu’il y en a un. Un visiteur ayant déjà accepté obtient granted dès la première frame, sans fenêtre denied transitoire qui amputerait vos conversions Google Ads à chaque rechargement de page. La même table de correspondance service vers signal est utilisée côté serveur et côté navigateur, pour que l’état par défaut et la mise à jour concordent.
Le réglage wait_for_update fixe le délai laissé à la bannière avant que Google n’envoie ses données. 500 ms est la valeur recommandée.
Stripe et les cookies essentiels
Les cookies Stripe (__stripe_mid, __stripe_sid) sont nécessaires à la prévention de la fraude au paiement. Ils relèvent de l’exemption de consentement prévue pour les traceurs strictement nécessaires : les bloquer casserait le tunnel de commande.
Lorsque le service Stripe est activé, il se charge sans demande de consentement et apparaît dans le panneau de préférences sous la catégorie Essentiels et paiement avec le badge « Toujours actif ». Le visiteur en est informé, et aucun paiement n’est bloqué.
Retrait du consentement
Le RGPD impose que retirer son consentement soit aussi simple que de le donner. Trois moyens sont disponibles, cumulables :
- la pastille flottante affichée après le choix, activable dans l’onglet Général ;
- un lien dans votre pied de page :
<a href="#tarteaucitron">Gérer mes cookies</a>; - un appel JavaScript :
dftacOpenPreferences(), depuis n’importe quel élément de votre thème.
Si vous désactivez la pastille, mettez en place l’un des deux autres moyens : sans cela, le visiteur ne peut plus revenir sur son choix.
Services personnalisés
L’onglet Services personnalisés permet d’ajouter n’importe quel script tiers absent de la liste :
- Clé unique : identifiant technique en minuscules, par exemple
monchat - Nom affiché : libellé montré dans la bannière
- Catégorie :
analytic,ads,social,video,support,apiouother - Code JS : le code de chargement du service, exécuté uniquement après consentement
- Cookies déposés : noms séparés par des virgules
- URL de politique : lien vers la politique de confidentialité du service
Les services personnalisés apparaissent dans la bannière sous une catégorie dédiée avec leur propre interrupteur, et leur catégorie détermine le signal Consent Mode associé.
Le code saisi ici est exécuté tel quel sur le front-office. N’y collez que du code dont vous maîtrisez l’origine.
Journal de consentement
L’article 7 du RGPD impose de pouvoir démontrer que le consentement a été donné. L’onglet Journal RGPD affiche les enregistrements page par page, avec pour chaque action la date et l’heure, l’identifiant visiteur anonyme, les catégories acceptées et le détail service par service.
Points clés du fonctionnement :
- L’adresse IP n’est jamais stockée en clair : seule une empreinte HMAC-SHA256, salée par une clé propre à la boutique, l’est. Un simple SHA-256 non salé se retrouverait par force brute sur l’espace des adresses IPv4.
- L’identifiant visiteur provient d’un cookie technique dédié et ne contient aucune donnée personnelle.
- Une déduplication serveur ignore un second envoi identique du même visiteur dans les 5 secondes, ce qui neutralise les doubles clics.
- L’envoi du consentement utilise
keepalive: il aboutit même si le visiteur change de page immédiatement après son choix. - Une purge automatique supprime les entrées au-delà de la durée de conservation que vous fixez. Elle s’exécute à l’ouverture de la page de configuration, au plus une fois par jour.
- Le bouton Exporter en CSV produit un fichier horodaté, encodé en UTF-8 avec BOM pour s’ouvrir correctement dans Excel.
- Le journal est conservé en cas de désinstallation du module, afin de préserver votre piste d’audit.
- La journalisation peut être désactivée si vous ne souhaitez pas conserver cette preuve.
Multiboutique
Chaque boutique dispose de sa propre configuration : services activés, textes, couleurs, position, réglages Consent Mode. Le bandeau affiché en haut de l’écran de configuration rappelle quelle boutique est en cours d’édition.
Dépannage
- La bannière ne s’affiche pas : vérifiez que le module est activé dans l’onglet Général, puis videz le cache PrestaShop. Vérifiez aussi qu’aucun autre module de consentement n’est actif en parallèle.
- Les choix ne sont pas mémorisés : supprimez l’ancien cookie de consentement dans votre navigateur avant de retester. Vérifiez que le nom du cookie n’a pas été modifié depuis le dernier consentement.
- Un service ne se charge pas après acceptation : vérifiez que son identifiant est renseigné dans l’onglet Services. Un identifiant vide sur un service activé est signalé en rouge dans le tableau.
- Le scan ne détecte rien : naviguez d’abord sur le front-office dans le même navigateur, puis relancez le scan.
- Aucun enregistrement dans le journal : vérifiez que la journalisation est activée dans l’onglet Journal RGPD, puis effectuez un nouveau consentement depuis le front en navigation privée.
- Une modification du module ne prend pas effet : videz le cache PrestaShop et, si votre hébergeur utilise OPcache, rechargez PHP. Le script de mise à jour vide l’OPcache automatiquement quand il en a le droit.
Besoin d’aide ? Contactez le support DataFireFly depuis votre espace client, réponse sous 24 h ouvrées.