Sari la conținut

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.

View as Markdown

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.

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.

Returns the global ConsentManager singleton. Call it from any module.

import { getConsent } from "@probo/cookie-banner/consent";

const consent = getConsent();
PropertyTypeDescription
readybooleantrue după ce SDK-ul a rezolvat starea inițială de consimțământ (de la cookie, API sau în mod implicit).
hasResponsebooleantrue 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:

ParameterTypeDescription
categorystringThe category slug (e.g. "analytics", "advertising", "functional")

Returns: boolean

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 }

Î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ă - utilizare onReady or subscribe Pentru aceasta.

const off = consent.onChange((data) => {
  console.log("Consent updated:", data);
});

off(); // stop listening

Returns: An unsubscribe function.

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.

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

const consent = getConsent();

if (consent.ready && consent.has("functional")) {
  enableLiveChat();
}

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>

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

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

Ultima actualizare: