La couche de conformité dont le web dépend

Les assistants de consentement, les navigateurs et les régulateurs dépendent tous des données que vous produisez. navigator.consent est l’API qui rend votre infrastructure de conformité lisible par les machines, et fait de votre CMP la source de données de référence sur laquelle repose l’écosystème du consentement.

Bien plus qu’une bannière

Les utilisateurs voient la bannière. Ils ne voient pas ce qu’il y a derrière : la gestion des fournisseurs à travers les juridictions, des pistes d’audit opposables, la propagation du consentement en temps réel aux sous-traitants, les expériences multilingues conformes à l’exigence de spécificité du RGPD.

La spécification proposée navigator.consent rend ce travail visible pour le reste de l’écosystème. Vos déclarations de fournisseurs deviennent des données structurées que les assistants de consentement lisent directement. Votre état de consentement devient auditable par conception. La CMP devient la source faisant autorité sur laquelle repose toute la chaîne de consentement.

Ne plus subir le scraping : passer aux données ouvertes et structurées

Aujourd’hui, les assistants de consentement font de la rétro-ingénierie sur votre DOM : scrapent les boutons, devinent les listes de fournisseurs, injectent des clics. Chaque mise à jour de CMP peut casser chaque extension. navigator.consent remplace ce scraping fragile par une API structurée : vous déclarez vos fournisseurs et finalités, les assistants lisent directement les métadonnées.

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}

Ce que vous y gagnez

Les extensions cessent de casser votre interface

Plus de tickets de support lorsque Consent-o-matic pousse une mise à jour qui casse votre bannière. Les extensions interagissent avec des métadonnées structurées, pas votre DOM.

Économies CDN à grande échelle

Lorsqu’un assistant de consentement gère le consentement via l’API, votre bundle complet d’interface (JS, CSS, polices, images) n’a jamais besoin d’être chargé. À grande échelle, ça se chiffre.

Auditable par conception

Chaque mutation de préférence est enregistrée avec provenance et horodatage. La preuve de conformité est intégrée au protocole, pas plaquée après coup.

Vous définissez la vérité de référence

Les assistants de consentement dépendent de vos déclarations de fournisseurs et de finalités. L’écosystème s’appuie sur vos données au lieu de les contourner.

Une intégration, tous les assistants

Une seule intégration API remplace N contournements spécifiques par extension. Chaque assistant de consentement actuel et futur utilise le même canal.

Contexte réglementaire intégré

Plus besoin de maintenir votre propre géolocalisation IP pour deviner quel cadre juridique s'applique. Le navigateur fournit directement le contexte réglementaire via getRegulations(). Une pièce mobile en moins susceptible de mettre en risque vos clients et vous.

Ce qui ne change pas

navigator.consent est une couche de transport. Elle ne remplace pas vos responsabilités juridiques, de conformité ou d’expérience utilisateur.

Votre interface de consentement

Vous présentez les informations de consentement et recueillez les choix via votre propre interface. L’API coordonne, elle n’impose pas d’expérience utilisateur.

Vos obligations de conformité

Vous restez le système de référence pour les preuves de consentement. L’API ajoute un canal de coordination, pas un remplacement.

Votre périmètre et persistance

Vous définissez le périmètre du consentement (origin, domain, eTLD+1) et la politique de persistance. Le navigateur ne s'y substitue pas.

Vos relations fournisseurs

Modèle d’enregistrement ouvert. Pas de listes blanches, pas de portes d’attestation, pas d’intermédiaire entre vous et vos fournisseurs.

Méthodes côté CMP

Toutes ces méthodes s’exécutent dans le contexte DOM. Les scripts en contexte d’extension ne peuvent pas les appeler. Le navigateur applique cette frontière.

Commencer l’intégration

Spécification

La spécification complète de l’API avec les types, méthodes et comportements.

Lire le RFC

JSON Schemas

Définitions de payloads lisibles par les machines pour tous les types de l’API.

Voir les schémas

Shim & démo

Un polyfill fonctionnel pour l’expérimentation locale.

Essayer le shim