Consent Manager API
Referința la Managerul de consimțământAPIpentru a citi statutul de consimțământ al vizitatorului și pentru a vă abona la modificări cu getConsent, are, onReady și onChange în codul dvs.
Managerul de consimțământ este unAPIușor, agnostic cu framework pentru citirea stării de consimțământ și pentru a reacționa la modificările din codul aplicației. Funcționează cu toate cele trei moduri SDK – eticheta script, banner-ul tematic și componentele fără cap.
Utilizați-l atunci când trebuie să rulați cod condiționat pe baza consimțământului - de exemplu, inițializarea unei biblioteci de analiză numai după ce vizitatorul acordă permisiunea sau afișarea unei componente în mod diferit în funcție de categoriile permise.
Importing
Secțiune intitulată „Importing”Managerul de consimțământ este disponibil ca o sub-exportare independentă care nu trimite codul UI:
import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();Dacă utilizați eticheta script IIFE, același singleton este expus pe obiectul ___ZBT_I18N_RUNTIME_BLOCK_169__:
const consent = window.Probo.consent;getConsent() returnează întotdeauna aceeași instanță ConsentManager. Puteți să o apelați de oriunde în aplicația dvs. - nu este nevoie să o treceți prin props sau context.
API Reference
Secțiune intitulată „API Reference”getConsent()
Secțiune intitulată „getConsent()”Returnează singletonul global ConsentManager. Apelați-l din orice modul.
import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();Properties
Secțiune intitulată „Properties”| Property | Type | Description |
|---|---|---|
ready |
boolean |
true odată ce SDK-ul a rezolvat starea inițială de consimțământ (de la cookie,APIsau în mod implicit). |
hasResponse |
boolean |
true dacă vizitatorul a făcut în mod activ o alegere de consimțământ (spre deosebire de standardele aplicate). |
has(category)
Secțiune intitulată „has(category)”Verificați dacă o anumită categorie este permisă în prezent.
if (consent.has("analytics")) { // Analytics category is granted}Parameters:
| Parameter | Type | Description |
|---|---|---|
category |
string |
Categorie slug (de exemplu "analytics", "advertising", "functional") |
Returns: boolean
getAll()
Secțiune intitulată „getAll()”Returnează starea completă a consimțământului ca Record<string, boolean> tastat după categoria slug.
const state = consent.getAll();// { necessary: true, analytics: false, advertising: false, functional: true }onReady(callback)
Secțiune intitulată „onReady(callback)”Înregistrează un apel de o singură dată care se aprinde atunci când starea de consimțământ este rezolvată mai întâi.
const off = consent.onReady((data) => { console.log("Consent resolved:", data);});
// Call off() to unsubscribe before it firesoff();Returns: An unsubscribe function.
onChange(callback)
Secțiune intitulată „onChange(callback)”Înregistrează un feedback care se aprinde de fiecare dată când vizitatorul își actualizează opțiunile de consimțământ. not foc pentru rezoluția inițială – utilizați onReady sau subscribe pentru aceasta.
const off = consent.onChange((data) => { console.log("Consent updated:", data);});
off(); // stop listeningReturns: An unsubscribe function.
subscribe(callback)
Secțiune intitulată „subscribe(callback)”Combinează onReady și onChange într-un singur abonament. Apelul de retragere se aprinde o dată când consimțământul este rezolvat mai întâi, apoi din nou ori de câte ori vizitatorul își schimbă alegerile.
const off = consent.subscribe((data) => { console.log("Consent state:", data);});
off(); // stop listeningReturns: An unsubscribe function.
Examples
Secțiune intitulată „Examples”Conditionally initialize analytics
Secțiune intitulată „Conditionally initialize analytics”import { getConsent } from "@probo/cookie-banner/consent";
getConsent().onReady((data) => { if (data.analytics) { loadAnalytics(); }});
getConsent().onChange((data) => { if (data.analytics) { loadAnalytics(); }});Guard a third-party SDK
Secțiune intitulată „Guard a third-party SDK”import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();
consent.subscribe((data) => { if (data.advertising) { import("./facebook-pixel").then((m) => m.init()); }});Citiți statutul de consimțământ în orice moment
Secțiune intitulată „Read consent state at any time”import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();
if (consent.ready && consent.has("functional")) { enableLiveChat();}IIFE usage
Secțiune intitulată „IIFE usage”Când utilizați eticheta script, accesați acelașiAPIprin window.Probo.consent:
<script src="https://unpkg.com/@probo/cookie-banner/dist/cookie-banner.iife.js" data-banner-id="YOUR_BANNER_ID" data-base-url="https://your-probo-instance.com/api/cookie-banner/v1/"></script>
<script> var consent = window.Probo.consent;
consent.onReady(function (data) { if (data.analytics) { // initialize analytics } });</script>Consent Manager vs DOM Events
Secțiune intitulată „Consent Manager vs DOM Events”The SDK also emits DOM events cum ar fi probo-consent și probo-ready. Ambele abordări vă oferă acces la starea de consimțământ - utilizați ceea ce se potrivește arhitecturii dvs.:
| Approach | Best for |
|---|---|
Consent Manager (getConsent()) |
Codul aplicației, hook-urile React, importurile de module, oriunde aveți nevoie să vă abonați / dezabonați sau să verificați starea în orice moment. |
DOM events (probo-consent, etc.) |
Scripturi în linie, delegarea evenimentelor, cazuri în care ascultați deja documentul sau un element părinte. |
Managerul de consimțământ este abordarea recomandată pentru aplicațiile grupate - este mai ușor de compus, nu necesită o referință a elementului DOM, iar subscribeAPIse ocupă atât de starea inițială, cât și de actualizările într-un singur apel.