← Cloudflare Zaraz / zaraz / consent-management
Consent API
Kontext
Consent API umožňuje programově řídit všechny aspekty programu Consent Management. Patří sem správa modálního okna, stavu souhlasu a získávání informací o nakonfigurovaných účelech.
Pomocí Consent API můžete propojit předvolby Zaraz Consent s externí platformou pro správu souhlasu, přizpůsobit si modální okno se souhlasem nebo omezit správu souhlasu jen na uživatele z konkrétních regionů.
Události
Consent API Ready
Může se hodit vědět, kdy je Consent API na stránce plně načteno, aby se kód pracující s jeho metodami a vlastnostmi nespouštěl předčasně.
document.addEventListener("zarazConsentAPIReady", () => {
// do things with the Consent API
});Consent Choices Updated
Tato událost se aktivuje pokaždé, když uživatel změní své předvolby souhlasu. Lze ji použít k reakci na změny souhlasu, například při aktualizaci nástroje o nové předvolby souhlasu.
document.addEventListener("zarazConsentChoicesUpdated", () => {
// read the new consent preferences using `zaraz.consent.getAll();` and do things with it
});Vlastnosti
Následují vlastnosti zaraz.consent objekt.
-
modalboolean- Získejte nebo nastavte aktuální stav viditelnosti modálního dialogu pro souhlas.
-
purposesobjekt pouze pro čtení- Objekt obsahující všechny nakonfigurované účely s jejich ID, názvem, popisem a pořadím.
-
APIReadyboolean, jen pro čtení- Určuje, zda je na stránce aktuálně dostupné Consent API.
Metody
Get
zaraz.consent.get(purposeId);get(purposeId):boolean | undefined
Získejte aktuální stav souhlasu pro daný účel pomocí ID účelu.
true: Souhlas byl udělen.false: Souhlas nebyl udělen.undefined: Účel neexistuje.
Parametry
-
purposeIdstring- ID reprezentující účel.
Set
zaraz.consent.set(consentPreferences);set(consentPreferences):undefined
Nastavení stavu souhlasu pro některé účely pomocí ID účelu.
Parametry
-
consentPreferencesobjekt-
{ purposeId: boolean }objekt popisující účely, které chcete nastavit, a jejich příslušný stav souhlasu.
-
Get All
zaraz.consent.getAll();getAll():{ purposeId: boolean }
Vrátí objekt se stavem souhlasu pro všechny účely.
Set All
zaraz.consent.setAll(consentStatus);setAll(consentStatus):undefined
Nastavení stavu souhlasu pro všechny účely najednou.
Parametry
-
consentStatusboolean- Určuje, zda byl souhlas udělen, nebo ne.
Get All Checkboxes
zaraz.consent.getAllCheckboxes();getAllCheckboxes():{ purposeId: boolean }
Vrátí objekt se stavem zaškrtávacích políček všech účelů.
Set Checkboxes
zaraz.consent.setCheckboxes(checkboxesStatus);setCheckboxes(checkboxesStatus):undefined
Nastavení stavu souhlasu pro některé účely pomocí ID účelu.
Parametry
-
checkboxesStatusobjekt-
{ purposeId: boolean }objekt popisující zaškrtávací políčka, která chcete nastavit, a jejich příslušný stav zaškrtnutí.
-
Set All Checkboxes
zaraz.consent.setAllCheckboxes(checkboxStatus);setAllCheckboxes(checkboxStatus):undefined
Nastavte checkboxStatus stav pro všechny účely v modálním okně souhlasu najednou.
Parametry
-
checkboxStatusboolean- Určuje, zda mají být účely označeny jako zaškrtnuté, nebo ne.
Send queued events
zaraz.consent.sendQueuedEvents();sendQueuedEvents():undefined
Pokud se některé události založené na Pageview neodeslaly kvůli chybějícímu souhlasu, lze je touto metodou odeslat poté, co byl souhlas udělen.
Příklady
Omezení kontrol souhlasu podle polohy
Kombinací více funkcí Zarazu můžete pro některé návštěvníky Consent Management fakticky vypnout. Pokud ho chcete použít například jen pro návštěvníky z EU, můžete vypnout automatické zobrazování okna se žádostí o souhlas a přidat nástroj Custom HTML s následujícím skriptem:
<script>
function getCookie(name) {
const value = `; ${document.cookie}`
return value?.split(`; ${name}=`)[1]?.split(";")[0]
}
function handleZarazConsentAPIReady() {
const consent_cookie = getCookie("cf_consent")
const isEUCountry = "{{system.device.location.isEUCountry}}" === "1"
if (!consent_cookie) {
if (isEUCountry) {
zaraz.consent.modal = true
} else {
zaraz.consent.setAll(true)
zaraz.consent.sendQueuedEvents()
}
}
}
if (zaraz.consent?.APIReady) {
handleZarazConsentAPIReady()
} else {
document.addEventListener("zarazConsentAPIReady", handleZarazConsentAPIReady)
}
</script>Poznámka: pokud jste si upravili název cookie pro Consent Manager, použijte ve výše uvedeném úryvku kódu tento upravený název místo "cf_consent".
Pokud tomuto nástroji Custom HTML povolíte běh bez vyžadování souhlasu, modální okno se zobrazí všem návštěvníkům z EU, zatímco ostatním návštěvníkům bude souhlas udělen automaticky. Přepínač {{ system.device.location.isEUCountry }} vlastnost bude 1 pokud je návštěvník z země EU a 0 v opačném případě. Podobným způsobem můžete k úpravě chování správy souhlasu použít i jakoukoli jinou vlastnost nebo proměnnou, například {{ system.device.location.country }} a omezte kontroly souhlasu podle kódu země.