CookieFort
Tarifs
Agences partner
Test de conformité
CookieFort

La CMP simple pour les équipes marketing qui veulent rester conformes sans sacrifier les conversions.

Solution
  • Dashboard
  • Intégrations
  • Agences partner
Société
  • À propos
  • Contact
  • Blog
  • FAQ
Légal
  • Mentions légales
  • Politique de confidentialité
  • CGV / CGU
  • DPA
  • Gestion des cookies

© 2026 CookieFort. Tous droits réservés. CMP · Proof of consent · Made in Europe

GDPR COMPLIANTISO 27001

Documentation CMP CookieFort

CMP en bref

Mise en route

Installation
Récupérer le scriptIntégrer le snippetPublier & vérifier

Configuration

Blocage des scripts
Google Consent Mode v2
Bannière conforme au Consent Mode
Google Tag Gateway
Widget de consentement
Pixels publicitaires (Meta, TikTok, LinkedIn, Pinterest)
Personnalisation multi-pays
Détection automatique des cookies & « cookies inconnus »
Lancer le scanCatégoriser les cookies inconnusAjouter au widgetExceptions & signalementFinaliser & appliquer

Avancé

Preuve de consentement (Proof)
Visites & facturation
Daily stats cron
Sommaire
CMP en bref

Mise en route

InstallationRécupérer le scriptIntégrer le snippetPublier & vérifier

Configuration

Blocage des scripts
Google Consent Mode v2
Bannière conforme au Consent Mode
Google Tag Gateway
Widget de consentement
Pixels publicitaires (Meta, TikTok, LinkedIn, Pinterest)
Personnalisation multi-pays
Détection automatique des cookies & « cookies inconnus »Lancer le scanCatégoriser les cookies inconnusAjouter au widgetExceptions & signalementFinaliser & appliquer

Avancé

Preuve de consentement (Proof)
Visites & facturation
Daily stats cron

CMP en bref

CookieFort aide à collecter les consentements et à activer/désactiver proprement vos scripts marketing & analytics, tout en conservant une traçabilité (proof) exploitable.

Chargement du widget

Collez comme premier script dans le <head> (ou avant </body>).

widget-loader.html
<script src="https://cookiefort.com/api/v1/widget.js?id=YOUR_PROPERTY_ID" async></script>

API publique

Endpoints utilisés par le widget et les intégrations dashboard.

api-endpoints.http
# Widget config
GET /api/v1/config/{propertyId}

# Widget ingest
POST /api/v1/visit
POST /api/v1/consent

Section 1

Installation

Flux d'installation

Récupérez le script, intégrez-le, puis vérifiez la détection.

Snippet GA4 + widget

Exemple copié depuis l'étape 2 du dashboard (remplacez les ID par votre propriété).

installation-snippet.html
<!-- Google tag (gtag.js) — GA4 config applied by widget after consent -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
</script>
<script src="https://cookiefort.com/api/v1/widget.js?id=YOUR_PROPERTY_ID" async></script>
1

Récupérer le script

  • Dans le dashboard, ouvrez la page de votre site (ou propriété) puis trouvez la section “Intégrations”.
  • À l’étape 1, choisissez GTM, GA4 ou Matomo et renseignez l’identifiant (GTM-…, G-…, ou pour Matomo l’URL du serveur et l’ID de site). Matomo est injecté par le widget : la visite est mesurée dès l’affichage, sans cookie, et les cookies Matomo ne sont déposés qu’après consentement analytics. Pas de Google Consent Mode.
2

Intégrer le snippet

  • Cliquez sur “Obtenir le script” : snippet widget seul (GTM, Matomo, ou GA4 en Basic) ou gtag + widget (GA4 Advanced, sans gtag('config') dans le HTML — le widget l’applique après consentement).
  • Copiez le script d’intégration affiché.

data-category

data-category.html
<script src="https://example.com/tag.js" data-category="ANALYTICS"></script>
3

Publier & vérifier

  • Collez-le dans votre site : idéalement dans le <head>, ou à défaut juste avant la fin du <body> selon votre CMS.
  • Publiez puis rechargez une page de votre site : le widget doit pouvoir s’exécuter et communiquer avec le dashboard.
  • Retournez au dashboard et vérifiez le statut d’intégration (présence du widget détectée / check vert).
  • Si la détection ne se fait pas : assurez-vous que le script se charge bien (absence d’erreur console) et utilisez le contrôle d’actualisation de l’intégration.

Section 2

Blocage des scripts

La CMP active/désactive vos tags en fonction des catégories de consentement. Utilisez l’attribut data-category pour associer chaque script à une catégorie.

script-blocking.html
<script type="text/javascript" data-category="MARKETING" src="https://example.com/pixel.js"></script>

Section 3

Google Consent Mode v2

  • Le Consent Mode est activé dès que vous choisissez GTM ou GA4 à l’étape 1. Ce n’est pas un mécanisme de conformité réglementaire : il indique aux tags Google l’état du consentement.
  • Documentation Google : Set up consent mode et consent mode for developers.
  • Basic : les tags Google ne se chargent pas avant le choix du visiteur. Aucune donnée n’est envoyée à Google tant qu’il n’a pas accepté.
  • Advanced (défaut) : les tags Google se chargent avant le choix et restent bridés. Tant que l’état est denied, ils envoient des pings sans cookie.
  • Si un signal Consent Mode manque sur un tag Google, contactez d’abord le support CookieFort (cmp@cookiefort.com, page Contact). Le support Google demande la preuve de ce contact avant de répondre.
  • Premier retour du support sous 4 jours ouvrés. Ce premier message décrit une piste de correction, ce n’est pas un simple accusé de réception.

Section 3b

Bannière conforme au Consent Mode

  • Tous les textes se règlent dans le dashboard, sans HTML ni JavaScript.
  • Lorsque le Consent Mode est utilisé sans TCF, le dashboard recommande le modèle Google. Le bouton Utiliser le modèle Consent Mode Google remplit le message en français et en anglais.
  • Le modèle explique que des données sont collectées pour la personnalisation publicitaire et pour l’analyse, garde le bouton Accepter, et affiche dans la bannière le lien business.safety.google/privacy.
  • Vous pouvez limiter la bannière à l’EEE. Hors de cette zone, elle ne s’affiche pas et le consentement est accordé, y compris si les Data Transmission Controls ou les Global Consent Defaults refusent la mesure pour toutes les régions.

Section 3c

Google Tag Gateway

  • Google Tag Gateway (GTG) peut injecter le script via un CDN en un clic. Vous ne maîtrisez alors plus l’ordre de chargement : le tag peut partir avant le consent default du widget. C’est un signal de consentement late.
  • Documentation Google : Google tag gateway.
  • Pour vérifier l’enrôlement, ouvrez les réglages de la balise Google dans GTM, puis le compte Google Ads ou GA4. L’enrôlement en un clic peut être activé hors de la page. CookieFort ne le détecte pas à votre place.
  • Si le mode debug signale un consentement late et que le tag est enrôlé : ne vous contentez pas de réordonner les scripts. Passez en Consent Mode Advanced (U+C) et activez, selon le besoin, les Data Transmission Controls et les Global Consent Defaults. Vous pouvez aussi regrouper les tags dans un conteneur GTM déployé via GTG, ou configurer GTG manuellement pour garder la main sur l’ordre d’import.
  • Pour un tag enrôlé dans GTG, Advanced est le mécanisme recommandé : il ne dépend pas du blocage du script avant le choix, et il reste compatible avec un GTG configuré manuellement.

Section 4

Widget de consentement

Le widget affiche un bandeau (et sa version « config ») et enregistre les choix. En Advanced, les tags Google peuvent déjà être chargés et bridés par le Consent Mode. En Basic, ils ne démarrent qu’après le choix analytics ou marketing.

Si vous desactivez le bouton flottant “Gerer mes cookies”, ajoutez un lien dans le footer/menu vers /#cookiefort-manage-cookies (ancien : /#kookitrust-manage-cookies) afin de permettre la reouverture des preferences.

reopen-preferences.html
/#cookiefort-manage-cookies

Section 4a

Pixels publicitaires (Meta, TikTok, LinkedIn, Pinterest)

  • À l’étape 1 (Installation), activez « Utiliser les pixels de réseaux sociaux » et renseignez les identifiants souhaités : Meta Pixel, TikTok Pixel, LinkedIn Insight Tag, Pinterest Tag.
  • Les pixels se chargent via le widget uniquement — ils ne figurent pas dans le snippet d’installation de l’étape 2.
  • Règle : aucun script publicitaire avant consentement explicite ; les pixels ne démarrent qu’après acceptation de la catégorie marketing (ou équivalent selon le choix utilisateur).
  • Si l’utilisateur retire le marketing puis enregistre, le widget révoque le consentement plateforme (Meta/TikTok) et retire les scripts LinkedIn/Pinterest le cas échéant.
  • Coexistence GTM : si les mêmes pixels sont déjà dans votre conteneur GTM, évitez de les activer aussi côté widget pour ne pas doubler le chargement.
  • V1 : événements PageView à l’activation ; pas d’événements avancés (Lead, Purchase, etc.) dans cette version.

Section 4b

Personnalisation multi-pays

  • Dans l’accordéon Confidentialité (étape 1), activez « Liens de confidentialité multi-réglementations ».
  • Renseignez les URL optionnelles pour la Suisse (CH), le Royaume-Uni (GB), l’Australie (AU) et les États-Unis (US). Chaque champ accepte une URL http ou https.
  • Le widget lit la locale du navigateur (document.documentElement.lang, puis navigator.language) et affiche le lien du pays correspondant s’il est renseigné.
  • Si le pays n’est pas couvert ou si l’URL pays est vide, le lien privacy global (privacyUrl) s’affiche — comportement de repli historique.
  • Il s’agit d’un routage d’URL vers la bonne politique, pas d’une analyse juridique automatique par juridiction.

Section 5

Détection automatique des cookies & « cookies inconnus »

Scan & mapping

Lancez le scan, catégorisez les cookies inconnus, puis appliquez les mises à jour au widget.

Lancer le scan

  • Ouvrez l’écran « Détection automatique des cookies ».
  • Cliquez sur “Lancer un scan” et attendez la fin du scan.

Catégoriser les cookies inconnus

  • Dans la zone “Inconnus / Unknown”, repérez les cookies que CookieFort n’arrive pas à associer à votre base actuelle.
  • Pour chaque cookie inconnu : renseignez “Conservation (jours)” entre 1 et 395.
  • Choisissez ensuite la catégorie de consentement (Essentiel / Analytique / Marketing / Social / Préférences).

Ajouter au widget

  • Cliquez sur “Ajouter / Add” pour appliquer le mapping au widget (ceci déclenche la mise à jour des paramètres côté dashboard).

Exceptions & signalement

  • Si vous avez besoin d’une exception : utilisez “Ignorer / Ignore” uniquement de façon exceptionnelle (attendu RGPD).
  • Si vous souhaitez enrichir la base : utilisez “Signaler / Report” pour envoyer le cookie à l’équipe.

Finaliser & appliquer

  • Quand tous les cookies inconnus sont traités, utilisez le bouton global “Enregistrer dans ma configuration / Save to my configuration” (si présent).
  • Enfin, cliquez sur “Appliquer au widget / Apply to widget” pour activer la configuration mise à jour.
  • En cas de rétention invalide, l’erreur s’affiche en tooltip (sans décaler la hauteur du tableau).

Section 6

Preuve de consentement (Proof)

Proof (preuve de consentement)

Le dashboard conserve un snapshot de la modale à exporter.

Le dashboard conserve des preuves côté consent : version de la modale, informations du navigateur et un snapshot de la modale. Chaque ligne correspond à une décision enregistrée (accepter, refuser ou choix personnalisé). Vous pouvez exporter ce journal (CSV) depuis l’écran « Consentements ». La facturation se base sur le nombre de visites (session navigateur), pas sur le nombre de décisions.

Section 7

Visites & facturation

Une visite correspond à une session navigateur active sur votre site : elle débute au chargement de la page et se termine à la fermeture de l’onglet ou du navigateur. À la première arrivée, le visiteur doit faire un choix de consentement ; chaque nouveau chargement du site compte comme une nouvelle visite. Si le visiteur a accepté ou personnalisé ses préférences, son identifiant visiteur est réutilisé entre les visites ; en cas de refus, un nouvel identifiant est attribué à chaque visite. Modifier ses préférences pendant la même session navigateur ne crée pas de visite supplémentaire. Les visites sont comptées sur le site couvert par votre abonnement sur la période de facturation en cours. Les paliers Mini, Starter, Growth et Pro incluent un quota mensuel, un essai gratuit de 7 jours et une facturation du dépassement par tranches. Détails : page Tarifs et FAQ.

Voir aussi la page Tarifs et la FAQ.

Vous êtes une agence ? Consultez le chapitre Programme agence partenaire.

Section 8

Daily stats cron

  • Point d’entrée: GET /api/cron/daily-stats (ou POST) avec secret via Authorization: Bearer, x-cron-secret ou ?secret=.
  • Fréquence recommandée: 1 exécution par jour en UTC (idéalement tôt le matin) pour agréger J-1.
  • Contrôle de santé: GET /api/cron/daily-stats?health=1 pour comparer la dernière date agrégée à la date attendue.
  • Rattrapage: ?backfill=7 (ou N) pour recalculer les derniers jours de manière idempotente.
  • Smoke test local: npm run cron:daily-stats:smoke (utilise APP_URL et CRON_SECRET depuis .env).
  • Scheduler infra: branchez ensuite soit Vercel Cron, soit un cron Linux/external pinger vers cet endpoint.
cron-endpoints.http
GET /api/cron/daily-stats
Authorization: Bearer $CRON_SECRET

GET /api/cron/daily-stats?health=1
GET /api/cron/daily-stats?backfill=7
Vous souhaitez faire fonctionner la CMP sur un site réel ? Créez un compte dashboard et testez l’intégration.
Commencer