JavaScript-API
Die meisten Websites brauchen diese Seite nie. Lesen Sie sie, wenn Ihr eigener Code wissen muss, was ein Besucher erlaubt hat, oder wenn Sie eigene Schaltflächen und Links möchten.
Hier beginnen: auf den Status warten
Die Cookiemark-Zeile steht ganz oben in Ihrem Head und läuft sofort, daher existiert window.Cookiemark für jedes Skript darunter. Die Auswahl des Besuchers steht etwas später fest, sobald die Seite eingelesen ist. Verwenden Sie das Event ready, um den Status beim Laden der Seite zu erfahren, und change, um zu verfolgen, was danach passiert.
Cookiemark.on('ready', function (detail) {
if (detail.consent.statistics) {
startMyAnalytics();
}
});
Cookiemark.on('change', function (detail) {
if (detail.consent.marketing) {
loadChatWidget();
}
});Vor Ihrer ersten Veröffentlichung enthält das Skript nichts, und window.Cookiemark existiert nicht. Prüfen Sie, ob es vorhanden ist, bevor Sie es aufrufen, damit Ihr Code auch auf einer Website funktioniert, die noch ein Entwurf ist.
Eine Funktion, die Sie mit on('ready') hinzufügen, nachdem der Status bekannt ist, läuft sofort. Die anderen Events werden für spät hinzugefügte Listener nicht wiederholt. Zusammen verpassen ready und change nie etwas.
Jedes Event wird außerdem auf window als CustomEvent mit dem Präfix cookiemark: gesendet. Die Daten stehen in event.detail.
window.addEventListener('cookiemark:change', function (event) {
console.log(event.detail.action, event.detail.consent);
});Eigenschaften
Alle Eigenschaften sind schreibgeschützt und zeigen immer den aktuellen Status.
| Eigenschaft | Wert |
|---|---|
Cookiemark.consent | Ein Objekt mit necessary, preferences, statistics und marketing, jeweils true oder false. necessary ist immer true. |
Cookiemark.hasResponse | True, wenn der Besucher eine Auswahl getroffen hat, die noch gültig ist. |
Cookiemark.consented | True, wenn mindestens eine optionale Kategorie erlaubt ist. |
Cookiemark.declined | True, wenn keine optionale Kategorie erlaubt ist. |
Cookiemark.consentId | Die zufällige ID der Einwilligung dieses Besuchers, wie im Einwilligungsprotokoll. Leer, bis er eine Auswahl trifft. |
Cookiemark.consentTime | Wann die gespeicherte Auswahl getroffen wurde, in Millisekunden seit 1970. Null ohne Auswahl. |
declined ist auch bei einem neuen Besucher true, der noch nicht geantwortet hat, weil zu diesem Zeitpunkt nichts erlaubt ist. Prüfen Sie zusätzlich hasResponse, wenn Sie wissen müssen, dass der Besucher abgelehnt hat.
if (Cookiemark.hasResponse && Cookiemark.declined) {
// The visitor chose to reject everything.
}Methoden
| Methode | Beschreibung |
|---|---|
show() | Zeigt das Banner. |
hide() | Blendet das Banner aus, ohne eine Auswahl zu speichern. |
showPreferences() | Öffnet das Präferenzen-Fenster. renew() tut dasselbe. |
acceptAll() | Erlaubt jede Kategorie, wie der Akzeptieren-Button. |
denyAll() | Lehnt jede optionale Kategorie ab, wie der Ablehnen-Button. |
withdraw() | Widerruft die Einwilligung. Das Protokoll erfasst es als Widerruf. |
submitConsent(choice) | Speichert eine eigene Auswahl. Kategorien, die Sie weglassen, gelten als abgelehnt. |
runScripts() | Führt zurückgehaltene Skripte aus, die jetzt erlaubt sind. Verwenden Sie die Methode, nachdem Sie selbst gekennzeichnete Skripte zur Seite hinzugefügt haben. |
googleConsentState() | Gibt zurück, was Cookiemark Google mitteilt, Signal für Signal. |
on(name, fn) und off(name, fn) | Fügt eine Funktion für ein Event hinzu oder entfernt sie. Der Name funktioniert mit und ohne cookiemark:. |
Cookiemark.submitConsent({ preferences: true, statistics: true, marketing: false });Jede Auswahl, die Sie über die API speichern, ist eine echte Auswahl. Sie setzt das Cookie, landet im Einwilligungsprotokoll und gibt Skripte frei oder widerruft sie, genau wie ein Klick im Banner.
Events
| Event | Wann |
|---|---|
ready | Einmal pro Seitenaufruf, sobald Cookiemark den Status kennt. |
change | Nach jeder Auswahl, die der Besucher trifft. |
accept | Nach einer Auswahl, die mindestens eine Kategorie erlaubt, und beim Laden der Seite für einen Besucher, der das zuvor getan hat. |
decline | Nach einer Auswahl, die nichts erlaubt, und beim Laden der Seite für einen Besucher, der zuvor abgelehnt hat. |
dialog-open | Wenn das Banner oder das Präferenzen-Fenster erscheint. |
dialog-close | Wenn sich das Präferenzen-Fenster schließt. |
scripts-executed | Wenn Cookiemark die zurückgehaltenen Skripte ausgeführt hat, beim Laden der Seite und nach jeder Auswahl. |
Jeder Listener erhält dasselbe Objekt. consent enthält die vier Kategorien. action ist nach einer Auswahl accept_all, deny_all, custom, withdraw oder signal, sonst leer. first ist true, wenn es die erste Auswahl des Besuchers ist.
Die Listener-Warteschlange
window.cookiemarkListeners ist eine Warteschlange für Code, der vor dem Cookiemark-Skript laufen kann, etwa eine Vorlage in Tag Manager. Hängen Sie eine Funktion an. Cookiemark ruft sie auf, sobald die Auswahl bekannt ist, und nach jeder Änderung erneut.
window.cookiemarkListeners = window.cookiemarkListeners || [];
window.cookiemarkListeners.push(function (googleState, categories) {
// googleState: { analytics_storage: 'granted', ad_storage: 'denied', ... }
// categories: { necessary: true, preferences: false, statistics: true, marketing: false }
});Das erste Argument folgt der Zuordnung im Tab Google und GTM. Bei einem neuen Besucher ruft Cookiemark die Funktion auf, sobald er eine Auswahl trifft.
Markup, das das Skript versteht
Sie können eigene Schaltflächen und Links bauen, ohne JavaScript zu schreiben. Cookiemark verarbeitet einen Klick auf jedes Element mit diesen Attributen.
| Markup | Wirkung |
|---|---|
data-cookiemark-action="accept" | Erlaubt alles. |
data-cookiemark-action="deny" | Lehnt alles ab. |
data-cookiemark-action="withdraw" | Widerruft die Einwilligung. |
data-cookiemark-action="preferences" | Öffnet das Präferenzen-Fenster. |
data-cmk-allow="marketing" | Erlaubt die genannte Kategorie und lässt den Rest der Auswahl, wie er ist. |
Ein Link auf #cookiemark-preferences | Öffnet das Präferenzen-Fenster. |
Cookiemark füllt außerdem Elemente mit den Daten des jeweiligen Besuchers. Weil das der Browser erledigt, bleibt die Seite selbst für alle gleich und kann gefahrlos gecacht werden.
| Markup | Cookiemark füllt ein |
|---|---|
data-cookiemark-consent-id | Die Einwilligungs-ID, als Text. |
data-cookiemark-consent-date | Datum und Uhrzeit der Auswahl, als Text. |
data-cookiemark-consent-state="marketing" | Das Attribut data-granted, auf true oder false gesetzt. Gestalten Sie es per CSS. |
<a href="#cookiemark-preferences">Cookie settings</a>
<button type="button" data-cookiemark-action="withdraw">Withdraw my consent</button>
<button type="button" data-cmk-allow="marketing">Allow marketing cookies</button>
<p>Your consent ID: <span data-cookiemark-consent-id></span></p>
<p>Chosen on: <span data-cookiemark-consent-date></span></p>Eine Seite mit der Cookie-Richtlinie ist ein guter Ort für die Einwilligungs-ID. Ein Besucher, der wissen möchte, wozu er zugestimmt hat, kann sie angeben, und Sie schlagen sie im Einwilligungsprotokoll nach.
Das Einwilligungs-Cookie
Cookiemark speichert die Auswahl in einem First-Party-Cookie namens cookiemark_consent. Sein Wert ist URL-kodiertes JSON wie dieses.
{"necessary":true,"preferences":false,"statistics":true,"marketing":false,
"v":1,"id":"0b0f6c1e-3d0a-4c54-9f0e-2f1c8a4e7b11","ts":1791974400}v ist die Einwilligungsversion und ts der Zeitpunkt der Auswahl in Sekunden. Ein Cookie mit einer älteren Einwilligungsversion zählt, als wäre keine Auswahl getroffen worden, daher erscheint das Banner erneut. Lesen Sie die Auswahl nach Möglichkeit über die API statt über das Cookie, denn die API berücksichtigt auch Regionen und Datenschutzsignale.
Die Cookiebot-API
Theme- und Plugin-Code, der für Cookiebot geschrieben wurde, fragt oft Cookiebot.consent.marketing ab oder hört auf CookiebotOnAccept. Aktivieren Sie im Tab Google und GTM die Option Auf die JavaScript-API von Cookiebot antworten, dann antwortet Cookiemark diesem Code. Cookiemark hält sich heraus, solange das echte Cookiebot-Skript noch auf der Seite ist.
| Cookiebot | Von Cookiemark beantwortet |
|---|---|
Cookiebot.consent.necessary, .preferences, .statistics, .marketing | Die aktuelle Auswahl. |
Cookiebot.consent.stamp | Die Einwilligungs-ID von Cookiemark. |
Cookiebot.consent.utc | Der Zeitpunkt der Auswahl, in Millisekunden. |
Cookiebot.consent.method | explicit nach einer Auswahl, implied außerhalb Ihrer Regionen. |
Cookiebot.consented, .declined, .hasResponse | Wie in Cookiemark, außer dass declined false bleibt, bis der Besucher antwortet. |
show(), hide(), renew(), withdraw(), runScripts() | Die gleichnamigen Methoden von Cookiemark. |
submitCustomConsent(preferences, statistics, marketing) | Speichert diese Auswahl. |
Die Events CookiebotOnLoad, CookiebotOnConsentReady, CookiebotOnAccept, CookiebotOnDecline, CookiebotOnDialogInit, CookiebotOnDialogDisplay und CookiebotOnTagsExecuted werden auf window ausgelöst. Die älteren Callback-Funktionen wie CookiebotCallback_OnAccept werden ebenfalls aufgerufen.