De compliancelaag waar het web van afhangt

Toestemmingsassistenten, browsers en toezichthouders zijn allemaal afhankelijk van de data die u produceert. navigator.consent is de API die uw compliance-infrastructuur machineleesbaar maakt en uw CMP transformeert tot de gezaghebbende databron waar het toestemmingsecosysteem op vertrouwt.

Meer dan een banner

Gebruikers zien de banner. Ze zien niet wat erachter zit: leveranciersbeheer over jurisdicties heen, juridisch toetsbare audit trails, realtime toestemmingsverspreiding naar downstream-verwerkers, meertalige ervaringen die voldoen aan de specificiteitseis van de AVG.

De voorgestelde specificatie navigator.consent maakt dit werk zichtbaar voor de rest van het ecosysteem. Uw leveranciersdeclaraties worden gestructureerde data die toestemmingsassistenten rechtstreeks lezen. Uw toestemmingsstatus wordt controleerbaar by design. Het CMP wordt de gezaghebbende bron waarop de gehele toestemmingsketen vertrouwt.

Van scraping bestrijden naar open en gestructureerde data bieden

Vandaag de dag reverse-engineeren toestemmingsassistenten uw DOM: knoppen scrapen, leverancierslijsten raden, klikken injecteren. Elke CMP-update kan elke extensie breken. navigator.consent vervangt deze fragiele scraping door een gestructureerde API: u declareert uw leveranciers en doelen, assistenten lezen de metadata rechtstreeks.

1// Check which regulations apply
2const { regulations, jurisdiction } =
3 await navigator.consent.getRegulations();
4// → { regulations: ["gdpr", "eprivacy"], jurisdiction: "FR", … }
5
6// Register your consent interface
7const { registrationId } =
8 await navigator.consent.registerInterface({
9 vendor: "My CMP",
10 versionIdentifier: "2.4.1",
11 regulation: regulations[0] ?? "gdpr",
12 jurisdiction: jurisdiction ?? "EU",
13 });
14
15// Declare processing purposes with their legal basis
16await navigator.consent.registerPurposes([
17 {
18 id: "analytics",
19 name: "Analytics",
20 legalBasis: "legitimate_interest",
21 },
22 {
23 id: "advertising",
24 name: "Advertising",
25 legalBasis: "consent",
26 },
27 {
28 id: "functional",
29 name: "Functional",
30 legalBasis: "legitimate_interest",
31 },
32]);
33
34// Declare vendors and link them to purposes
35await navigator.consent.registerVendors([
36 {
37 id: "google-analytics",
38 name: "Google Analytics",
39 domain: "analytics.google.com",
40 privacyPolicyUrl: "https://…/privacy",
41 purposeIds: ["analytics"],
42 },
43 {
44 id: "hotjar",
45 name: "Hotjar",
46 domain: "hotjar.com",
47 privacyPolicyUrl: "https://…/privacy",
48 purposeIds: ["analytics", "advertising"],
49 },
50]);
51
52// Signal the assistant before showing your banner
53// Empty scope = general prompt; the assistant gets
54// a chance to apply user preferences first
55const snap = await navigator.consent.requestConsent();
56
57// If preferences were applied, skip your UI
58if (Object.values(snap.purposes).some(v => v !== "unset")) {
59 applyConsent(snap);
60} else {
61 showConsentBanner();
62}

Wat u wint

Extensies breken uw UI niet meer

Geen supporttickets meer wanneer Consent-o-matic een update uitbrengt die uw banner breekt. Extensies werken met gestructureerde metadata, niet met uw DOM.

CDN-besparingen op schaal

Wanneer een toestemmingsassistent toestemming afhandelt via de API, hoeft uw volledige UI-bundel (JS, CSS, lettertypen, afbeeldingen) nooit te laden. Op schaal is dit meetbaar.

Controleerbaar by design

Elke voorkeurswijziging wordt gelogd met provenance en tijdstempels. Compliancebewijs is ingebouwd in het protocol, niet er achteraf aan toegevoegd.

U definieert de bron van waarheid

Toestemmingsassistenten zijn afhankelijk van uw leveranciers- en doeldeclaraties. Het ecosysteem leest van u, niet om u heen.

Één integratie, elke assistent

Eén enkele API-integratie vervangt N extensiespecifieke workarounds. Elke huidige en toekomstige toestemmingsassistent gebruikt hetzelfde kanaal.

Reguleringscontext ingebouwd

Geen eigen IP-geolocatie meer nodig om te raden welk kader van toepassing is. De browser levert de reguleringscontext rechtstreeks via getRegulations(). Eén bewegend onderdeel minder dat u en uw klanten in gevaar kan brengen.

Wat niet verandert

navigator.consent is een transportlaag. Het vervangt niet uw juridische, compliance- of UX-verantwoordelijkheden.

Uw toestemmings-UI

U presenteert toestemmingsinformatie en verzamelt keuzes via uw eigen interface. De API coördineert, het schrijft geen UX voor.

Uw complianceverplichtingen

U blijft het systeem van registratie voor toestemmingsbewijs. De API voegt een coördinatiekanaal toe, geen vervanging.

Uw scope en persistentie

U definieert de toestemmingsscope (origin, domein, eTLD+1) en het persistentiebeleid. De browser overschrijft dit niet.

Uw leveranciersrelaties

Open registratiemodel. Geen toelatingslijsten, geen attestatiepoorten, geen tussenpersoon tussen u en uw leveranciers.

CMP-methoden

Al deze methoden draaien in DOM-context. Scripts in extensiecontext kunnen ze niet aanroepen. De browser handhaaft deze grens.

Begin met integreren

Specificatie

De volledige API-specificatie met types, methoden en gedrag.

Lees de RFC

Shim & demo

Een werkende polyfill voor lokaal experimenteren.

Probeer de shim