Développeurs

Documentation

Tout pour installer Consorm, gérer le consentement et intégrer vos outils, du premier script à l'export du registre.

Bannière

L'API JavaScript

Contrôler la bannière depuis votre code : rouvrir les préférences, lire l'état du consentement, conditionner vos propres scripts et réagir aux décisions via le dataLayer.

Une fois chargée, la bannière expose un objet global window.__cmp sur chaque page. Il permet d'ouvrir la bannière ou le centre de préférences depuis vos propres éléments d'interface et de lire l'état courant du consentement : utile, par exemple, pour un lien « Gérer mes témoins » dans votre pied de page.

Méthodes

MéthodeEffet
__cmp.showPreferences()Ouvre le centre de préférences, où le visiteur modifie ou retire son consentement, et masque l'avis.
__cmp.showBanner()Réaffiche l'avis de consentement initial et ferme le centre de préférences.
__cmp.hideBanner()Masque l'avis et le centre de préférences.
Un lien « Gérer mes témoins » dans votre pied de page
<a href="#" onclick="window.__cmp && __cmp.showPreferences && __cmp.showPreferences(); return false;">
  Gérer mes témoins
</a>

La bannière peut ne pas être encore chargée

window.__cmp existe dès le script d'amorçage, mais les trois méthodes ne sont attachées qu'une fois la bannière affichée, et jamais sous le régime « Aucune bannière ». Testez la présence de la méthode elle-même avant de l'appeler, comme dans l'exemple ci-dessus.

Lire l'état du consentement

L'objet __cmp porte aussi l'état courant, en lecture seule :

PropriétéContenu
__cmp.consentL'état des catégories non nécessaires, par exemple { functional: false, analytics: true, advertisement: false }. Les catégories nécessaires n'y figurent pas : elles sont toujours actives.
__cmp.catsLes clés des catégories non nécessaires configurées pour le site.
__cmp.readytrue quand la bannière est initialisée.
__cmp.regimeLe régime appliqué au visiteur selon sa localisation : un objet avec mode (opt-in, opt-out, notice-only ou none), ui, honorGpc, gpcApplied.
__cmp.gpcAppliedtrue si un signal Global Privacy Control a été honoré.
__cmp.debugMettez-le à true pour afficher les journaux [cmp] de la bannière dans la console.
Exemple : afficher un module seulement si l'analyse est consentie
if (window.__cmp && __cmp.ready && __cmp.consent.analytics) {
  // le visiteur a accepté la catégorie Analyse
  chargerMonModule();
}

Conditionner vos propres scripts et contenus

Sans écrire de JavaScript, vous pouvez rattacher un script ou un élément de page à une catégorie directement dans votre HTML :

  • Un <script type="text/plain" data-consent="analytics"> n'est exécuté qu'une fois la catégorie analytics acceptée (remplacez par la clé de la catégorie voulue).
  • Tout élément portant data-consent="advertisement" reste masqué tant que la catégorie n'est pas consentie, grâce à la classe cmp-no-<clé> posée sur <html>.
  • Les iframes bloquées par les motifs d'URL sont remplacées par un bloc .cmp-placeholder, que vous pouvez styler ; scripts, iframes et images bloqués sont réinjectés dès l'acceptation.

Pour les tags gérés dans Google Tag Manager avec le modèle, voyez plutôt Vos balises avec le modèle GTM.

La décision du visiteur est conservée dans un unique cookie de première partie, csm_consent, valable 365 jours, posé avec SameSite=Lax (et Secure en HTTPS) sur le domaine enregistré de votre site : il vaut donc pour vos sous-domaines. Sa valeur est un objet JSON encodé :

ChampSignification
idL'identifiant de consentement du visiteur (préfixe csm_), celui qui apparaît dans le registre.
vL'empreinte de la configuration publiée au moment du choix (la version de politique du registre).
cLe détail par catégorie non nécessaire (true / false).
aL'action : accept_all, reject_all ou save_preferences.
tL'horodatage de la décision (millisecondes depuis l'epoch).

Réagir aux décisions (dataLayer)

Il n'y a pas d'API d'abonnement par rappel : l'intégration passe par Google Tag Manager. À chaque décision, la bannière pousse la mise à jour Consent Mode dans le dataLayer. Elle y pousse aussi l'événement csm_consent_update quand une catégorie vient d'être accordée, et au chargement de chaque page pour un visiteur dont le choix est déjà enregistré. Un déclencheur d'événement personnalisé sur ce nom lance un tag dès qu'un visiteur consent : c'est ainsi que les tags de l'installation automatique partent sans rechargement.

Ce que la bannière pousse après une acceptation (simplifié)
// 1) la mise à jour Consent Mode, via gtag()
gtag("consent", "update", {
  analytics_storage: "granted",
  ad_storage: "denied",
  ad_user_data: "denied",
  ad_personalization: "denied",
  /* … tous les signaux Consent Mode v2 */
});
// 2) puis, si une catégorie vient d'être accordée
window.dataLayer.push({ event: "csm_consent_update" });