JavaScript-API
De meeste sites hebben deze pagina nooit nodig. Lees verder als je eigen code moet weten wat een bezoeker heeft toegestaan, of als je eigen knoppen en links wilt.
Begin hier: wacht op de status
De regel van Cookiemark staat als eerste in je head en draait meteen, dus window.Cookiemark bestaat voor elk script eronder. De keuze van de bezoeker is iets later bekend, zodra de pagina is gelezen. Gebruik het event ready om de status te weten te komen als de pagina laadt, en change om te volgen wat er daarna gebeurt.
Cookiemark.on('ready', function (detail) {
if (detail.consent.statistics) {
startMyAnalytics();
}
});
Cookiemark.on('change', function (detail) {
if (detail.consent.marketing) {
loadChatWidget();
}
});Vóór je eerste publicatie bevat het script niets, en bestaat window.Cookiemark niet. Controleer of het bestaat voordat je het aanroept, zodat je code ook werkt op een site die nog een concept is.
Een functie die je met on('ready') toevoegt nadat de status bekend is, draait meteen. De andere events worden niet herhaald voor listeners die later komen. Samen missen ready en change nooit iets.
Elk event wordt ook op window verstuurd als CustomEvent met het voorvoegsel cookiemark:. De gegevens staan in event.detail.
window.addEventListener('cookiemark:change', function (event) {
console.log(event.detail.action, event.detail.consent);
});Eigenschappen
Alle eigenschappen zijn alleen-lezen en tonen altijd de huidige status.
| Eigenschap | Waarde |
|---|---|
Cookiemark.consent | Een object met necessary, preferences, statistics en marketing, elk true of false. necessary is altijd true. |
Cookiemark.hasResponse | True als de bezoeker een keuze heeft gemaakt die nog geldig is. |
Cookiemark.consented | True als minstens één optionele categorie is toegestaan. |
Cookiemark.declined | True als geen enkele optionele categorie is toegestaan. |
Cookiemark.consentId | Het willekeurige ID van de toestemming van deze bezoeker, zoals in het consentlog. Leeg tot de bezoeker kiest. |
Cookiemark.consentTime | Wanneer de opgeslagen keuze is gemaakt, in milliseconden sinds 1970. Nul zonder keuze. |
declined is ook true voor een nieuwe bezoeker die nog niet heeft geantwoord, omdat er op dat moment niets is toegestaan. Controleer ook hasResponse als je moet weten dat de bezoeker nee heeft gezegd.
if (Cookiemark.hasResponse && Cookiemark.declined) {
// The visitor chose to reject everything.
}Methoden
| Methode | Wat het doet |
|---|---|
show() | Toont de banner. |
hide() | Verbergt de banner zonder een keuze op te slaan. |
showPreferences() | Opent het voorkeurenvenster. renew() doet hetzelfde. |
acceptAll() | Staat elke categorie toe, net als de knop om te accepteren. |
denyAll() | Weigert elke optionele categorie, net als de knop om te weigeren. |
withdraw() | Trekt de toestemming in. Het log legt het vast als intrekking. |
submitConsent(choice) | Slaat een eigen keuze op. Categorieën die je weglaat, tellen als geweigerd. |
runScripts() | Voert tegengehouden scripts uit die nu zijn toegestaan. Gebruik het nadat je zelf gemarkeerde scripts aan de pagina hebt toegevoegd. |
googleConsentState() | Geeft terug wat Cookiemark Google vertelt, signaal voor signaal. |
on(name, fn) en off(name, fn) | Voegt een functie voor een event toe of haalt hem weg. De naam werkt met of zonder cookiemark:. |
Cookiemark.submitConsent({ preferences: true, statistics: true, marketing: false });Elke keuze die je via de API opslaat, is een echte keuze. Die zet de cookie, komt in het consentlog en geeft scripts vrij of trekt ze in, precies zoals een klik in de banner.
Events
| Event | Wanneer |
|---|---|
ready | Eén keer per paginaweergave, als Cookiemark de status kent. |
change | Na elke keuze die de bezoeker maakt. |
accept | Na een keuze die minstens één categorie toestaat, en als de pagina laadt voor een bezoeker die dat eerder deed. |
decline | Na een keuze die niets toestaat, en als de pagina laadt voor een bezoeker die eerder alles weigerde. |
dialog-open | Als de banner of het voorkeurenvenster verschijnt. |
dialog-close | Als het voorkeurenvenster sluit. |
scripts-executed | Als Cookiemark de tegengehouden scripts heeft uitgevoerd, bij het laden van de pagina en na elke keuze. |
Elke listener krijgt hetzelfde object. consent bevat de vier categorieën. action is na een keuze accept_all, deny_all, custom, withdraw of signal, en anders leeg. first is true als dit de eerste keuze van de bezoeker is.
De listener-wachtrij
window.cookiemarkListeners is een wachtrij voor code die mogelijk vóór het script van Cookiemark draait, zoals een Tag Manager-template. Push er een functie op. Cookiemark roept die aan zodra de keuze bekend is, en opnieuw na elke wijziging.
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 }
});Het eerste argument volgt de koppeling op het tabblad Google en GTM. Bij een nieuwe bezoeker roept Cookiemark de functie aan zodra die kiest.
Markup die het script begrijpt
Je kunt eigen knoppen en links bouwen zonder JavaScript te schrijven. Cookiemark verwerkt een klik op elk element met deze attributen.
| Markup | Effect |
|---|---|
data-cookiemark-action="accept" | Staat alles toe. |
data-cookiemark-action="deny" | Weigert alles. |
data-cookiemark-action="withdraw" | Trekt de toestemming in. |
data-cookiemark-action="preferences" | Opent het voorkeurenvenster. |
data-cmk-allow="marketing" | Staat de genoemde categorie toe en laat de rest van de keuze zoals die is. |
Een link naar #cookiemark-preferences | Opent het voorkeurenvenster. |
Cookiemark vult ook elementen in met de eigen gegevens van de bezoeker. Omdat de browser dat doet, blijft de pagina zelf voor iedereen hetzelfde en kun je hem veilig cachen.
| Markup | Cookiemark vult in |
|---|---|
data-cookiemark-consent-id | Het consent-ID, als tekst. |
data-cookiemark-consent-date | De datum en tijd van de keuze, als tekst. |
data-cookiemark-consent-state="marketing" | Het attribuut data-granted, met de waarde true of false. Dat kun je met CSS opmaken. |
<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>Een pagina met je cookiebeleid is een goede plek voor het consent-ID. Een bezoeker die wil weten waarmee hij heeft ingestemd, kan het noemen, en jij zoekt het op in het consentlog.
De consentcookie
Cookiemark slaat de keuze op in een first-party cookie met de naam cookiemark_consent. De waarde is URL-gecodeerde JSON, zoals hieronder.
{"necessary":true,"preferences":false,"statistics":true,"marketing":false,
"v":1,"id":"0b0f6c1e-3d0a-4c54-9f0e-2f1c8a4e7b11","ts":1791974400}v is de consentversie en ts het tijdstip van de keuze in seconden. Een cookie met een oudere consentversie telt als geen keuze, dus dan verschijnt de banner opnieuw. Lees de keuze waar mogelijk uit via de API en niet uit de cookie, want de API weet ook van regio's en privacysignalen.
De Cookiebot-API
Thema- en plugincode die voor Cookiebot is geschreven, vraagt vaak Cookiebot.consent.marketing op of luistert naar CookiebotOnAccept. Zet Antwoorden op de JavaScript-API van Cookiebot aan op het tabblad Google en GTM, dan geeft Cookiemark die code antwoord. Cookiemark doet dat niet zolang het echte script van Cookiebot nog op de pagina staat.
| Cookiebot | Antwoord van Cookiemark |
|---|---|
Cookiebot.consent.necessary, .preferences, .statistics, .marketing | De huidige keuze. |
Cookiebot.consent.stamp | Het consent-ID van Cookiemark. |
Cookiebot.consent.utc | Het tijdstip van de keuze, in milliseconden. |
Cookiebot.consent.method | explicit na een keuze, implied buiten je regio's. |
Cookiebot.consented, .declined, .hasResponse | Zoals in Cookiemark, behalve dat declined false blijft tot de bezoeker antwoordt. |
show(), hide(), renew(), withdraw(), runScripts() | De methoden van Cookiemark met dezelfde naam. |
submitCustomConsent(preferences, statistics, marketing) | Slaat die keuze op. |
De events CookiebotOnLoad, CookiebotOnConsentReady, CookiebotOnAccept, CookiebotOnDecline, CookiebotOnDialogInit, CookiebotOnDialogDisplay en CookiebotOnTagsExecuted worden op window verstuurd. Ook de oudere callbackfuncties, zoals CookiebotCallback_OnAccept, worden aangeroepen.