CookieDetox L'Observatoire Legal-Tech
Sanctions & Amendes 2026-08-09

Tarteaucitron.js: Le Guide de Configuration Avancée Ultime

CD

Par Cellule Investigation CookieDetox (Soloca Engine)

Expertise Juridique & Conformité

🔗
T

L'essentiel à retenir (En bref)

La configuration avancée de Tarteaucitron.js, via l'objet `tarteaucitron.init()`, permet une conformité RGPD sur-mesure. Des options comme `highPrivacy`, le Consent Mode v2 et le support TCF 2.2 assurent un contrôle précis du consentement et le blocage des services avant l'accord de l'utilisateur.

Audit & Conformité

Configurer Tarteaucitron : les options avancées pour une conformité sur-mesure

L'objet tarteaucitron.init() est le cœur de la configuration de votre bannière de consentement. Il permet de définir le comportement du script sur l'ensemble de votre site. Pour les développeurs et DPO, maîtriser ses options est essentiel pour garantir une expérience utilisateur fluide et une conformité stricte au RGPD. Cet article explore plusieurs paramètres clés pour une configuration avancée.

highPrivacy : le mode de conformité stricte

Le paramètre booléen highPrivacy change l'approche du consentement. Par défaut (false), les services sont gérés selon leur état initial et le choix de l'utilisateur. En activant highPrivacy: true, vous adoptez un principe où aucun service non essentiel n'est chargé avant un consentement explicite. Tous les services sont considérés comme refusés par défaut.

Cette approche est la plus rigoureuse et la plus alignée avec les recommandations de la CNIL. Elle garantit qu'aucune donnée n'est collectée sans un opt-in clair. L'impact sur l'expérience utilisateur doit être pris en compte : les fonctionnalités dépendant de services tiers (vidéos, cartes) ne s'afficheront pas au premier chargement. C'est un choix à faire entre conformité maximale et fluidité de l'expérience utilisateur.

tarteaucitron.init({
  "privacyUrl": "/politique-confidentialite",
  "hashtag": "#tarteaucitron",
  "cookieName": "tarteaucitron",
  "orientation": "middle",
  "highPrivacy": true, /* Active le mode de confidentialité élevée */
  "showAlertSmall": false,
  "cookieslist": true
});

handleBrowserDNT : respecter le signal "Do Not Track"

Le signal "Do Not Track" (DNT) est une option de navigateur permettant à un utilisateur d'indiquer son refus d'être suivi. Bien que son respect ne soit pas une obligation légale au sens du RGPD, l'honorer est une bonne pratique. Le paramètre handleBrowserDNT permet à Tarteaucitron de prendre en compte ce signal.

Avec handleBrowserDNT: true, si le script détecte que l'utilisateur a activé DNT, il interprète cela comme un refus global de tous les services. Le bandeau de consentement n'est pas affiché et tous les services sont bloqués, simulant un clic sur "Tout refuser". Cette option montre un engagement en faveur de la confidentialité qui peut renforcer la confiance des utilisateurs.

tarteaucitron.init({
  // ... autres paramètres
  "handleBrowserDNT": true, /* Refuse tout si DNT est activé */
  "useExternalCss": false
});

cookieDomain : partager le consentement entre les sous-domaines

Sur les sites utilisant plusieurs sous-domaines (ex: www.monsite.com, blog.monsite.com), l'utilisateur devrait normalement donner son consentement sur chacun d'eux. Le paramètre cookieDomain résout ce problème efficacement.

En spécifiant le domaine racine (ex: cookieDomain: '.monsite.com'), le cookie de consentement tarteaucitron est stocké sur le domaine principal, le rendant accessible à tous les sous-domaines. Le consentement est ainsi partagé sur tout votre périmètre. Attention à la syntaxe : le point initial est crucial pour assurer la portée sur tous les sous-domaines et éviter les conflits.

tarteaucitron.init({
  // ... autres paramètres
  "cookieDomain": ".monsite.com" /* Partage le cookie de consentement sur tous les sous-domaines */
});

Intégration avancée : Google Tag Manager et Consent Mode v2

L'intégration de Tarteaucitron avec les outils de gestion de balises est particulièrement puissante. Une configuration avancée permet de piloter Google Tag Manager (GTM) de manière précise et de mettre en œuvre le Consent Mode v2 de Google, un prérequis pour la conformité au Digital Markets Act (DMA) et la pérennité de la mesure d'audience.

Piloter GTM via les événements du dataLayer

Une approche robuste consiste à utiliser Tarteaucitron pour contrôler les événements du dataLayer, plutôt que de se baser sur des déclenchements standards. Lorsque l'utilisateur interagit avec la bannière, Tarteaucitron envoie des événements personnalisés (Custom Events) qui servent de points d'ancrage pour les déclencheurs GTM.

Les événements clés poussés dans le dataLayer sont :

  • tarteaucitron_loaded : Confirme que la CMP est chargée. Utile pour les balises indépendantes du consentement.
  • tarteaucitron_consent_given ou tarteaucitron_allow_all : Poussés lorsque l'utilisateur clique sur "Tout accepter".
  • tarteaucitron_allow_[service_key] : Événement granulaire poussé lorsqu'un service spécifique est accepté (ex: tarteaucitron_allow_gtag).

La stratégie d'implémentation dans GTM est la suivante :

  1. Créer des déclencheurs d'événement personnalisé : Pour chaque événement Tarteaucitron pertinent (ex: nom de l'événement = tarteaucitron_allow_gtag).
  2. Associer les balises aux déclencheurs : Lier votre balise de configuration GA4 au déclencheur tarteaucitron_allow_gtag.
  3. Utiliser des exceptions : Empêcher la balise de se déclencher sur l'événement de page vue standard pour éviter les doublons.

Cette architecture garantit que les balises s'exécutent uniquement après l'obtention d'un consentement explicite et vérifiable, assurant traçabilité et conformité.

Mettre en œuvre le Consent Mode v2 de Google

Le Consent Mode v2 est un framework qui communique l'état du consentement aux balises Google (GA4, Google Ads) avant leur exécution. Tarteaucitron l'intègre nativement, ce qui est essentiel pour permettre à Google de moduler le comportement de ses balises et d'utiliser des pings "cookieless" en cas de refus pour la modélisation.

L'implémentation avec Tarteaucitron suit une logique précise :

  1. Définition de l'état par défaut (Default) : Avant toute interaction, Tarteaucitron envoie une commande gtag('consent', 'default', ...) où tous les types de stockage sont définis sur 'denied'. C'est une étape cruciale pour la conformité.
  2. Mise à jour de l'état (Update) : Après le choix de l'utilisateur, Tarteaucitron envoie une commande gtag('consent', 'update', ...) avec les nouvelles permissions (ex: analytics_storage: 'granted').

L'activation se fait dans la configuration de Tarteaucitron en activant le mode consentement et en mappant les services aux types de stockage de Google.

Exemple de configuration :

tarteaucitron.init({
  "privacyUrl": "...",
  "hashtag": "#tarteaucitron", 
  "cookieName": "tarteaucitron",
  // ... autres paramètres

  "consent_mode": true, /* Active le Consent Mode */
  "services": {
    "gtag": {
      "type": "google-analytics",
      "key": "G-XXXXXXXXXX",
      "consent_mode_mapping": {
        "analytics_storage": "granted",
        "ad_storage": "denied" /* Exemple si Ads n'est pas utilisé via ce tag */
      }
    },
    "googleads": {
      "type": "google-ads",
      "key": "AW-XXXXXXXXXX",
      "consent_mode_mapping": {
        "ad_storage": "granted",
        "ad_user_data": "granted",
        "ad_personalization": "granted"
      }
    }
  }
});

Cette double approche — blocage par la CMP et signalisation via le Consent Mode — est la méthode de référence pour une gestion du consentement à la fois conforme et efficace.

Créer un service personnalisé pour un script tiers

L'un des principaux atouts de Tarteaucitron est son extensibilité. Lorsque vous devez intégrer un service qui n'est pas préconfiguré, la création d'un service personnalisé offre un contrôle total sur le conditionnement du consentement pour n'importe quel script.

Structure d'un service personnalisé

Un service personnalisé est un objet JavaScript ajouté à la configuration de Tarteaucitron. Chaque propriété a un rôle précis :

  • key: Un identifiant unique (ex: 'monchat') pour appeler le service.
  • type: La catégorie du service (ex: 'analytic', 'api', 'support') pour le regroupement.
  • name: Le nom affiché à l'utilisateur (ex: 'Support en ligne').
  • uri: L'URL vers la politique de confidentialité du service (obligation RGPD).
  • needConsent: Booléen (généralement true) si le script collecte des données ou dépose des cookies.
  • cookies: Un tableau des noms de cookies déposés (ex: ['_ga', '_gid']).
  • js: La fonction contenant le code à exécuter après le consentement. C'est ici que l'on injecte dynamiquement le script tiers.

Exemple pratique : intégrer un script de chatbot

Imaginons l'intégration d'un chatbot "LiveChat Pro" via le script : <script src="https://cdn.livechatpro.io/script.js?id=LC-PRO-12345" async></script>

Étape 1 : Déclaration du service
Ce bloc de code doit être placé avant l'appel à tarteaucitron.init(). On identifie les cookies potentiels (ex: 'lc_session') via la documentation du service.

<script type="text/javascript">
tarteaucitron.services.livechatpro = {
    "key": "livechatpro",
    "type": "support",
    "name": "Assistance LiveChat Pro",
    "uri": "https://livechatpro.io/privacy",
    "needConsent": true,
    "cookies": ['lc_session', 'lc_visitor'],
    "js": function () {
        "use strict";
        if (document.getElementById('livechatpro-script')) return;

        var script = document.createElement('script');
        script.id = 'livechatpro-script';
        script.src = 'https://cdn.livechatpro.io/script.js?id=LC-PRO-12345';
        script.async = true;
        document.body.appendChild(script);
    }
};
</script>

Étape 2 : Ajout du service à la file d'attente
Ajoutez la clé du service au tableau job pour que Tarteaucitron le prenne en charge.

(tarteaucitron.job = tarteaucitron.job || []).push('livechatpro');

Ce mécanisme garantit que le script ne sera chargé qu'après un consentement explicite de l'utilisateur, assurant une conformité RGPD parfaite.

Intégrer le framework IAB TCF 2.2

L'écosystème de la publicité programmatique exige une approche standardisée : le Transparency and Consent Framework (TCF) de l'IAB. La version 2.2 est une évolution majeure, poussée par les nouvelles exigences de Google. Pour tout éditeur monétisant son audience via Google AdSense, Ad Manager ou AdMob, l'intégration via une CMP certifiée est une nécessité technique et financière.

Le framework TCF 2.2 : contexte et obligations

Pour qui ? Pour toute la chaîne publicitaire dans l'Espace Économique Européen (EEE) et au Royaume-Uni, en particulier les éditeurs de sites web utilisant des services publicitaires.

Pourquoi ? Le TCF 2.2 renforce les exigences de consentement, notamment en supprimant la base légale de "l'intérêt légitime" pour la personnalisation publicitaire. Sans un signal de consentement valide (TC String), les régies comme Google ne diffuseront que des annonces non personnalisées, ce qui peut entraîner une chute importante des revenus (eCPM).

Comment ? L'implémentation passe obligatoirement par une CMP certifiée IAB, comme Tarteaucitron. La CMP collecte les choix, génère une TC String et la met à disposition des partenaires publicitaires via l'API __tcfapi.

Activer le support TCF 2.2 dans Tarteaucitron

L'activation du support TCF 2.2 transforme Tarteaucitron en une CMP certifiée. Voici les étapes de configuration :

  • Activation du mode IAB : Inclure le paramètre "iabV2": true dans tarteaucitron.init().
  • Déclaration des vendors : Lister les fournisseurs publicitaires via "iabV2Vendors": [755, ...]. L'ID 755 correspond à Google Advertising Products et est essentiel.
  • Configuration éditeur : Ajouter des paramètres comme "iabV2PublisherCC": "FR" (code pays de l'éditeur).

Une fois configuré, Tarteaucitron affiche la bannière TCF, génère la TC String, et les scripts publicitaires l'utilisent via l'API __tcfapi pour adapter la diffusion en fonction du consentement. La bonne implémentation peut être vérifiée en inspectant la présence de la fonction __tcfapi dans la console du navigateur.

Foire Aux Questions (FAQ)

Comment Tarteaucitron.js gère-t-il la preuve du consentement exigée par le RGPD ?

Tarteaucitron.js enregistre les choix de l'utilisateur dans un cookie (par défaut `tarteaucitron`). Ce cookie contient une chaîne encodant les services autorisés/refusés et un horodatage. Cette information, stockée localement sur le navigateur de l'utilisateur, constitue une preuve de consentement traçable et vérifiable à un instant T.

Est-il obligatoire d'utiliser le mode `highPrivacy` pour être conforme à la CNIL ?

Bien que non "obligatoire" au sens strict, activer highPrivacy: true est la méthode la plus sûre pour se conformer aux lignes directrices de la CNIL. Celles-ci exigent que l'absence de choix vaille refus et qu'aucun cookie non essentiel ne soit déposé avant un consentement positif. Le mode `highPrivacy` implémente ce comportement de "refus par défaut" et est donc fortement recommandé.

Puis-je utiliser Tarteaucitron.js avec le Consent Mode v2 de Google sans GTM ?

Oui. Si vous chargez la balise Google (gtag.js) directement dans votre site, il suffit d'activer "consent_mode": true dans `tarteaucitron.init()` et de configurer le consent_mode_mapping. Tarteaucitron enverra les commandes de consentement directement à l'API gtag.js, sans passer par Google Tag Manager.

La configuration du TCF 2.2 est-elle nécessaire si je n'affiche pas de publicité programmatique ?

Non. Le TCF est un standard pour la publicité numérique. Si votre site n'utilise pas de régies publicitaires qui s'appuient sur ce framework (Google AdSense, etc.), vous n'avez pas besoin d'activer le mode IAB. Une gestion de consentement classique avec Tarteaucitron est suffisante pour vos autres services.

Comment m'assurer que mes services personnalisés bloquent bien les cookies avant le consentement ?

Le code JavaScript défini dans la propriété `js` d'un service n'est exécuté qu'après le consentement. Pour le vérifier :

  1. Placez tout le code de chargement du script tiers à l'intérieur de la fonction `js`.
  2. Avant de donner votre consentement, utilisez les outils de développement du navigateur pour vérifier que le script n'est pas chargé (onglet "Réseau") et que les cookies ne sont pas présents (onglet "Application").
  3. Après avoir accepté le service, vérifiez que le script se charge et que les cookies apparaissent.

Quelle est la différence entre le refus via la bannière et le signal 'Do Not Track' du navigateur ?

Le refus via la bannière est un choix actif encadré par le RGPD, ayant une valeur juridique contraignante pour le site. Le signal 'Do Not Track' (DNT) est une préférence du navigateur envoyée via un en-tête HTTP. Son respect n'est pas légalement obligatoire. L'option `handleBrowserDNT: true` de Tarteaucitron permet de choisir d'honorer ce signal en le traitant comme un refus global, ce qui est une bonne pratique mais distincte du recueil de consentement via la bannière.

Questions Fréquentes (FAQ)

Comment Tarteaucitron.js gère-t-il la preuve du consentement exigée par le RGPD ?

Tarteaucitron.js enregistre les choix de l'utilisateur dans un cookie local qui contient les services autorisés ou refusés ainsi qu'un horodatage. Ce cookie, stocké sur le navigateur de l'utilisateur, constitue une preuve de consentement traçable et vérifiable.

Est-il obligatoire d'utiliser le mode `highPrivacy` pour être conforme à la CNIL ?

Non, ce n'est pas strictement obligatoire, mais c'est fortement recommandé pour s'aligner avec les directives de la CNIL. Le mode `highPrivacy` applique le principe de "refus par défaut", garantissant qu'aucun service non essentiel n'est chargé avant un consentement explicite.

Puis-je utiliser Tarteaucitron.js avec le Consent Mode v2 de Google sans GTM ?

Oui, c'est possible. Si vous intégrez la balise Google (gtag.js) directement sur votre site, il suffit d'activer l'option `consent_mode: true` dans la configuration de Tarteaucitron pour qu'il envoie les signaux de consentement, sans passer par Google Tag Manager.

La configuration du TCF 2.2 est-elle nécessaire si je n'affiche pas de publicité programmatique ?

Non, ce n'est pas nécessaire. Le framework TCF 2.2 est un standard spécifique à la publicité programmatique. Si votre site n'utilise pas de régies publicitaires qui dépendent de ce standard, une configuration classique de Tarteaucitron est suffisante.

Comment m'assurer que mes services personnalisés bloquent bien les cookies avant le consentement ?

Le code d'un service personnalisé, placé dans la propriété `js`, ne s'exécute qu'après l'accord de l'utilisateur. Vous pouvez le vérifier en utilisant les outils de développement de votre navigateur pour confirmer que le script et ses cookies ne sont pas chargés avant d'avoir donné votre consentement.

Quelle est la différence entre le refus via la bannière et le signal 'Do Not Track' du navigateur ?

Le refus via la bannière est un choix actif et juridiquement contraignant selon le RGPD. Le signal "Do Not Track" (DNT) est une préférence du navigateur dont le respect n'est pas une obligation légale, mais une bonne pratique que Tarteaucitron peut choisir d'honorer.