Kostenlos startenDashboard
Dokumentation

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.

EigenschaftWert
Cookiemark.consentEin Objekt mit necessary, preferences, statistics und marketing, jeweils true oder false. necessary ist immer true.
Cookiemark.hasResponseTrue, wenn der Besucher eine Auswahl getroffen hat, die noch gültig ist.
Cookiemark.consentedTrue, wenn mindestens eine optionale Kategorie erlaubt ist.
Cookiemark.declinedTrue, wenn keine optionale Kategorie erlaubt ist.
Cookiemark.consentIdDie zufällige ID der Einwilligung dieses Besuchers, wie im Einwilligungsprotokoll. Leer, bis er eine Auswahl trifft.
Cookiemark.consentTimeWann 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

MethodeBeschreibung
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

EventWann
readyEinmal pro Seitenaufruf, sobald Cookiemark den Status kennt.
changeNach jeder Auswahl, die der Besucher trifft.
acceptNach einer Auswahl, die mindestens eine Kategorie erlaubt, und beim Laden der Seite für einen Besucher, der das zuvor getan hat.
declineNach einer Auswahl, die nichts erlaubt, und beim Laden der Seite für einen Besucher, der zuvor abgelehnt hat.
dialog-openWenn das Banner oder das Präferenzen-Fenster erscheint.
dialog-closeWenn sich das Präferenzen-Fenster schließt.
scripts-executedWenn 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.

MarkupWirkung
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.

MarkupCookiemark füllt ein
data-cookiemark-consent-idDie Einwilligungs-ID, als Text.
data-cookiemark-consent-dateDatum 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.

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.

CookiebotVon Cookiemark beantwortet
Cookiebot.consent.necessary, .preferences, .statistics, .marketingDie aktuelle Auswahl.
Cookiebot.consent.stampDie Einwilligungs-ID von Cookiemark.
Cookiebot.consent.utcDer Zeitpunkt der Auswahl, in Millisekunden.
Cookiebot.consent.methodexplicit nach einer Auswahl, implied außerhalb Ihrer Regionen.
Cookiebot.consented, .declined, .hasResponseWie 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.