Bannière
L'API JavaScript
Contrôler la bannière depuis votre code : rouvrir les préférences, lire l'état du consentement, comprendre le cookie csm_consent 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éthode | Effet |
|---|---|
__cmp.showPreferences() | Ouvre le centre de préférences, où le visiteur modifie ou retire son consentement. |
__cmp.showBanner() | Réaffiche l'avis de consentement initial. |
__cmp.hideBanner() | Masque l'avis affiché. |
<a href="#" onclick="window.__cmp && __cmp.showPreferences(); return false;">
Gérer mes témoins
</a>La bannière peut ne pas être encore chargée
Le script se charge de façon asynchrone : testez toujours la présence de window.__cmp (et sa propriété ready) avant d'appeler une méthode, 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.consent | L'état par catégorie, par exemple { necessary: true, analytics: true, advertisement: false }. |
__cmp.cats | Les catégories configurées pour le site. |
__cmp.ready | true quand la bannière est initialisée. |
__cmp.regime | Le régime de consentement appliqué au visiteur selon sa localisation. |
__cmp.gpcApplied | true si un signal Global Privacy Control a été honoré. |
if (window.__cmp && __cmp.ready && __cmp.consent.analytics) {
// le visiteur a accepté la catégorie Analyse
chargerMonModule();
}Le cookie csm_consent
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; Secure sur le domaine enregistrable de votre site (il vaut donc pour vos sous-domaines). Sa valeur est un objet JSON encodé :
| Champ | Signification |
|---|---|
id | L'identifiant de consentement du visiteur (préfixe csm_), celui qui apparaît dans le registre. |
v | La version de la configuration publiée au moment du choix. |
c | Le détail par catégorie (true / false). |
a | L'action : accept_all, reject_all, save_preferences ou withdraw. |
t | L'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 et l'événement csm_consent_update dans le dataLayer. Créez un déclencheur d'événement personnalisé sur ce nom pour lancer un tag dès qu'un visiteur consent : c'est exactement ainsi que les tags GA4 et Meta de l'installation automatique repartent sans rechargement.
window.dataLayer.push(["consent", "update", {
analytics_storage: "granted",
ad_storage: "denied",
ad_user_data: "denied",
ad_personalization: "denied",
/* … tous les signaux Consent Mode v2 */
}]);
window.dataLayer.push({ event: "csm_consent_update" });