API JavaScript
La maggior parte dei siti non ha mai bisogno di questa pagina. Leggila quando il tuo codice deve sapere cosa ha consentito un visitatore, o quando vuoi pulsanti e link tuoi.
Inizia da qui: aspetta lo stato
La riga di Cookiemark è la prima nel tuo head e parte subito, quindi window.Cookiemark esiste per ogni script che sta sotto. La scelta del visitatore si conosce poco dopo, quando la pagina è stata letta. Usa l'evento ready per conoscere lo stato al caricamento della pagina e change per seguire quello che succede dopo.
Cookiemark.on('ready', function (detail) {
if (detail.consent.statistics) {
startMyAnalytics();
}
});
Cookiemark.on('change', function (detail) {
if (detail.consent.marketing) {
loadChatWidget();
}
});Prima della tua prima pubblicazione lo script non contiene niente e window.Cookiemark non esiste. Verifica che esista prima di chiamarlo, così il tuo codice funziona anche su un sito ancora in bozza.
Una funzione che aggiungi con on('ready') dopo che lo stato è noto parte subito. Gli altri eventi non vengono ripetuti per i listener aggiunti in ritardo. Insieme, ready e change non perdono mai nulla.
Ogni evento viene inviato anche su window come CustomEvent con il prefisso cookiemark:. I dati sono in event.detail.
window.addEventListener('cookiemark:change', function (event) {
console.log(event.detail.action, event.detail.consent);
});Proprietà
Tutte le proprietà sono di sola lettura e mostrano sempre lo stato attuale.
| Proprietà | Valore |
|---|---|
Cookiemark.consent | Un oggetto con necessary, preferences, statistics e marketing, ognuno true o false. necessary è sempre true. |
Cookiemark.hasResponse | True quando il visitatore ha fatto una scelta ancora valida. |
Cookiemark.consented | True quando è consentita almeno una categoria facoltativa. |
Cookiemark.declined | True quando non è consentita nessuna categoria facoltativa. |
Cookiemark.consentId | L'ID casuale del consenso di questo visitatore, come nel registro dei consensi. Vuoto finché non sceglie. |
Cookiemark.consentTime | Quando è stata fatta la scelta salvata, in millisecondi dal 1970. Zero se non c'è una scelta. |
declined è true anche per un nuovo visitatore che non ha ancora risposto, perché in quel momento non è consentito niente. Controlla anche hasResponse quando ti serve sapere che il visitatore ha detto no.
if (Cookiemark.hasResponse && Cookiemark.declined) {
// The visitor chose to reject everything.
}Metodi
| Metodo | Cosa fa |
|---|---|
show() | Mostra il banner. |
hide() | Nasconde il banner senza salvare una scelta. |
showPreferences() | Apre la finestra delle preferenze. renew() fa la stessa cosa. |
acceptAll() | Consente tutte le categorie, come il pulsante per accettare. |
denyAll() | Rifiuta tutte le categorie facoltative, come il pulsante per rifiutare. |
withdraw() | Revoca il consenso. Nel registro compare come revoca. |
submitConsent(choice) | Salva una scelta tua. Le categorie che lasci fuori contano come rifiutate. |
runScripts() | Esegue gli script bloccati che ora sono consentiti. Usalo dopo aver aggiunto tu stesso alla pagina script contrassegnati. |
googleConsentState() | Restituisce cosa comunica Cookiemark a Google, segnale per segnale. |
on(name, fn) e off(name, fn) | Aggiunge o rimuove una funzione per un evento. Il nome funziona con o senza cookiemark:. |
Cookiemark.submitConsent({ preferences: true, statistics: true, marketing: false });Ogni scelta che salvi tramite l'API è una scelta a tutti gli effetti. Imposta il cookie, finisce nel registro dei consensi e sblocca o revoca gli script, esattamente come un clic nel banner.
Eventi
| Evento | Quando |
|---|---|
ready | Una volta per visualizzazione di pagina, quando Cookiemark conosce lo stato. |
change | Dopo ogni scelta del visitatore. |
accept | Dopo una scelta che consente almeno una categoria, e al caricamento della pagina per un visitatore che l'aveva già fatto. |
decline | Dopo una scelta che non consente niente, e al caricamento della pagina per un visitatore che aveva già rifiutato. |
dialog-open | Quando compare il banner o la finestra delle preferenze. |
dialog-close | Quando si chiude la finestra delle preferenze. |
scripts-executed | Quando Cookiemark ha eseguito gli script bloccati, al caricamento della pagina e dopo ogni scelta. |
Ogni listener riceve lo stesso oggetto. consent contiene le quattro categorie. action vale accept_all, deny_all, custom, withdraw o signal dopo una scelta, ed è vuoto negli altri casi. first è true quando si tratta della prima scelta del visitatore.
La coda dei listener
window.cookiemarkListeners è una coda per il codice che potrebbe partire prima dello script di Cookiemark, come un modello di Tag Manager. Aggiungi una funzione alla coda. Cookiemark la chiama quando la scelta è nota, e di nuovo dopo ogni modifica.
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 }
});Il primo argomento segue l'associazione nella scheda Google e GTM. Per un nuovo visitatore, Cookiemark chiama la funzione quando sceglie.
Markup che lo script capisce
Puoi creare pulsanti e link tuoi senza scrivere JavaScript. Cookiemark gestisce un clic su qualsiasi elemento con questi attributi.
| Markup | Effetto |
|---|---|
data-cookiemark-action="accept" | Consente tutto. |
data-cookiemark-action="deny" | Rifiuta tutto. |
data-cookiemark-action="withdraw" | Revoca il consenso. |
data-cookiemark-action="preferences" | Apre la finestra delle preferenze. |
data-cmk-allow="marketing" | Consente la categoria indicata e lascia invariato il resto della scelta. |
Un link a #cookiemark-preferences | Apre la finestra delle preferenze. |
Cookiemark compila anche elementi con i dati del visitatore. Dato che è il browser a farlo, la pagina resta uguale per tutti e si può mettere in cache senza problemi.
| Markup | Cookiemark inserisce |
|---|---|
data-cookiemark-consent-id | L'ID di consenso, come testo. |
data-cookiemark-consent-date | La data e l'ora della scelta, come testo. |
data-cookiemark-consent-state="marketing" | L'attributo data-granted, impostato su true o false. Puoi dargli uno stile con il 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>La pagina dell'informativa sui cookie è un buon posto per l'ID di consenso. Un visitatore che chiede a cosa ha acconsentito può indicartelo e tu lo cerchi nel registro dei consensi.
Il cookie di consenso
Cookiemark salva la scelta in un cookie di prima parte chiamato cookiemark_consent. Il suo valore è JSON con codifica URL, come questo.
{"necessary":true,"preferences":false,"statistics":true,"marketing":false,
"v":1,"id":"0b0f6c1e-3d0a-4c54-9f0e-2f1c8a4e7b11","ts":1791974400}v è la versione del consenso e ts l'ora della scelta in secondi. Un cookie con una versione del consenso più vecchia conta come nessuna scelta, quindi il banner ricompare. Dove puoi, leggi la scelta tramite l'API invece che dal cookie, perché l'API conosce anche le regioni e i segnali di privacy.
L'API Cookiebot
Il codice di temi e plugin scritto per Cookiebot spesso interroga Cookiebot.consent.marketing o resta in ascolto di CookiebotOnAccept. Attiva Rispondi all'API JavaScript di Cookiebot nella scheda Google e GTM e Cookiemark risponde a quel codice. Si fa da parte quando sulla pagina c'è ancora il vero script di Cookiebot.
| Cookiebot | Risposta di Cookiemark |
|---|---|
Cookiebot.consent.necessary, .preferences, .statistics, .marketing | La scelta attuale. |
Cookiebot.consent.stamp | L'ID di consenso di Cookiemark. |
Cookiebot.consent.utc | L'ora della scelta, in millisecondi. |
Cookiebot.consent.method | explicit dopo una scelta, implied fuori dalle tue regioni. |
Cookiebot.consented, .declined, .hasResponse | Come in Cookiemark, tranne che declined resta false finché il visitatore non risponde. |
show(), hide(), renew(), withdraw(), runScripts() | I metodi di Cookiemark con lo stesso nome. |
submitCustomConsent(preferences, statistics, marketing) | Salva quella scelta. |
Gli eventi CookiebotOnLoad, CookiebotOnConsentReady, CookiebotOnAccept, CookiebotOnDecline, CookiebotOnDialogInit, CookiebotOnDialogDisplay e CookiebotOnTagsExecuted vengono attivati su window. Vengono chiamate anche le vecchie funzioni di callback come CookiebotCallback_OnAccept.