Documentation

Implémenter CMP sur votre site

Comptez cinq minutes. Aucun développement nécessaire.

1. Créez un compte et déclarez votre domaine

Rendez-vous sur https://app.cmp.newfutur.com, créez votre compte (validation par e-mail), puis ajoutez votre domaine dans Domaines.

2. Vérifiez la propriété du domaine

Trois méthodes au choix :

  • Fichier : déposez à la racine /.well-known/cmp-verification.txt contenant le jeton affiché.
  • DNS : ajoutez un enregistrement TXT cmp-verification=<jeton>.
  • Balise meta : <meta name="cmp-domain-verification" content="<jeton>"> dans le <head> de la page d'accueil.

3. Personnalisez et publiez la bannière

Dans Bannières : couleurs, textes, disposition, options de conformité. Créez vos catégories et vos vendors dans Catégories & vendors, puis Publier. Chaque publication est versionnée.

4. Ajoutez le snippet

Collez ces deux lignes juste avant </head> de toutes vos pages (remplacez PUBLIC_ID par l'identifiant du domaine, visible dans l'espace client) :

<link rel="preload" as="fetch" crossorigin href="https://api.cmp.newfutur.com/v1/config/PUBLIC_ID">
<script async src="https://api.cmp.newfutur.com/v1/cmp.js?d=PUBLIC_ID"></script>

Le SDK s'affiche en Shadow DOM : il n'entre pas en conflit avec le CSS de votre site. La ligne <link rel="preload"> est optionnelle mais recommandée : elle démarre le chargement de la configuration de la bannière en parallèle du script au lieu d'attendre qu'il soit chargé et exécuté pour la déclencher — un aller-retour réseau de moins avant l'affichage.

5. Ajoutez un lien « Gérer mes cookies »

Pour que vos visiteurs puissent revenir sur leur choix à tout moment, ajoutez ce lien dans votre pied de page ou votre page « Politique de confidentialité » (il rouvre le centre de préférences, sans recharger la page — inutile de connaître l'identifiant du domaine, ce code est le même partout) :

<a href="#" data-cmp-open="preferences">Gérer mes cookies</a>

Le SDK intercepte le clic via une écoute d'événement globale — volontairement pas d'attribut onclick="..." inline, qu'une CSP stricte bloquerait même quand script-src autorise déjà le SDK (voir section 10). Ce code est aussi disponible prêt à copier dans votre espace client, page Bannières.

6. Google Consent Mode v2 & Google Tag Manager

Le SDK pose les états Consent Mode par défaut (tout refusé sauf sécurité) avant tout autre script, puis les met à jour selon le choix de l'internaute. Placez le snippet CMP avant celui de GTM / gtag.js. Vous pouvez aussi laisser CMP charger GTM comme un tag géré (type gtm).

7. Tags gérés (activation différée)

Déclarez vos scripts (Analytics, pixels…) dans Catégories & vendors → Tags. CMP ne les injecte qu'au moment où la catégorie correspondante est consentie (on_consent), refusée (on_reject) ou toujours (always).

8. IAB TCF v2.2 et GPP

Activez IAB TCF v2.2 par domaine dans l'éditeur de bannière. Renseignez au préalable votre identifiant CMP obtenu auprès de l'IAB. Le SDK expose alors window.__tcfapi et génère la chaîne TC ; l'activation de GPP ajoute window.__gpp et encapsule la section TCF EU v2.

9. Signal GPC

Si l'option « Respecter le signal GPC » est active et que le navigateur envoie navigator.globalPrivacyControl, le refus est appliqué automatiquement (avec preuve), sans afficher la bannière.

10. Content Security Policy (CSP)

Si votre site impose une Content Security Policy stricte (en-tête HTTP Content-Security-Policy, ou balise <meta http-equiv="Content-Security-Policy">), le navigateur bloque le script tant qu'elle n'autorise pas explicitement notre domaine — message typique dans la console :

Loading the script 'https://api.cmp.newfutur.com/v1/cmp.js?d=...' violates the
following Content Security Policy directive: "script-src 'self' ...".

Ajoutez (au minimum) ces directives à votre CSP :

script-src  https://api.cmp.newfutur.com;
connect-src https://api.cmp.newfutur.com;
  • script-src : indispensable pour charger /v1/cmp.js. Si vous chargez Google Tag Manager comme tag géré (type gtm), ajoutez aussi https://www.googletagmanager.com ; plus généralement, chaque script tiers déclaré en tag géré de type src doit figurer dans votre script-src.
  • connect-src : la bannière et le centre de préférences appellent /v1/config, /v1/consent et /v1/event en arrière-plan (sans cette directive, le script se charge mais l'enregistrement du consentement échoue silencieusement).
  • style-src : sur les navigateurs récents (feuilles de style « adoptées »), aucune autorisation supplémentaire n'est nécessaire. Pour couvrir aussi les navigateurs plus anciens, ajoutez style-src 'unsafe-inline' — sinon la bannière reste fonctionnelle mais s'affiche sans son thème sur ces navigateurs.
  • Un tag géré de type inline (code collé directement, sans URL) est un script injecté dynamiquement : votre CSP doit alors autoriser 'unsafe-inline' pour script-src, ou remplacez-le par un fichier hébergé (type src) pour conserver une CSP stricte.
  • Le lien « Gérer mes cookies » (section 5) n'a besoin d' aucune autorisation supplémentaire : n'utilisez surtout pas onclick="..." pour le reproduire vous-même — les CSP strictes bloquent les gestionnaires d'événements en ligne quel que soit votre script-src (message typique : « Executing inline event handler violates … Note that hashes do not apply to event handlers … unless 'unsafe-hashes' is present »). L'attribut data-cmp-open fourni est un simple attribut HTML inerte, capté par le SDK déjà autorisé.

11. API

Une référence interactive de l'API publique (config, enregistrement de consentement, export du registre de preuves par clé) est disponible dans votre espace client, page API.

12. Vérifier & dépanner

  • Ouvrez la console : le SDK expose window.CMP.showPreferences(), window.CMP.getConsent().
  • Bannière absente ? Vérifiez que le domaine est actif et qu'une version de bannière est publiée.
  • Erreur « violates the following Content Security Policy directive » dans la console ? Voir la section 10 ci-dessus.
  • Les preuves apparaissent en temps réel dans Registre de preuves.

Besoin d'aide ?

Notre équipe répond aux questions d'intégration.

Nous contacter