1. Synthèse technique exécutive et réalité du marché
Les exploitants numériques européens font face à une double exigence stricte en vertu du RGPD (Règlement UE 2016/679) et de la directive ePrivacy ↗ (Directive 2002/58/CE) : recueillir un consentement préalable positif (opt-in) juridiquement inattaquable et librement donné, sans dégrader les Core Web Vitals ni anéantir l'attribution publicitaire. Sur le marché français, deux paradigmes de Consent Management Platform (CMP) s'affrontent, incarnés par Axeptio et Didomi.
Axeptio aborde la conformité sous l'angle des micro-interactions et de l'UX design éditorialisé. Initialement pensée pour les marques grand public, les acteurs DNVB/DTC et les applications web mid-market, la solution élimine le jargon programmatique pour atteindre un taux de consentement moyen de 72 % grâce à des illustrations contextuelles et une divulgation progressive de l'information. Axeptio propose une grille tarifaire SaaS transparente en libre-service, débutant à 15 € par mois pour les TPE/PME et progressant jusqu'à plus de 250 € par mois pour les trafics volumineux.
Didomi se positionne comme une infrastructure de gouvernance de la vie privée taillée pour les grands comptes. Conçue pour orchestrer de multiples réglementations (RGPD, CCPA/CPRA, Loi 25 québécoise), la plateforme excelle dans la synchronisation cross-domaine des identités, le déploiement de SDK mobiles natifs (iOS, Android, React Native, Flutter, Unity) et la monétisation programmatique adtech via le cadre IAB Europe Transparency and Consent Framework (TCF v2.2, sous l'identifiant CMP ID 236). Cette orientation grands comptes se reflète dans ses tarifs : les contrats sur mesure démarrent généralement entre 350 € et plus de 1 200 € par mois selon le nombre de domaines et le volume de pages vues.
2. Analyse architecturale et technique : Empreinte JS, exécution et IAB TCF v2.2
Évaluer une CMP exige d'auditer son impact direct sur le chemin critique de rendu (Critical Rendering Path) et la manière dont son moteur d'exécution JavaScript interagit avec le DOM du navigateur, Google Tag Manager (GTM) et les scripts de header bidding programmatique.
Poids du payload et impact sur les Core Web Vitals
La vitesse de chargement (PageSpeed) conditionne directement le taux de conversion e-commerce. Nos tests synthétiques en laboratoire (CPU bridé à 4x dans Chrome DevTools et réseau limité en Fast 3G) mettent en évidence deux profils techniques divergents :
- Axeptio : Délivre un bundle principal léger d'environ 42 Ko compressé (gzip/brotli). Axeptio diffère les manipulations DOM non critiques, maintenant le Total Blocking Time (TBT) sous la barre des 50 ms et générant un Cumulative Layout Shift (CLS) quasi nul dans sa configuration modale d'angle.
- Didomi : Injecte un chargeur initial qui télécharge une bibliothèque runtime complète d'environ 85 Ko compressée lorsqu'elle embarque l'intégralité de la Global Vendor List (GVL) de l'IAB TCF v2.2. Le parsing de centaines d'acteurs publicitaires, la génération des chaînes cryptographiques de consentement (TC String) et le support de Google Additional Consent (AC) induisent entre 120 ms et 240 ms d'occupation du thread principal sur les smartphones d'entrée ou de milieu de gamme.
Génération du Consent String et interopérabilité AdTech
Didomi fournit une intégration native et certifiée de l'IAB TCF v2.2 (CMP ID 236). La plateforme génère l'API standardisée __tcfapi et transmet les chaînes de consentement encodées en base64url aux plateformes SSP et DSP (Google Ad Manager, Prebid.js, Amazon TAM) sans middleware tiers. Axeptio intègre un module TCF v2.2 optionnel ; toutefois, son architecture cible historiquement une catégorisation claire des traceurs et cookies découplée de la liste globale des vendeurs IAB, ce qui la rend idéale pour le commerce direct (DTC) plutôt que pour les éditeurs de presse tributaires de la monétisation publicitaire programmatique.
Implémentation du Google Consent Mode v2
Les deux plateformes gèrent l'intégration au Google Consent Mode v2 (signaux ad_storage, analytics_storage, ad_user_data et ad_personalization). Voici le modèle d'intégration inline strict, indispensable en amont de la CMP pour prévenir toute fuite de données avant le recueil du consentement :
<!-- Configuration de l'état par défaut - Google Consent Mode v2 -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('consent', 'default', {
'ad_storage': 'denied',
'analytics_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'wait_for_update': 500
});
gtag('set', 'ads_data_redaction', true);
</script>L'écoute programmatique des changements d'état du consentement diffère selon les API respectives des deux éditeurs :
// AXEPTIO : Écouteur d'événements natif
void 0 !== window._axeptioCookiesSDK && window._axeptioCookiesSDK.on('cookies:complete', function(choices) {
gtag('consent', 'update', {
'analytics_storage': choices.google_analytics ? 'granted' : 'denied',
'ad_storage': choices.facebook_pixel ? 'granted' : 'denied',
'ad_user_data': choices.facebook_pixel ? 'granted' : 'denied',
'ad_personalization': choices.facebook_pixel ? 'granted' : 'denied'
});
});
// DIDOMI : Écouteur d'événements SDK
window.didomiOnReady = window.didomiOnReady || [];
window.didomiOnReady.push(function (Didomi) {
Didomi.on('consent.changed', function () {
var hasAnalytics = Didomi.getUserConsentStatusForVendor('c:googleana-4e36Kdfj');
var hasMarketing = Didomi.getUserConsentStatusForVendor('c:facebookp-XXXXXX');
gtag('consent', 'update', {
'analytics_storage': hasAnalytics ? 'granted' : 'denied',
'ad_storage': hasMarketing ? 'granted' : 'denied',
'ad_user_data': hasMarketing ? 'granted' : 'denied',
'ad_personalization': hasMarketing ? 'granted' : 'denied'
});
});
});
3. Matrice des risques réglementaires : Délibérations CNIL et jurisprudence CJUE
Installer une CMP ne dispense pas le responsable du traitement de veiller au respect rigoureux de la jurisprudence européenne et française : arrêts CJUE Planet49 (C-673/17, proscription des cases pré-cochées), CJUE Fashion ID (C-40/17, co-responsabilité lors du déclenchement du traceur) et délibérations CNIL n° 2020-091 et 2020-092.
L'obligation CNIL du refus en 1 clic
Conformément à la délibération CNIL n° 2020-091, refuser les traceurs et cookies doit être aussi simple que de les accepter. Dès le premier niveau de recueil, un bouton « Tout refuser » (ou libellé équivalent) doit figurer au même niveau visuel que le bouton « Tout accepter », avec une police, un contraste et une ergonomie parfaitement symétriques. Toute interface trompeuse (dark pattern), telle que reléguer le refus à un écran secondaire de paramétrage ou l'afficher sous forme d'un lien hypertexte discret, constitue une infraction directe aux articles 4(11) et 7(4) du RGPD, passible de sanctions administratives au titre de l'article 83 pouvant atteindre 20 millions d'euros ou 4 % du chiffre d'affaires annuel mondial.
Dans ses réglages d'origine, l'ergonomie par étapes d'Axeptio permettait historiquement la fermeture de la fenêtre sans choix explicite, ce que la CNIL assimile à une poursuite de navigation illicite si les traceurs se déclenchent. Pour garantir une stricte conformité CNIL, les équipes techniques doivent explicitement activer le bouton « Tout refuser » dès le premier écran du widget Axeptio. Didomi propose quant à lui des gabarits préconfigurés intégrant immédiatement la double action « Tout accepter » et « Tout refuser » de manière symétrique.
Matrice comparative technique et réglementaire
| Paramètre d'audit | Axeptio | Didomi | Référentiel / Standard de conformité |
|---|---|---|---|
| Support IAB TCF v2.2 | Module optionnel / Basique | Natif et certifié (CMP ID : 236) | Spécifications IAB Europe TCF v2.2 |
| Poids du script JS | ~42 Ko (brotli) | ~85 Ko (brotli avec liste GVL) | Core Web Vitals (<50 Ko recommandé) |
| Tarification de départ | 15 € / mois (PME) à 250 €+ | 350 € à 1 200 €+ / mois (Entreprise) | Indice moyen du marché SaaS |
| Conformité CNIL 2020-091 | Prêt après activation du refus direct | Natif et conforme par défaut | Lignes directrices CNIL 2020-091 & 2020-092 |
| Expérience dev / Shopify | Excellente (Application clé en main) | Modérée (Nécessite intégration technique) | Index de facilité d'implémentation |
| Support SDK Mobile | Webview / Wrappers hybrides | SDK natifs iOS, Android, Flutter, Unity | Standards multi-plateformes applicatifs |
| Taux de consentement moyen | ~72 % (Copywriting éditorialisé) | ~68 % (Présentation corporate classique) | Données d'observation CookieDetox |
| Consentement cross-domaine | Fonctionnalités limitées | Console multi-domaines avancée | Preuve et jeton de consentement (Art. 7 RGPD) |
4. Protocole d'implémentation et de vérification forensique pas à pas
Le contrôle de la conformité d'une CMP ne s'arrête pas au design du bandeau. Il exige un audit forensique des flux réseau pour certifier qu'aucun identifiant de traçage n'est injecté dans le navigateur avant l'action positive de l'internaute.
Étape 1 : Inspection des requêtes réseau et cookies pré-consentement
Lancez une fenêtre de navigation privée sous Google Chrome, accédez à votre environnement de pré-production ou de production, puis ouvrez Outils de développement (F12) > Application > Stockage > Cookies. Ne cliquez sur aucun bouton de la bannière.
- Vérifiez qu'aucun cookie persistant de tracking publicitaire (ex.
_fbp,_gcl_au,_tt_enable_cookie,IDE) n'est créé sous le domaine racine ou via des domaines tiers. - Dans la section Stockage local (LocalStorage), assurez-vous que seul le jeton technique interne de la CMP est stocké (ex.
axeptio_authorized_vendorsoudidomi_token).
Étape 2 : Contrôle des déclencheurs GTM et signaux de consentement
Les balises de tracking dans Google Tag Manager ne doivent jamais être associées aux déclencheurs universels Initialization ou Consent Initialization sans condition d'autorisation active :
// Exécutez cette commande dans la console DevTools avant tout consentement
console.table(window.google_tag_data.ics.entries);Validez que l'ensemble des variables (ad_storage, analytics_storage, ad_user_data, ad_personalization) retournent impérativement le statut denied.
Étape 3 : Détection des fuites serveur via cURL
Afin de vous assurer que le serveur d'origine ne dépose aucun cookie non essentiel via les en-têtes HTTP de réponse (Set-Cookie) avant l'exécution du code JavaScript côté client, lancez l'instruction terminal suivante :
curl -I -s -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)"
https://www.votredomaine.fr/ | grep -i "set-cookie"Tout en-tête set-cookie instanciant un cookie d'analyse d'audience ou de profilage marketing constitue une violation immédiate de l'article 5(3) de la directive ePrivacy ↗ et de l'article 82 de la loi Informatique et Libertés ↗.
5. Verdict stratégique et recommandations sans sanction pour les marques européennes
Arbitrer entre Axeptio et Didomi revient à aligner les caractéristiques techniques de la CMP avec votre modèle d'affaires, vos ressources de développement et vos canaux de monétisation.
Dans quels cas déployer Axeptio ?
- E-commerce, DTC & boutiques Shopify : Les marques opérant sur Shopify, WooCommerce ou des architectures headless (React/Next.js) qui n'exploitent pas de header bidding publicitaire tirent parti du script léger d'Axeptio (42 Ko), de sa rapidité de configuration et de son taux d'opt-in supérieur (~72 %).
- Budgets TPE, PME et ETI : Les structures recherchant une tarification SaaS claire et prévisible (15 € à 250 €/mois) sans engagement pluriannuel complexe.
- Expérience de marque soignée : Les entreprises souhaitant un widget aux couleurs de leur charte graphique, agréable à consulter, plutôt qu'une interface juridique austère. Attention : l'activation du bouton « Tout refuser » au premier écran reste obligatoire pour respecter les critères de la CNIL.
Dans quels cas retenir Didomi ?
- Éditeurs de presse et médias monétisés à la publicité : Les plateformes dépendantes de la publicité programmatique (Prebid, Google Ad Manager, régies publicitaires) nécessitent la certification IAB TCF v2.2 native (CMP ID 236) pour préserver le remplissage de leurs inventaires et leurs CPM.
- Groupes multi-marques et écosystèmes multi-domaines : Les entreprises qui doivent harmoniser la preuve de consentement sur des dizaines de sites web et d'applications mobiles natives (iOS/Android).
- Gouvernance d'entreprise et gestion globale des préférences : Les structures ayant besoin d'un centre de préférences omnicanal, de l'ingestion de consentements hors-ligne et d'une synchronisation directe avec leur CRM d'entreprise (Salesforce, Adobe Experience Platform).
Sources Officielles & Jurisprudence de Référence
Textes réglementaires primaires, délibérations officielles de la CNIL et arrêts de la CJUE cités dans cette analyse.
-
Curia / CJUE Arrêt CJUE Fashion ID (Affaire C-40/17 du 29 juillet 2019) : Co-responsabilité sur les plugins et pixels tiersConsulter le texte officiel
-
Curia / CJUE Arrêt CJUE Planet49 (Affaire C-673/17 du 1er octobre 2019) : Invalidité absolue des cases pré-cochées pour le consentement cookiesConsulter le texte officiel
-
Légifrance Article 82 de la Loi n° 78-17 du 6 janvier 1978 modifiée (Régime légal des cookies et traceurs en France)Consulter le texte officiel
-
EUR-Lex Article 83 du Règlement (UE) 2016/679 (RGPD) — Conditions générales pour imposer des amendes administratives (plafonds de 20 M€ ou 4 % du CA mondial)Consulter le texte officiel
-
EUR-Lex Directive 2002/58/CE modifiée (Directive ePrivacy relative au traitement des données et à la protection de la vie privée dans le secteur des communications électroniques)Consulter le texte officiel
-
Légifrance / CNIL Délibération CNIL n° 2020-091 du 17 septembre 2020 portant adoption de lignes directrices relatives à l'application de l'article 82Consulter le texte officiel