Leading Consent Management Platform

Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.

So integrieren Sie das UniConsent CMP SDK für React Native

So integrieren Sie das UniConsent CMP SDK für React Native

Diese Anleitung erklärt, wie Sie das UniConsent CMP SDK in Ihre React Native-Anwendung integrieren, um das GDPR IAB TCF 2.4 Consent Management zu handhaben.

Eine Demo-App mit integriertem SDK finden Sie im Verzeichnis demo, das zusammen mit dem SDK-Paket bereitgestellt wird.

Voraussetzungen

  • Ein UniConsent CMP-Plan, der Mobile App-Unterstützung beinhaltet.
  • Das UniConsent SDK-Paket für React Native (z. B. uniconsent-react-native-sdk-26.10.0.zip), heruntergeladen aus Ihrem UniConsent-Dashboard oder vom Support erhalten.
  • Eine funktionierende React Native-Entwicklungsumgebung.

Erste Schritte (Installation)

SDK-Paket installieren

Laden Sie das SDK-Paket herunter und entpacken Sie es (z. B. uniconsent-react-native-sdk-26.10.0.zip). Darin finden Sie:

  • uniconsent-react-native-sdk-26.10.0.tgz — Per npm installierbares SDK-Paket
  • uniconsent-sdk/ — Vorkompilierte SDK-Bibliotheksdateien
  • demo/ — Demo-Anwendung
  • README.md — Dokumentation

Installieren Sie die .tgz-Datei mit npm oder 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>

Beispiel: Wenn Sie die .tgz-Datei im Stammverzeichnis Ihres Projekts ablegen:

npm install ./uniconsent-react-native-sdk-26.10.0.tgz
# or
yarn add file:./uniconsent-react-native-sdk-26.10.0.tgz

Peer-Abhängigkeiten installieren

Dieses SDK erfordert die folgenden Peer-Abhängigkeiten:

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

iOS Pods installieren

Wenn Sie für iOS entwickeln, navigieren Sie zum ios-Verzeichnis Ihres Projekts und installieren Sie die Pods:

cd ios
pod install
cd ..

Einwilligungsoberfläche anpassen

Bevor Sie das SDK integrieren, passen Sie das Erscheinungsbild des Consent-Banners im UniConsent Dashboard an Ihre Marke an und optimieren Sie die Einwilligungsraten.

Schritt 1: Marken-Styling im Dashboard

Gehen Sie zu Projects → Wählen Sie Ihr Projekt → Settings → Step 5: UI & Style Settings, um Folgendes zu konfigurieren:

  • Main Button Colour — Setzen Sie die Farbe der primären Aktionsschaltfläche passend zu Ihrer Marke
  • Main Button Text Colour — Passen Sie die Textfarbe auf der primären Schaltfläche für bessere Lesbarkeit an
  • Background Colour — Legen Sie die Hintergrundfarbe des Banners fest, damit es sich in Ihre App einfügt
  • Text Colour — Stellen Sie sicher, dass der Fließtext einen angemessenen Kontrast aufweist

Schritt 2: Erweitertes Styling mit benutzerdefiniertem CSS (optional)

Für eine präzisere Kontrolle fügen Sie benutzerdefiniertes CSS im Feld CSS Content unter Step 5 hinzu. Dies wird empfohlen, damit sich das Banner nativ in Ihre App einfügt und die beste Einwilligungsrate erzielt wird:

/* 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;
}

Tipp: Eine markengerechte Einwilligungsoberfläche, die sich nativ in Ihre App einfügt, erzielt in der Regel höhere Einwilligungsraten. Benutzer reagieren eher positiv auf ein Banner, das dem erwarteten Erscheinungsbild entspricht.

Verwendung

SDK über Provider initialisieren

Umschließen Sie die Wurzelkomponente Ihrer Anwendung (oder den relevanten Teil) mit UniConsentProvider. Sie müssen Ihre licenseId (Publisher-ID/pid von UniConsent) angeben.

// 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;

Anzeigemodi

Das SDK unterstützt drei Anzeigemodi für die CMP-Oberfläche, die über die Eigenschaft displayMode am UniConsentProvider konfiguriert werden:

ModusBeschreibung
'fullScreen'Vollbild-Ansicht (Standard)
'bottomSheet'Modales Sheet am unteren Bildschirmrand
'dialog'Zentrierter modaler Dialog
// 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}>

Benutzerdefinierte Größe (optional)

Verfügbar ab SDK-Version 26.8.0.

Beide Ratios sind optional — jeder Anzeigemodus funktioniert auch ohne sie. Übergeben Sie ein Ratio (ein Bruchteil des Bildschirms, größer als 0 und höchstens 1) nur, um die Standardgröße zu überschreiben; ungültige Werte werfen einen RangeError:

EigenschaftGilt fürStandard, wenn nicht angegeben
heightRatio'bottomSheet', 'dialog'Sheet: 90 % des Bildschirms. Dialog: 70 %
widthRationur 'dialog'90 % der Bildschirmbreite, maximal 500

Ratios, die für den gewählten Anzeigemodus nicht relevant sind, werden ignoriert ('fullScreen' ignoriert beide).

Event-Handler

Überwachen Sie SDK-Lebenszyklus-Events mit der Eigenschaft onEvent am UniConsentProvider.

Verfügbare Event-Typen:

  • 'sdkInit' — SDK-Initialisierung gestartet
  • 'ready' — SDK-Initialisierung abgeschlossen
  • 'uiDisplay' — Einwilligungsoberfläche wird angezeigt
  • 'uiClose' — Einwilligungsoberfläche wird geschlossen
<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>

CMP-Oberfläche anzeigen

Verwenden Sie den useConsent-Hook innerhalb einer Komponente im Provider, um die Funktion openCMP zu erhalten, und rufen Sie sie bei Bedarf auf (z. B. bei einem Tastendruck).

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>
  );
};

Einwilligung programmatisch prüfen

Verwenden Sie die Hilfsfunktionen, um den Einwilligungsstatus direkt ohne den Hook zu prüfen:

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();

Benutzerdefinierter First Layer (Alle akzeptieren / Alle ablehnen)

Verfügbar ab SDK-Version 26.7.0. Wenn Sie Ihre eigene First-Layer-Einwilligungsoberfläche erstellen, anstatt die CMP-Webview anzuzeigen, können Sie die Einwilligung direkt speichern:

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();

Beide APIs speichern dieselben Einwilligungswerte wie der CMP-UI-Flow (IAB-TCF-Schlüssel, Additional Consent und Consent-Mode-Signale), aktualisieren den consentStatus des Providers und lösen das uiClose-Event für onEvent aus. Sie verwenden die vom UniConsentProvider registrierte licenseId; rufen Sie sie daher erst auf, nachdem der Provider gemountet wurde.

Für Nutzer in den USA und Kanada speichern beide APIs zusätzlich die jeweils geltende Entscheidung für CCPA, US State Privacy und IAB TCF Kanada, nach denselben Regeln wie die CMP Oberfläche, und schreiben die IAB GPP und US Privacy Schlüssel. Aktivieren Sie die API-Only Modi in den Projekteinstellungen des UniConsent Dashboards, damit das CMP Banner für diese Regionen nicht angezeigt wird.

Außerdem speichern sie die Entscheidung zu den Cookie-Kategorien, wo ein Cookie-Kategorien-Banner gilt (alle Kategorien oder nur „Unbedingt erforderlich“), sowie die benutzerdefinierten Zwecke und benutzerdefinierten Anbieter des Projekts.

Um zu wissen, welchen First Layer Sie anzeigen sollen, rufen Sie getPolicy() auf (ab SDK Version 26.10.0). Es gibt die für den Nutzer geltende Richtlinie zurück, nach denselben Regeln wie die CMP: gdpr (IAB TCF), tcfca (IAB TCF Kanada), uss (US State Privacy), ccpa, categories (siehe Cookie-Kategorien unten) oder none.

import { useEffect } from 'react';
import { useConsent, getPolicy } from 'uniconsent-sdk';

// innerhalb einer Funktionskomponente
const { consentStatus } = useConsent();
useEffect(() => {
  if (consentStatus === 'pending') {
    // der Nutzer muss eine Entscheidung treffen: Ihren First Layer für diese Richtlinie anzeigen
    getPolicy().then(policy => { /* gdpr, tcfca oder categories */ });
  }
}, [consentStatus]);

Wichtig: Ihr benutzerdefinierter First Layer muss weiterhin die IAB-TCF-Anforderungen erfüllen (Zwecke und Anbieter offenlegen sowie Akzeptieren und Ablehnen gleichwertig anbieten). Nutzer sollten weiterhin die vollständige CMP-Oberfläche (openCMP()) öffnen können, um granulare Entscheidungen zu treffen.

Einwilligung mit WebView synchronisieren

Wenn Ihre App ein WebView öffnet, das eine Webseite mit dem UniConsent CMP-Tag lädt, können Sie den nativen Einwilligungsstatus übergeben, damit das CMP-Tag die bestehende Einwilligung erkennt und das Banner nicht erneut anzeigt.

Verwenden Sie getConsentSyncScript() mit injectedJavaScriptBeforeContentLoaded, um die Einwilligung zu injizieren, bevor Seitenskripte ausgeführt werden:

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}
    />
  );
};

Debug-Hilfsmittel

Das SDK bietet Hilfsfunktionen für Entwicklung und Debugging:

import { listKV, clearKV } from 'uniconsent-sdk';

// Log all stored consent keys to console
await listKV();

// Clear all stored consent data
await clearKV();

Konfiguration

UniConsentProvider-Eigenschaften

EigenschaftTypErforderlichStandardBeschreibung
licenseIdstringJa—Ihre UniConsent Publisher-ID (pid).
displayModeCMPDisplayModeNein'fullScreen'CMP-Anzeigestil: 'fullScreen', 'bottomSheet' oder 'dialog'.
heightRationumberNeinSheet: 0.9, Dialog: 0.7UI-Höhe als Bruchteil der Bildschirmhöhe in (0, 1]. Gilt für 'bottomSheet' und 'dialog'.
widthRationumberNein0.9 (maximal 500)Dialogbreite als Bruchteil der Bildschirmbreite in (0, 1]. Gilt nur für 'dialog'.
onEventCMPEventCallbackNein—Callback für SDK-Lebenszyklus-Events (sdkInit, ready, uiDisplay, uiClose).
langCodestringNeinGerätespracheCMP-Sprache als zweistelliger Code, zum Beispiel 'FR'.
testRegionstringNeinRegion des NutzersNur zum Testen: zeigt die CMP wie für einen Nutzer in einer anderen Region: 'EU', 'CA' (Kanada), 'CAQC' (Quebec), 'US' plus Bundesstaatscode wie 'USCA' oder 'USTX', oder 'N' (außerhalb dieser Regionen). Entfernen Sie es in Release-Builds.
logLevel'debug' | 'error'Nein'error''debug' gibt Logs von SDK und CMP-Seite aus.

API-Referenz

Komponenten & Hooks

ExportBeschreibung
UniConsentProviderReact-Komponente zum Umschließen Ihrer Anwendung. Erfordert die Eigenschaft licenseId.
useConsent()Hook, der { consentStatus, isLoading, openCMP } zurückgibt.

Hilfsfunktionen

FunktionRückgabeBeschreibung
getTCString()Promise<string>IAB TCF Consent-String abrufen.
isEURegion()Promise<boolean>Prüfen, ob sich der Benutzer in einer EU/EWR-Region befindet.
isPurposeConsented(purposeId)Promise<boolean>Einwilligung für einen bestimmten TCF-Zweck prüfen (1-basierte ID).
isVendorConsented(vendorId)Promise<boolean>Einwilligung für einen bestimmten TCF-Anbieter prüfen (1-basierte ID).
getConsentData()Promise<ConsentData>Umfassendes Einwilligungsdatenobjekt abrufen.
getConsentSyncScript()Promise<string>JS-Snippet zum Injizieren der Einwilligung in ein WebView abrufen.
agreeAll()Promise<boolean>Einwilligung für alle Zwecke, besonderen Funktionen und Anbieter erteilen (eigener First Layer).
rejectAll()Promise<boolean>Alle Zwecke, besonderen Funktionen und Anbieter ablehnen (eigener First Layer).
getPolicy()Promise<string>Die für den Nutzer geltende Richtlinie, für Ihren eigenen First Layer: gdpr, tcfca, uss, ccpa, categories oder none.
listKV()Promise<void>Debug: Alle gespeicherten Einwilligungsschlüssel in der Konsole ausgeben.
clearKV()Promise<void>Debug: Alle gespeicherten Einwilligungsdaten löschen.

Exportierte Typen

TypBeschreibung
CMPDisplayMode'fullScreen' | 'bottomSheet' | 'dialog'
CMPEventType'sdkInit' | 'ready' | 'uiDisplay' | 'uiClose'
CMPEventCallback(event: { type: CMPEventType }) => void
ConsentContextValueForm des Rückgabewerts von useConsent().
ConsentDataForm des Rückgabewerts von getConsentData().

ConsentData-Felder

FeldTypBeschreibung
tcStringstringVollständiger IAB TCF Consent-String.
isEURegionbooleanOb sich der Benutzer in einer EU/EWR-Region befindet.
gdprAppliesbooleanFlag, ob die DSGVO gilt.
cmpSdkIdnumberRegistrierte CMP SDK-ID (68 für UniConsent).
cmpSdkVersionnumberCMP SDK-Version.
policyVersionnumberTCF-Richtlinienversion.
purposeConsentsstringBinärstring der eingewilligten Zwecke (z. B. "10110").
vendorConsentsstringBinärstring der eingewilligten Anbieter.
additionalConsentstringGoogle Additional Consent (AC)-String.
gvlVersionnumberVerwendete Version der Global Vendor List.

Bestimmten Bildschirm öffnen und weitere Optionen

Öffnen Sie die CMP auf einem bestimmten Bildschirm, zum Beispiel über einen Link „Datenschutzeinstellungen“ in Ihrer App. Der angeforderte Bildschirm wird immer geöffnet. Für Nutzer in den USA öffnen die Einstellungsbildschirme die für sie geltenden CCPA- oder US-State-Privacy-Einstellungen. Nutzer in Kanada sehen die IAB-TCF-Canada-Version der IAB-TCF-Bildschirme.

BildschirmZeigt
CMPStage.GDPRFirstScreenErste Ebene (Banner)
CMPStage.GDPRSecondScreenEinstellungen (Zwecke)
CMPStage.GDPRVendorsScreenAnbieter
CMPStage.CCPAFirstScreenErste Ebene CCPA
CMPStage.CCPASecondScreenCCPA-Einstellungen
CMPStage.USStateFirstScreenErste Ebene US State Privacy
CMPStage.USStateSecondScreenUS-State-Privacy-Einstellungen
CMPStage.CategoriesFirstScreenErste Ebene der Cookie-Kategorien (Banner)
CMPStage.CategoriesSecondScreenEinstellungen der Cookie-Kategorien
import { UniConsentProvider, useConsent, CMPStage, getGEO, getGEOState } from 'uniconsent-sdk';

// CMP auf Französisch statt in der Gerätesprache anzeigen, mit Debug-Logs ('error', den Standard, in Release-Builds verwenden)
<UniConsentProvider licenseId="YOUR_PUBLISHER_ID" langCode="FR" logLevel="debug">
  {/* Ihre App */}
</UniConsentProvider>

// nur zum Testen: CMP wie für einen Nutzer in einer anderen Region anzeigen, 'EU', 'CA' (Kanada), 'CAQC' (Quebec), 'US' plus Bundesstaatscode wie 'USCA' oder 'USTX', 'BR', 'CN', 'ZA', 'VN' oder ein anderer Ländercode, oder 'N' (außerhalb dieser Regionen). Gilt auch für getPolicy() und die Einwilligungsprüfungen; in Release-Builds entfernen
<UniConsentProvider licenseId="YOUR_PUBLISHER_ID" testRegion="CA">
  {/* Ihre App */}
</UniConsentProvider>

// in einer Komponente: Einstellungsbildschirm öffnen
const { openCMP } = useConsent();
openCMP(CMPStage.GDPRSecondScreen);

// Region des Nutzers und für die USA und Kanada der Code des Bundesstaats bzw. der Provinz
const geo = await getGEO();
const state = await getGEOState();

IAB GPP und US Privacy

Die CMP speichert die IAB GPP Schlüssel und den US Privacy Schlüssel in den nativen Speicher der App (SharedPreferences unter Android, UserDefaults unter iOS), wie in den IAB Spezifikationen definiert. Werbe-SDKs in Ihrer App lesen sie dort aus; Codeänderungen sind nicht nötig. Die GPP Schlüssel werden geschrieben, wenn GPP, US State Privacy oder IAB TCF Kanada in den Projekteinstellungen des UniConsent Dashboards aktiviert ist. Der US Privacy Schlüssel wird geschrieben, sobald CCPA aktiviert ist.

SchlüsselWert
IABGPP_HDR_VersionGPP Version (1)
IABGPP_HDR_SectionsAbschnitts-IDs im GPP String, getrennt durch _
IABGPP_HDR_GppStringDer vollständige GPP String
IABGPP_GppSIDFür den Nutzer geltende Abschnitts-IDs, getrennt durch _, oder -1, wenn keiner gilt
IABGPP_2_StringIAB TCF EU String, wenn die DSGVO gilt
IABGPP_5_StringIAB TCF Kanada String, wenn Kanada TCF gilt
IABGPP_6_StringUS Privacy String, wenn der CCPA gilt
IABGPP_7_StringUS National (usnat) String, wenn US State Privacy oder der CCPA gilt
IABGPP_8_String bis IABGPP_27_StringDer Abschnitt für den Bundesstaat des Nutzers (8 Kalifornien bis 27 Rhode Island), wenn US State Privacy gilt, oder Kalifornien unter dem CCPA, gemäß der Einstellung GPP Sections
IABUSPrivacy_StringUS Privacy String, sobald CCPA aktiviert ist: die Entscheidung des Nutzers in der CCPA Region, sonst 1---

Die Schlüssel werden bei jedem Laden der CMP und nach jeder Einwilligungsentscheidung aktualisiert. Wenn GPP deaktiviert wird, werden die IABGPP_ Schlüssel entfernt. So lesen Sie sie selbst aus:

import DefaultPreference from 'react-native-default-preference';

const gppString = await DefaultPreference.get('IABGPP_HDR_GppString');
const gppSid = await DefaultPreference.get('IABGPP_GppSID');

USA und Kanada

Apps unterstützen dieselben Optionen für die USA und Kanada wie Websites: CCPA, US State Privacy (mit Bundesstaatenliste, GPP Sections und MSPA Einstellungen) und IAB TCF Kanada. UniConsentProvider öffnet die CMP für Nutzer in Kanada, für die IAB TCF Kanada gilt, bis sie eine Entscheidung treffen. US Datenschutz ist ein Opt-out, daher werden Nutzer in den USA nicht von selbst gefragt: Sie sehen das US Banner oder die US Einstellungen, wenn Ihre App openCMP() aufruft, zum Beispiel über einen Link zu den Datenschutzeinstellungen. Bis dahin schreibt das SDK, wenn CCPA oder US State Privacy aktiviert ist, für Nutzer in den USA die Standardwerte der US Privacy und GPP Schlüssel, ohne etwas anzuzeigen: kein Widerspruch, oder Widerspruch, wenn auf dem Gerät das Werbe-Tracking deaktiviert ist. US State Privacy ist bei neuen Mobile App Projekten zunächst aus; aktivieren Sie es im Dashboard.

Widerspruch gegen Werbe-Tracking auf dem Gerät

Hat der Nutzer das Werbe-Tracking auf dem Gerät deaktiviert, behandelt die CMP dies als US Widerspruch gegen Verkauf, Weitergabe und zielgerichtete Werbung, so wie Global Privacy Control auf Websites. Unter iOS ist das nicht erlaubtes Tracking in App Tracking Transparency; unter Android eine gelöschte Werbe-ID oder eingeschränktes Werbe-Tracking, gelesen über die Google Play-Dienste, wenn Ihre App sie enthält. Eine Entscheidung, die der Nutzer danach im Banner speichert, hat Vorrang.

GPP und US Privacy Strings auslesen

Das SDK gibt die gespeicherten Strings auch direkt zurück:

import { getGPPString, getGPPSID, getUSPrivacyString } from 'uniconsent-sdk';

const gppString = await getGPPString();
const gppSid = await getGPPSID();
const usPrivacy = await getUSPrivacyString();

Verfügbar ab SDK Version 26.10.0. Wo eine Region Cookie-Kategorien statt IAB TCF oder der US Richtlinien verwendet, zeigt die CMP ein Banner mit vier Kategorien: Unbedingt erforderlich, Leistung, Funktionalität sowie Targeting oder Werbung. Das gilt für:

  • LGPD in Brasilien, PIPL in China, POPIA in Südafrika und PDPD in Vietnam, wenn in den Projekteinstellungen des UniConsent Dashboards aktiviert
  • Ihre Regeln für andere Länder: eine Regel für ein Land und eine Regel für alle übrigen Länder
  • ein Consent Categories Projekt, in seinen Regionen

Bei Opt-in Kategorien ist zunächst nur „Unbedingt erforderlich“ aktiv, und UniConsentProvider öffnet die CMP (consentStatus ist pending), bis der Nutzer eine Entscheidung trifft, und erneut, nachdem Sie die Konfigurationsversion geändert haben. Bei Opt-out Kategorien sind zunächst alle Kategorien aktiv (Targeting aus, wenn auf dem Gerät in den USA das Werbe-Tracking deaktiviert ist), und die App fragt nicht von selbst: Nutzer ändern sie über Ihren Link zu den Datenschutzeinstellungen. Opt-out gilt für eine Opt-out Regel für andere Länder und, in Apps, für ein Consent Categories Projekt in den USA.

Öffnen Sie die Kategorie-Bildschirme mit CMPStage.CategoriesFirstScreen (Banner) und CMPStage.CategoriesSecondScreen (Einstellungen). Die Prop testRegion akzeptiert außerdem BR, CN, ZA, VN und andere Ländercodes, um diese Regionen zu testen.

Benutzerdefinierte Zwecke und benutzerdefinierte Anbieter

Verfügbar ab SDK Version 26.10.0. Die benutzerdefinierten Zwecke und benutzerdefinierten Anbieter, die Sie in den Projekteinstellungen des UniConsent Dashboards hinzufügen, erscheinen in den CMP Bildschirmen: die benutzerdefinierten Zwecke in der ersten Ebene und den Einstellungen von IAB TCF sowie in den Einstellungen der Cookie-Kategorien, die benutzerdefinierten Anbieter in der IAB TCF Anbieterliste. In den Einstellungen von CCPA und US State Privacy werden nur sensible benutzerdefinierte Zwecke aufgeführt. In den Einstellungen der Cookie-Kategorien folgen die benutzerdefinierten Anbieter der Kategorie Targeting oder Werbung. Wo IAB TCF nicht gilt (Cookie-Kategorien und die USA), werden die benutzerdefinierten Anbieter schreibgeschützt unter der Anbieterliste im Menü aufgeführt, und in den Einstellungen der Cookie-Kategorien unter Targeting oder Werbung.

Um Ihre eigenen SDKs danach zu starten oder zu stoppen, fragen Sie das SDK, ob die App einen benutzerdefinierten Zweck oder Anbieter jetzt verwenden darf. Die Antwort folgt der Richtlinie des Nutzers, nach denselben Regeln, die die CMP für Tags verwendet:

  • IAB TCF, IAB TCF Kanada und Opt-in Cookie-Kategorien: erst erlaubt, nachdem der Nutzer zustimmt
  • die USA und Opt-out Cookie-Kategorien: erlaubt, bis der Nutzer widerspricht; sensible benutzerdefinierte Zwecke brauchen die Zustimmung des Nutzers, und die benutzerdefinierten Anbieter sind aus, wenn auf dem Gerät in den USA das Werbe-Tracking deaktiviert ist
  • keine Richtlinie: erlaubt
import { isCustomPurposeConsented, isCustomVendorConsented, getCustomConsents } from 'uniconsent-sdk';

// innerhalb einer async Funktion
if (await isCustomPurposeConsented(1)) {
  // das SDK starten, das Ihr benutzerdefinierter Zweck 1 abdeckt
}
const vendorAllowed = await isCustomVendorConsented(2);
const all = await getCustomConsents(); // { purposes: { '1': true }, vendors: { '2': false } }

Rufen Sie sie erneut auf, nachdem die CMP geschlossen wurde oder sich die Einwilligung geändert hat. IDs, die das Projekt nicht hat, und alle IDs, bevor das SDK bereit ist, ergeben false.

Offenlegung von SDKs von Drittanbietern

Die CMP kann die SDKs von Drittanbietern in Ihrer App (Werbenetzwerke, Analyse, Attribution und andere) mit ihrem Unternehmen, ihrem Verwendungszweck und ihrer Datenschutzerklärung auflisten. Nutzer sehen sie unter der Anbieterliste, in allen Regionen schreibgeschützt: Es gibt keine Schalter, und Ihre App schaltet jedes SDK weiterhin anhand der Auswahl des Nutzers für Zwecke oder Cookie-Kategorien ein oder aus.

Um die Liste festzulegen, aktivieren Sie in Step 4: Advanced Features Ihres App-Projekts die Option Enable Third-party SDKs, wählen Sie im Tab Third-party SDKs Ihre SDKs aus oder fügen Sie eigene hinzu, und speichern und veröffentlichen Sie anschließend. In Ihrer App ist dafür kein Code nötig.

Hinweise

  • Zugang zu Datenschutzeinstellungen: Ihre Anwendung sollte Benutzern eine dauerhafte Möglichkeit bieten (z. B. eine Schaltfläche oder einen Link „Datenschutzeinstellungen", häufig in einem Einstellungsmenü), um ihre Einwilligungsentscheidungen einzusehen und zu aktualisieren. Diese Schaltfläche sollte die Funktion openCMP() aufrufen, die über den useConsent-Hook bezogen wird.
  • Automatische Einwilligungsprüfung: Der UniConsentProvider prüft automatisch den Einwilligungsstatus beim Start Ihrer App, einschließlich der Frage, ob die Global Vendor List (GVL) seit der letzten Einwilligung des Benutzers aktualisiert wurde. Wenn sich die GVL-Version geändert hat, wird der Benutzer erneut aufgefordert.

Änderungsprotokoll

26.10.0

  • IAB GPP und US Privacy Schlüssel für Werbe-SDKs
  • US State Privacy und IAB TCF Kanada in Apps, auch mit benutzerdefiniertem First Layer
  • Neu: getGPPString(), getGPPSID() und getUSPrivacyString()
  • Bestimmten Bildschirm mit openCMP(stage) öffnen; neu: die Props langCode und logLevel, getGEO() und getGEOState()
  • Erste Ebene von CCPA und US State Privacy mit CMPStage.CCPAFirstScreen und CMPStage.USStateFirstScreen öffnen; neu: die Prop testRegion, um die CMP wie für einen Nutzer in einer anderen Region zu testen, etwa Kanada
  • Cookie-Kategorien in Apps: LGPD (Brasilien), PIPL (China), POPIA (Südafrika), PDPD (Vietnam), Ihre Regeln für andere Länder und Consent Categories Projekte, mit CMPStage.CategoriesFirstScreen und CMPStage.CategoriesSecondScreen
  • Neu: getPolicy(); agreeAll() und rejectAll() speichern außerdem die Cookie-Kategorien, benutzerdefinierten Zwecke und benutzerdefinierten Anbieter
  • Die Prop testRegion akzeptiert außerdem BR, CN, ZA, VN und andere Ländercodes und gilt auch für getPolicy() und die Einwilligungsprüfungen
  • Neu: isCustomPurposeConsented(), isCustomVendorConsented() und getCustomConsents(): die benutzerdefinierten Zwecke und Anbieter, die die App nach der Richtlinie des Nutzers jetzt verwenden darf

26.9.0

  • Unterstützung für IAB TCF 2.4