CookieFort aide à collecter les consentements et à activer/désactiver proprement vos scripts marketing & analytics, tout en conservant une traçabilité (proof) exploitable.
Collez comme premier script dans le <head> (ou avant </body>).
<script src="https://cookiefort.com/api/v1/widget.js?id=YOUR_PROPERTY_ID" async></script>Endpoints utilisés par le widget et les intégrations dashboard.
# Widget config
GET /api/v1/config/{propertyId}
# Widget ingest
POST /api/v1/visit
POST /api/v1/consentSection 1
Flux d'installation
Exemple copié depuis l'étape 2 du dashboard (remplacez les ID par votre propriété).
<!-- 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>GTM-… ou G-…).gtag('config') dans le HTML — le widget l’applique après consentement).data-category
<script src="https://example.com/tag.js" data-category="ANALYTICS"></script><head>, ou à défaut juste avant la fin du <body> selon votre CMS.Section 2
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 type="text/javascript" data-category="MARKETING" src="https://example.com/pixel.js"></script>Section 3
denied par défaut, sauf opt-out).denied jusqu’au choix explicite.Section 4
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.
/#cookiefort-manage-cookiesSection 4a
Section 4b
document.documentElement.lang, puis navigator.language) et affiche le lien du pays correspondant s’il est renseigné.privacyUrl) s’affiche — comportement de repli historique.Section 6
Proof (preuve de consentement)
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
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
GET /api/cron/daily-stats (ou POST) avec secret via Authorization: Bearer, x-cron-secret ou ?secret=.GET /api/cron/daily-stats?health=1 pour comparer la dernière date agrégée à la date attendue.?backfill=7 (ou N) pour recalculer les derniers jours de manière idempotente.npm run cron:daily-stats:smoke (utilise APP_URL et CRON_SECRET depuis .env).GET /api/cron/daily-stats
Authorization: Bearer $CRON_SECRET
GET /api/cron/daily-stats?health=1
GET /api/cron/daily-stats?backfill=7