Consent Manager API
Referința la Managerul de consimțământ API pentru 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 un API uș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
Section titled “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 window object:
const consent = window.Probo.consent;
getConsent() always returns the same 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
Section titled “API Reference”getConsent()
Section titled “getConsent()”Returns the global ConsentManager singleton. Call it from any module.
import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();
Properties
Section titled “Properties”| Property | Type | Description |
|---|---|---|
ready | boolean | true după ce SDK-ul a rezolvat starea inițială de consimțământ (de la cookie, API sau î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)
Section titled “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 | The category slug (e.g. "analytics", "advertising", "functional") |
Returns: boolean
getAll()
Section titled “getAll()”Returnează starea de consimțământ complet ca a Record<string, boolean> keyed by category slug.
const state = consent.getAll();
// { necessary: true, analytics: false, advertising: false, functional: true }
onReady(callback)
Section titled “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 fires
off();
Returns: An unsubscribe function.
onChange(callback)
Section titled “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ă - utilizare onReady or subscribe Pentru aceasta.
const off = consent.onChange((data) => {
console.log("Consent updated:", data);
});
off(); // stop listening
Returns: An unsubscribe function.
subscribe(callback)
Section titled “subscribe(callback)”Combines onReady and onChange Callback-ul 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 listening
Returns: An unsubscribe function.
Examples
Section titled “Examples”Conditionally initialize analytics
Section titled “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
Section titled “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țiunea intitulată „Citiți statutul de consimțământ în orice moment”import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();
if (consent.ready && consent.has("functional")) {
enableLiveChat();
}
IIFE usage
Section titled “IIFE usage”Atunci când utilizați eticheta script, accesați același API prin 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
Section titled “Consent Manager vs DOM Events”The SDK also emits DOM events like probo-consent and probo-readyAmbele 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 subscribe API gestionează atât starea inițială, cât și actualizările într-un singur apel.