Sari la conținut

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.

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.

Returnează singletonul global ConsentManager. Apelați-l din orice modul.

import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();
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).

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

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 }

Î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.

Î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 listening

Returns: An unsubscribe function.

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 listening

Returns: An unsubscribe function.

import { getConsent } from "@probo/cookie-banner/consent";
getConsent().onReady((data) => {
if (data.analytics) {
loadAnalytics();
}
});
getConsent().onChange((data) => {
if (data.analytics) {
loadAnalytics();
}
});
import { getConsent } from "@probo/cookie-banner/consent";
const consent = getConsent();
consent.subscribe((data) => {
if (data.advertising) {
import("./facebook-pixel").then((m) => m.init());
}
});
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();
}

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>

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.

Ultima actualizare: