CookieFort
Tarifs
Agences partner
Commencer
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é
  • 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
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
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 ou GA4 et renseignez l’ID (GTM-… ou G-…).
2

Intégrer le snippet

  • Cliquez sur “Obtenir le script” : snippet widget seul (GTM) ou gtag + widget (GA4, 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

  • Par défaut, CookieFort utilise le Consent Mode Advanced : les tags Google se chargent plus tôt, bridés par les signaux Consent Mode (denied par défaut, sauf opt-out).
  • Le mode Basic (option à l’étape 1) ne charge les tags Google (GTM ou gtag) qu’après un consentement analytics et/ou marketing.
  • L’opt-out « analytics avant choix » n’est disponible qu’en Advanced. En Basic, les defaults restent toujours denied jusqu’au choix explicite.

Section 4

Widget de consentement

Le widget affiche un bandeau (et sa version “config”) et enregistre les choix utilisateur. Lors de l’activation, le widget ne démarre les scripts qu’après consentement explicite.

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