Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.
Ce guide explique comment intégrer le SDK CMP UniConsent dans votre application React Native pour la gestion du consentement GDPR IAB TCF 2.4.
Vous trouverez une application de démonstration intégrée avec ce SDK dans le répertoire demo fourni avec le package SDK.
uniconsent-react-native-sdk-26.11.0.zip), téléchargé depuis votre tableau de bord UniConsent ou obtenu auprès du support.Téléchargez et décompressez le package SDK (par ex. uniconsent-react-native-sdk-26.11.0.zip). À l'intérieur, vous trouverez :
uniconsent-react-native-sdk-26.11.0.tgz — Package SDK installable via npmuniconsent-sdk/ — Fichiers de bibliothèque SDK pré-compilésdemo/ — Application de démonstrationREADME.md — DocumentationInstallez le fichier .tgz avec npm ou Yarn :
# Replace <path-to-package-file.tgz> with the actual path to the file
npm install <path-to-package-file.tgz>
# or
yarn add <path-to-package-file.tgz>
Exemple : Si vous placez le fichier .tgz à la racine de votre projet :
npm install ./uniconsent-react-native-sdk-26.11.0.tgz
# or
yarn add file:./uniconsent-react-native-sdk-26.11.0.tgz
Ce SDK nécessite les dépendances pairs suivantes :
npm install react-native-webview react-native-default-preference react-native-device-info
# or
yarn add react-native-webview react-native-default-preference react-native-device-info
Si vous développez pour iOS, accédez au répertoire ios de votre projet et installez les pods :
cd ios
pod install
cd ..
Avant d'intégrer le SDK, personnalisez l'apparence de la bannière de consentement dans le tableau de bord UniConsent pour qu'elle corresponde à votre marque et optimise les taux de consentement.
Accédez à Projects → Select your Project → Settings → Step 5: UI & Style Settings pour configurer :
Pour un contrôle plus précis, ajoutez du CSS personnalisé dans le champ CSS Content sous l'étape 5. Ceci est recommandé pour que la bannière s'intègre nativement à votre application et obtienne le meilleur taux de consentement :
/* Example: Style the accept button to match your brand */
.unic-btn-accept {
background-color: #4CAF50;
border-radius: 8px;
font-weight: 600;
}
/* Example: Adjust banner font */
.unic-banner {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}
/* Example: Make the reject button less prominent */
.unic-btn-reject {
background-color: transparent;
border: 1px solid #ccc;
color: #666;
}
Astuce : Une interface de consentement bien adaptée à votre marque et qui semble native à votre application obtient généralement de meilleurs taux de consentement. Les utilisateurs sont plus enclins à réagir positivement face à une bannière qui correspond à l'apparence et au style qu'ils attendent.
Encapsulez le composant racine de votre application (ou la partie concernée) avec UniConsentProvider. Vous devez fournir votre licenseId (Publisher ID/pid d'UniConsent).
// Your main App file (e.g., App.tsx or index.js)
import React from 'react';
import { UniConsentProvider } from 'uniconsent-sdk';
import YourAppRootComponent from './src/YourAppRootComponent';
const App = () => {
return (
<UniConsentProvider licenseId="YOUR_LICENSE_ID">
<YourAppRootComponent />
</UniConsentProvider>
);
};
export default App;
Le SDK prend en charge trois modes d'affichage pour l'interface CMP, configurés via la prop displayMode sur UniConsentProvider :
| Mode | Description |
|---|---|
'fullScreen' | Page plein écran (par défaut) |
'bottomSheet' | Panneau modal ancré en bas de l'écran |
'dialog' | Boîte de dialogue modale centrée |
// Full screen (default — no prop needed)
<UniConsentProvider licenseId="YOUR_LICENSE_ID">
// Bottom sheet
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="bottomSheet">
// Bottom sheet at 70% of the screen height
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="bottomSheet" heightRatio={0.7}>
// Center dialog
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="dialog">
// Center dialog at 80% width and 60% height
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="dialog" widthRatio={0.8} heightRatio={0.6}>
Disponible à partir de la version 26.8.0 du SDK.
Les deux ratios sont optionnels — chaque mode d'affichage fonctionne sans eux. Ne passez un ratio (une fraction de l'écran, supérieure à 0 et au plus égale à 1) que pour remplacer la taille par défaut ; les valeurs invalides lèvent une RangeError :
| Prop | S'applique à | Valeur par défaut si omis |
|---|---|---|
heightRatio | 'bottomSheet', 'dialog' | Panneau : 90 % de l'écran. Dialogue : 70 % |
widthRatio | 'dialog' uniquement | 90 % de la largeur de l'écran, jusqu'à 500 |
Les ratios qui ne s'appliquent pas au mode d'affichage choisi sont ignorés ('fullScreen' ignore les deux).
Écoutez les événements du cycle de vie du SDK avec la prop onEvent sur UniConsentProvider.
Types d'événements disponibles :
'sdkInit' — Initialisation du SDK lancée'ready' — Initialisation du SDK terminée'uiDisplay' — L'interface de consentement est affichée'uiClose' — L'interface de consentement est fermée<UniConsentProvider
licenseId="YOUR_LICENSE_ID"
onEvent={(event) => {
switch (event.type) {
case 'ready':
console.log('SDK ready');
break;
case 'uiClose':
console.log('Consent UI closed');
break;
}
}}
>
<YourAppRootComponent />
</UniConsentProvider>
Utilisez le hook useConsent dans un composant à l'intérieur du Provider pour obtenir la fonction openCMP, puis appelez-la quand nécessaire (par ex. lors d'un appui sur un bouton).
import React from 'react';
import { View, Text, Button, ActivityIndicator } from 'react-native';
import { useConsent } from 'uniconsent-sdk';
const ConsentInfoComponent = () => {
const { consentStatus, isLoading, openCMP } = useConsent();
return (
<View>
<Text>Consent Status:</Text>
{isLoading ? (
<ActivityIndicator />
) : (
<Text>{consentStatus ?? 'Initializing...'}</Text>
)}
<Button
title="Manage Privacy Settings"
onPress={() => openCMP()}
disabled={isLoading}
/>
</View>
);
};
Utilisez les fonctions utilitaires pour vérifier le statut du consentement directement sans le hook :
import {
getTCString,
isEURegion,
isPurposeConsented,
isVendorConsented,
getConsentData,
} from 'uniconsent-sdk';
// Get the full TC String
const tcString = await getTCString();
// Check if user is in EU/EEA region
const inEU = await isEURegion();
// Check if a specific TCF purpose has consent (1-based ID)
const hasPurpose1 = await isPurposeConsented(1);
// Check if a specific vendor has consent (1-based ID)
const hasVendor755 = await isVendorConsented(755);
// Get all consent data as a single object
const consentData = await getConsentData();
Disponible à partir de la version 26.7.0 du SDK. Si vous créez votre propre interface de consentement de premier niveau au lieu d'afficher la webview du CMP, vous pouvez enregistrer le consentement directement :
import { agreeAll, rejectAll } from 'uniconsent-sdk';
// Grant consent for all purposes, special features and vendors
const saved = await agreeAll();
// Reject all purposes, special features and vendors
const rejected = await rejectAll();
Ces deux API enregistrent les mêmes valeurs de consentement que le flux de l'interface CMP (clés IAB TCF, consentement additionnel et signaux de consent mode), mettent à jour le consentStatus du provider et déclenchent l'événement uiClose vers onEvent. Elles utilisent le licenseId enregistré par UniConsentProvider ; appelez-les donc après le montage du provider.
Pour les utilisateurs des États-Unis et du Canada, les deux API enregistrent aussi le choix CCPA, US State Privacy et IAB TCF Canada qui les concerne, selon les mêmes règles que l'interface de la CMP, et écrivent les clés IAB GPP et US Privacy. Activez les modes API-Only dans les paramètres du projet du tableau de bord UniConsent pour que la bannière de la CMP ne s'affiche pas dans ces régions.
Elles enregistrent aussi le choix des catégories de cookies là où une bannière de catégories de cookies s'applique (toutes les catégories, ou seulement Strictement nécessaires), ainsi que les finalités et fournisseurs personnalisés du projet.
Pour savoir quel premier niveau afficher, appelez getPolicy() (à partir de la version 26.10.0 du SDK). Elle renvoie la politique qui s'applique à l'utilisateur, selon les mêmes règles que la CMP : gdpr (IAB TCF), tcfca (IAB TCF Canada), uss (US State Privacy), ccpa, categories (voir Catégories de cookies ci-dessous) ou none.
import { useEffect } from 'react';
import { useConsent, getPolicy } from 'uniconsent-sdk';
// dans un composant fonction
const { consentStatus } = useConsent();
useEffect(() => {
if (consentStatus === 'pending') {
// l'utilisateur doit faire un choix : affichez votre premier niveau pour cette politique
getPolicy().then(policy => { /* gdpr, tcfca ou categories */ });
}
}, [consentStatus]);
Important : Votre premier niveau personnalisé doit toujours respecter les exigences de l'IAB TCF (divulguer les finalités et les fournisseurs, et proposer l'acceptation et le refus avec la même visibilité). Les utilisateurs doivent toujours pouvoir ouvrir l'interface CMP complète (
openCMP()) pour effectuer des choix granulaires.
Si votre application ouvre une WebView qui charge une page web avec le tag CMP UniConsent, vous pouvez transmettre le statut de consentement natif afin que le tag CMP reconnaisse le consentement existant et n'affiche pas la bannière à nouveau.
Utilisez getConsentSyncScript() avec injectedJavaScriptBeforeContentLoaded pour injecter le consentement avant l'exécution de tout script de la page :
import React, { useState, useEffect } from 'react';
import { WebView } from 'react-native-webview';
import { getConsentSyncScript } from 'uniconsent-sdk';
const MyWebView = () => {
const [consentScript, setConsentScript] = useState<string | null>(null);
useEffect(() => {
getConsentSyncScript().then(setConsentScript);
}, []);
if (!consentScript) return null;
return (
<WebView
source={{ uri: 'https://example.com' }}
injectedJavaScriptBeforeContentLoaded={consentScript}
/>
);
};
Le SDK fournit des fonctions d'aide pour le développement et le débogage :
import { listKV, clearKV } from 'uniconsent-sdk';
// Log all stored consent keys to console
await listKV();
// Clear all stored consent data
await clearKV();
UniConsentProvider| Prop | Type | Requis | Par défaut | Description |
|---|---|---|---|---|
licenseId | string | Oui | — | Votre Publisher ID UniConsent (pid). |
displayMode | CMPDisplayMode | Non | 'fullScreen' | Style d'affichage de la CMP : 'fullScreen', 'bottomSheet' ou 'dialog'. |
heightRatio | number | Non | Panneau : 0.9, dialogue : 0.7 | Hauteur de l'interface en fraction de la hauteur de l'écran dans (0, 1]. S'applique à 'bottomSheet' et 'dialog'. |
widthRatio | number | Non | 0.9 (plafonné à 500) | Largeur du dialogue en fraction de la largeur de l'écran dans (0, 1]. S'applique à 'dialog' uniquement. |
onEvent | CMPEventCallback | Non | — | Callback pour les événements du cycle de vie du SDK (sdkInit, ready, uiDisplay, uiClose). |
langCode | string | Non | Langue de l'appareil | Langue de la CMP en code à deux lettres, par exemple 'FR'. |
testRegion | string | Non | Région de l'utilisateur | Pour les tests uniquement : affiche la CMP comme pour un utilisateur d'une autre région : 'EU', 'CA' (Canada), 'CAQC' (Québec), 'US' suivi d'un code d'État comme 'USCA' ou 'USTX', ou 'N' (hors de ces régions). Retirez-le des builds de production. |
logLevel | 'debug' | 'error' | Non | 'error' | 'debug' affiche les journaux du SDK et de la page CMP. |
| Export | Description |
|---|---|
UniConsentProvider | Composant React pour encapsuler votre application. Requiert la prop licenseId. |
useConsent() | Hook retournant { consentStatus, isLoading, openCMP }. |
| Fonction | Retour | Description |
|---|---|---|
getTCString() | Promise<string> | Récupère la chaîne de consentement IAB TCF. |
isEURegion() | Promise<boolean> | Vérifie si l'utilisateur se trouve dans une région UE/EEE. |
isPurposeConsented(purposeId) | Promise<boolean> | Vérifie le consentement pour une finalité TCF spécifique (ID basé sur 1). |
isVendorConsented(vendorId) | Promise<boolean> | Vérifie le consentement pour un fournisseur TCF spécifique (ID basé sur 1). |
getConsentData() | Promise<ConsentData> | Récupère un objet complet de données de consentement. |
getConsentSyncScript() | Promise<string> | Récupère un snippet JS pour injecter le consentement dans une WebView. |
agreeAll() | Promise<boolean> | Accorder le consentement pour toutes les finalités, fonctionnalités spéciales et fournisseurs (premier niveau personnalisé). |
rejectAll() | Promise<boolean> | Refuser toutes les finalités, fonctionnalités spéciales et fournisseurs (premier niveau personnalisé). |
getPolicy() | Promise<string> | La politique qui s'applique à l'utilisateur, pour votre propre premier niveau : gdpr, tcfca, uss, ccpa, categories ou none. |
listKV() | Promise<void> | Débogage : affiche toutes les clés de consentement stockées dans la console. |
clearKV() | Promise<void> | Débogage : efface toutes les données de consentement stockées. |
| Type | Description |
|---|---|
CMPDisplayMode | 'fullScreen' | 'bottomSheet' | 'dialog' |
CMPEventType | 'sdkInit' | 'ready' | 'uiDisplay' | 'uiClose' |
CMPEventCallback | (event: { type: CMPEventType }) => void |
ConsentContextValue | Structure de la valeur de retour de useConsent(). |
ConsentData | Structure de la valeur de retour de getConsentData(). |
ConsentData| Champ | Type | Description |
|---|---|---|
tcString | string | Chaîne de consentement IAB TCF complète. |
isEURegion | boolean | Indique si l'utilisateur se trouve dans une région UE/EEE. |
gdprApplies | boolean | Indicateur d'application du RGPD. |
cmpSdkId | number | ID du SDK CMP enregistré (68 pour UniConsent). |
cmpSdkVersion | number | Version du SDK CMP. |
policyVersion | number | Version de la politique TCF. |
purposeConsents | string | Chaîne binaire des finalités consenties (par ex. "10110"). |
vendorConsents | string | Chaîne binaire des fournisseurs consentis. |
additionalConsent | string | Chaîne de consentement additionnel Google (AC). |
gvlVersion | number | Version de la Global Vendor List utilisée. |
Ouvrez la CMP sur un écran précis, par exemple depuis un lien « Paramètres de confidentialité » de votre app. L'écran demandé s'ouvre toujours. Pour les utilisateurs aux États-Unis, les écrans de paramètres ouvrent les paramètres CCPA ou US State Privacy qui s'appliquent à eux. Les utilisateurs au Canada voient la version IAB TCF Canada des écrans IAB TCF.
| Écran | Affiche |
|---|---|
CMPStage.GDPRFirstScreen | Premier niveau (bannière) |
CMPStage.GDPRSecondScreen | Paramètres (finalités) |
CMPStage.GDPRVendorsScreen | Fournisseurs |
CMPStage.CCPAFirstScreen | Premier niveau CCPA |
CMPStage.CCPASecondScreen | Paramètres CCPA |
CMPStage.USStateFirstScreen | Premier niveau US State Privacy |
CMPStage.USStateSecondScreen | Paramètres US State Privacy |
CMPStage.CategoriesFirstScreen | Premier niveau des catégories de cookies (bannière) |
CMPStage.CategoriesSecondScreen | Paramètres des catégories de cookies |
import { UniConsentProvider, useConsent, CMPStage, getGEO, getGEOState } from 'uniconsent-sdk';
// afficher la CMP en français au lieu de la langue de l'appareil, avec les journaux de débogage ('error', la valeur par défaut, en production)
<UniConsentProvider licenseId="YOUR_PUBLISHER_ID" langCode="FR" logLevel="debug">
{/* votre app */}
</UniConsentProvider>
// pour les tests uniquement : afficher la CMP comme pour un utilisateur d'une autre région, 'EU', 'CA' (Canada), 'CAQC' (Québec), 'US' suivi d'un code d'État comme 'USCA' ou 'USTX', 'BR', 'CN', 'ZA', 'VN' ou tout autre code pays, ou 'N' (hors de ces régions). S'applique aussi à getPolicy() et aux vérifications du consentement ; à retirer des builds de production
<UniConsentProvider licenseId="YOUR_PUBLISHER_ID" testRegion="CA">
{/* votre app */}
</UniConsentProvider>
// dans un composant : ouvrir l'écran des paramètres
const { openCMP } = useConsent();
openCMP(CMPStage.GDPRSecondScreen);
// région de l'utilisateur et, pour les États-Unis et le Canada, le code de l'État ou de la province
const geo = await getGEO();
const state = await getGEOState();
La CMP enregistre les clés IAB GPP et la clé US Privacy dans le stockage natif de l'app (SharedPreferences sous Android, UserDefaults sous iOS), telles que les définissent les spécifications de l'IAB. Les SDK publicitaires de votre app les lisent à cet endroit ; aucune modification de code n'est nécessaire. Les clés GPP sont écrites lorsque GPP, US State Privacy ou IAB TCF Canada est activé dans les paramètres du projet du tableau de bord UniConsent. La clé US Privacy est écrite dès que le CCPA est activé.
| Clé | Valeur |
|---|---|
IABGPP_HDR_Version | Version GPP (1) |
IABGPP_HDR_Sections | ID des sections présentes dans la chaîne GPP, séparés par _ |
IABGPP_HDR_GppString | La chaîne GPP complète |
IABGPP_GppSID | ID des sections qui s'appliquent à l'utilisateur, séparés par _, ou -1 si aucune ne s'applique |
IABGPP_2_String | Chaîne IAB TCF EU, lorsque le RGPD s'applique |
IABGPP_5_String | Chaîne IAB TCF Canada, lorsque le TCF Canada s'applique |
IABGPP_6_String | Chaîne US Privacy, lorsque le CCPA s'applique |
IABGPP_7_String | Chaîne US National (usnat), lorsque US State Privacy ou le CCPA s'applique |
IABGPP_8_String à IABGPP_27_String | La section de l'État de l'utilisateur (8 Californie à 27 Rhode Island), lorsque US State Privacy s'applique, ou la Californie avec le CCPA, selon le paramètre GPP Sections |
IABUSPrivacy_String | Chaîne US Privacy dès que le CCPA est activé : le choix de l'utilisateur dans la région CCPA, sinon 1--- |
Les clés sont mises à jour à chaque chargement de la CMP et après chaque choix de consentement. Les utilisateurs qui reçoivent les clés IABGPP_ dépendent de GPP Signals dans les paramètres du projet : les utilisateurs au Canada toujours (IAB TCF Canada), ceux des États-Unis lorsque US est activé et ceux de l'UE lorsque EU est activé. Les utilisateurs qu'aucune région ne couvre reçoivent les clés sans section tant que US ou EU est activé, et aucune clé sinon. Pour les lire vous-même :
import DefaultPreference from 'react-native-default-preference';
const gppString = await DefaultPreference.get('IABGPP_HDR_GppString');
const gppSid = await DefaultPreference.get('IABGPP_GppSID');
Les apps prennent en charge les mêmes options pour les États-Unis et le Canada que les sites web : CCPA, US State Privacy (avec la liste des États et les paramètres GPP Sections et MSPA) et IAB TCF Canada. UniConsentProvider ouvre la CMP pour les utilisateurs du Canada concernés par l'IAB TCF Canada tant qu'ils n'ont pas fait de choix. La confidentialité aux États-Unis fonctionne par opposition (opt-out) : les utilisateurs américains ne sont pas sollicités d'eux-mêmes, ils voient la bannière ou les paramètres américains lorsque votre app appelle openCMP(), par exemple depuis un lien vers les paramètres de confidentialité. D'ici là, lorsque le CCPA ou US State Privacy est activé, le SDK écrit les clés US Privacy et GPP par défaut pour les utilisateurs américains sans rien afficher : sans opposition, ou avec opposition lorsque le suivi publicitaire est désactivé sur l'appareil. US State Privacy est désactivé au départ pour les nouveaux projets Mobile App ; activez-le dans le tableau de bord.
Lorsque l'utilisateur a désactivé le suivi publicitaire sur l'appareil, la CMP le traite comme un refus américain de la vente, du partage et de la publicité ciblée, comme le fait Global Privacy Control sur les sites web. Sous iOS, il s'agit du suivi non autorisé dans App Tracking Transparency ; sous Android, d'un identifiant publicitaire supprimé ou de la limitation du suivi publicitaire, lus via les services Google Play lorsque votre app les inclut. Un choix que l'utilisateur enregistre ensuite dans la bannière est prioritaire.
Le SDK renvoie aussi les chaînes enregistrées :
import { getGPPString, getGPPSID, getUSPrivacyString } from 'uniconsent-sdk';
const gppString = await getGPPString();
const gppSid = await getGPPSID();
const usPrivacy = await getUSPrivacyString();
Disponible à partir de la version 26.10.0 du SDK. Lorsqu'une région utilise des catégories de cookies au lieu de l'IAB TCF ou des politiques américaines, la CMP affiche une bannière avec quatre catégories : Strictement nécessaires, Performance, Fonctionnalité, et Ciblage ou publicité. Cela s'applique à :
Les catégories en opt-in démarrent avec seulement Strictement nécessaires activée, et UniConsentProvider ouvre la CMP (consentStatus vaut pending) tant que l'utilisateur n'a pas fait de choix, puis à nouveau après un changement de version de configuration. Les catégories en opt-out démarrent avec toutes les catégories activées (Ciblage désactivé lorsque le suivi publicitaire est désactivé sur l'appareil aux États-Unis), et l'app ne sollicite pas l'utilisateur d'elle-même : il les modifie depuis votre lien vers les paramètres de confidentialité. L'opt-out s'applique à une règle opt-out pour les autres pays et, dans les apps, à un projet Consent Categories aux États-Unis.
Ouvrez les écrans des catégories avec CMPStage.CategoriesFirstScreen (bannière) et CMPStage.CategoriesSecondScreen (paramètres). La prop testRegion accepte aussi BR, CN, ZA, VN et d'autres codes pays, pour tester ces régions.
Disponible à partir de la version 26.10.0 du SDK. Les finalités personnalisées et les fournisseurs personnalisés que vous ajoutez dans les paramètres du projet du tableau de bord UniConsent s'affichent dans les écrans de la CMP : les finalités personnalisées dans le premier niveau et les paramètres IAB TCF et dans les paramètres des catégories de cookies, les fournisseurs personnalisés dans la liste des fournisseurs IAB TCF. Dans les paramètres CCPA et US State Privacy, seules les finalités personnalisées sensibles sont listées. Dans les paramètres des catégories de cookies, les fournisseurs personnalisés suivent la catégorie Ciblage ou publicité. Là où l'IAB TCF ne s'applique pas (catégories de cookies et États-Unis), les fournisseurs personnalisés sont listés en lecture seule dans la liste des fournisseurs du menu, et dans les paramètres des catégories de cookies sous Ciblage ou publicité.
Pour démarrer ou arrêter vos propres SDK selon eux, demandez au SDK si l'app peut utiliser maintenant une finalité personnalisée ou un fournisseur personnalisé. La réponse suit la politique de l'utilisateur, selon les mêmes règles que la CMP utilise pour les balises :
import { isCustomPurposeConsented, isCustomVendorConsented, getCustomConsents } from 'uniconsent-sdk';
// dans une fonction async
if (await isCustomPurposeConsented(1)) {
// démarrez le SDK couvert par votre finalité personnalisée 1
}
const vendorAllowed = await isCustomVendorConsented(2);
const all = await getCustomConsents(); // { purposes: { '1': true }, vendors: { '2': false } }
Appelez-les de nouveau après la fermeture de la CMP ou un changement du consentement. Les identifiants que le projet n'a pas, et tous les identifiants avant que le SDK soit prêt, renvoient false.
La CMP peut lister les SDK tiers de votre app (régies publicitaires, analytique, attribution et autres) avec leur société, leur utilisation et leur politique de confidentialité. Les utilisateurs les voient dans la liste des fournisseurs, en lecture seule dans toutes les régions : il n'y a pas d'interrupteurs, et votre app continue d'activer ou de désactiver chaque SDK selon les choix de l'utilisateur pour les finalités ou les catégories de cookies.
Pour définir la liste, activez Enable Third-party SDKs dans Step 4: Advanced Features de votre projet d'app, choisissez vos SDK dans l'onglet Third-party SDKs ou ajoutez les vôtres, puis enregistrez et publiez. Aucun code n'est nécessaire dans votre app.
openCMP() obtenue via le hook useConsent.UniConsentProvider vérifie automatiquement le statut du consentement au démarrage de votre application, y compris si la Global Vendor List (GVL) a été mise à jour depuis le dernier consentement de l'utilisateur. Si la version de la GVL a changé, l'utilisateur sera invité à donner son consentement à nouveau.setCustomConsent() pour enregistrer le choix d'une finalité personnalisée depuis un écran de votre app, comme une case de suivi d'ouverture des e-mails ; isCustomPurposeConsented() accepte aussi l'ID de la finalité personnalisée défini dans le tableau de bordemail est envoyé sous forme de email_hash (SHA-256) ; l'adresse elle-même n'est ni stockée ni envoyéegetGPPString(), getGPPSID() et getUSPrivacyString()openCMP(stage) ; ajout des props langCode et logLevel, de getGEO() et getGEOState()CMPStage.CCPAFirstScreen et CMPStage.USStateFirstScreen ; ajout de la prop testRegion pour tester la CMP comme un utilisateur d'une autre région, par exemple le CanadaCMPStage.CategoriesFirstScreen et CMPStage.CategoriesSecondScreengetPolicy() ; agreeAll() et rejectAll() enregistrent aussi les catégories de cookies, les finalités personnalisées et les fournisseurs personnaliséstestRegion accepte aussi BR, CN, ZA, VN et d'autres codes pays, et s'applique à getPolicy() et aux vérifications du consentementisCustomPurposeConsented(), isCustomVendorConsented() et getCustomConsents() : les finalités et fournisseurs personnalisés que l'app peut utiliser maintenant selon la politique de l'utilisateurLois sur la confidentialité, consentement et conformité, quelques e-mails par mois.