Informatie
Beschrijving

[fladderen] 1. consentmanager SDK-integratie

Verouderde SDK / Upgrade naar v3: Deze documentatie beschrijft versie 2.x van onze SDK. De 2.x SDK is verouderd en wordt uiterlijk eind 2025 verwijderd. Upgrade naar SDK-versie 3.x. Zie de Help-sectie over SDK v3 hier.

In dit document vindt u algemene informatie over hoe u onze SDK in uw project kunt integreren. Voor meer details verwijzen wij u naar onze API-referentie documentatie. De SDK is beschikbaar op pub.dev .

1. Installatie

De consentmanager SDK voor iOS-apps implementeert en biedt functionaliteit om de gebruiker te informeren over gegevensbescherming en om toestemming van de gebruiker te vragen en te verzamelen. Het stelt app-ontwikkelaars in staat de consentmanager service in hun app.

Stappen - Beschrijving op hoog niveau

  1. Integratie en configuratie:

    • Integreer de SDK in uw app.
    • Configureer de SDK-instellingen volgens uw behoeften.
  2. Een exemplaar maken:

    • Maak bij het opstarten van de app een exemplaar van het CMPManager klas. Deze instantie zal het toestemmingsproces afhandelen.
  3. SDK-initialisatie:
    • Zodra het exemplaar gereed is, haalt de SDK automatisch de benodigde informatie op uit de consentmanager servers ter voorbereiding op de werking ervan.
  4. Het toestemmingsscherm weergeven:

    • De SDK geeft indien nodig automatisch het toestemmingsscherm weer wanneer de CMPManager.initialize()methode wordt genoemd.
  5. Verwerking van persoonlijke gegevens:

    • Zodra de toestemmingen zijn verzameld, wordt de informatie opgeslagen en kan deze worden opgevraagd via verschillende eigenschappen en methoden die door onze SDK worden vrijgegeven. U beschikt over informatie over geweigerde of geaccepteerde toestemmingen, leveranciers, doeleinden, enz.

Door deze stappen te volgen, zorgt u ervoor dat uw app voldoet aan de toestemmingsvereisten en dat de toestemming van gebruikers op de juiste manier wordt beheerd en opgeslagen.

Consent Manager Provider SDK-sequentiediagram

Laten we, ter illustratie van de bovenstaande stappen, in het onderstaande diagram drie mogelijke SDK-reeksstromen bekijken. 

1. Bij het maken van een instantie met behulp van de initialiseren functioneren, zijn er twee mogelijke uitkomsten. De eerste is wanneer de toestemmingsmanager-API de SDK informeert dat de CMP niet kan worden geopend, waardoor de OnCmpNotOpenedCallback. Het tweede resultaat is wanneer de toestemmingslaag wordt geopend, waardoor de gebruiker ermee kan communiceren, en dit activeert de AanOpenTerugbellen. Zodra de gebruiker toestemming geeft en de toestemming is verwerkt, wordt de OnCmpCloseCallback wordt genoemd.

Houdt u er rekening mee dat de OnErrorTerugbellen wordt weergegeven door de rode onderbroken pijllijnen om voorbeelden te geven van wanneer fouten kunnen optreden tijdens het proces.

Initialiseer-Cmp-Sequence-Diagram.png

2. Een instantie maken en de openAndCheckConsent functies zullen tot een soortgelijk proces leiden. Het verschil is dat door het aanmaken van het exemplaar en de controle op de toestemmingsmanger-API te ontkoppelen, u de mogelijkheid krijgt om bedrijfslogica toe te voegen en te communiceren met de bibliotheken-API.

3. Een instantie maken en de openlaag functie opent de laag zonder de consentmanager, als het nodig is. Als er al toestemming is gegeven, worden de opties en instellingen aan de gebruiker getoond. Het procesverloop ziet er als volgt uit:

openlayer-Cmp-Sequence-Diagram-.png

Voor meer informatie over ons SDK-versieoverzicht en changelog verwijzen wij u naar deze link.

Installatie via pub.dev

Voer deze opdracht uit:

Met flutter:

flutter pub add cmp_sdk

Dit zal een regel als deze toevoegen aan de pubspec.yaml van uw pakket (en een impliciete flutter pub get):

dependencies:  
	cmp_sdk: 2.5.4

Als alternatief kan uw redacteur dit mogelijk ondersteunen flutter pub get. Bekijk de documenten van uw redacteur voor meer informatie.

import

In uw Dart-code kunt u nu het volgende gebruiken:

import 'package:cmp_sdk/cmp_sdk.dart';

2. Initialiseren van de SDK

Binnen de app-start moet u een instantie van de klasse maken CMPManager die beschikbaar zal zijn via het singletonpatroon voor de rest van de klassen die er toegang toe hebben. initialize() functie haalt automatisch de benodigde gegevens op van onze server en bepaalt of het toestemmingsscherm moet worden weergegeven of niet direct bij het starten van de app. Als dat zo is, toont de SDK op dit punt automatisch het toestemmingsscherm, verzamelt de gegevens en verstrekt de gegevens aan de app. Het exemplaar kan vervolgens worden gebruikt om toestemmingsgegevens van de SDK te verkrijgen om het in de app te gebruiken.

import 'package:cmp_sdk/cmp_sdk.dart';
import 'package:cmp_sdk/cmp_config.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

const String _cmpId = "Your-Code-ID-goes-here";
const String _cmpDomain = "delivery.consentmanager.net";
const String _cmpAppName = "Test";
const String _cmpLanguage = "EN";

class _MyAppState extends State<MyApp> {
  String _consentStatus = '';
  String _callbackLogs = '';
  String _cmpString = '';
  String _idString = '1';
  ScreenConfig _selectedScreenConfig = ScreenConfig.fullScreen;

  final CmpConfig _cmpConfig = CmpConfig(
      id: _cmpId,
      domain: _cmpDomain,
      appName: _cmpAppName,
      language: _cmpLanguage,
      timeout: 8000,
      screenConfig: ScreenConfig.halfScreenBottom,
      isAutomaticATTRequest: true,
      iosPresentationStyle: IosPresentationStyle.pagesheet,
      androidPresentationStyle: AndroidPresentationStyle.dialog);

  late CmpSdk _cmpSdkPlugin;

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      initCmp();
    });
  }

  void _updateCmpUiConfig(ScreenConfig screenConfig) async {
    await _cmpSdkPlugin.configureConsentLayer(config: screenConfig);
  }

  Future<void> initCmp() async {
    try {
      _cmpSdkPlugin = CmpSdk.createInstanceWithConfig(_cmpConfig);
      await _cmpSdkPlugin.initialize();
      setEventCallbacks();					// Set like on the example below, on the next topic
    } on PlatformException {
      if (kDebugMode) {
        print("platform not supported");
      }
    }

    if (!mounted) return;
  }

Terugbelverzoeken voor evenementen

Met de SDK kunt u callbacks instellen voor verschillende gebeurtenissen op de toestemmingslaag, zoals openen, sluiten, fouten en klikken op knoppen. Dit is handig voor logboekdoeleinden of voor het uitvoeren van aanvullende logica op basis van gebruikersinteracties.

_cmpSdkPlugin.setCallbacks(
  onOpen: () => logCallback('Consent layer opened'),
  onClose: () => logCallback('Consent layer closed'),
  onError: (type, message) => logCallback('Error: $type - $message'),
  onButtonClicked: (buttonType) => logCallback('Button clicked: $buttonType'),
);

De SDK biedt methoden om toestemming wereldwijd te accepteren of af te wijzen, toestemmingsgegevens opnieuw in te stellen en de toestemmingslaag te openen voor gebruikersinteractie.

  • Accepteer Cookies: await _cmpSdkPlugin.acceptAll();
  • Alles afwijzen: await _cmpSdkPlugin.rejectAll();
  • Check: await _cmpSdkPlugin.check();
  • Toestemming opnieuw instellen: await _cmpSdkPlugin.reset();
  • Open toestemmingslaag: await _cmpSdkPlugin.open();

CMP-tekenreeks exporteren en importeren

De CMP-tekenreeks die de toestemmingsvoorkeuren van de gebruiker vertegenwoordigt. U kunt het importeren in de CMP SDK om deze voorkeuren toe te passen. Dit kan handig zijn voor het overbrengen van toestemmingsvoorkeuren tussen verschillende delen van uw applicatie of voor het extern opslaan ervan.

Future<void> importUserConsent(String cmpString) async {
  try {
    final bool success = await CmpSdkPlatform.instance.importCmpString(cmpString);
    if (success) {
      // CMP string was successfully imported
      print("CMP String successfully imported.");
      // The user's consent preferences are now updated according to the imported string
    } else {
      // Handle the case where the import was unsuccessful
      print("Failed to import CMP String.");
    }
  } catch (error) {
    // Handle any errors that occur during import
    print("Error importing CMP String: $error");
  }
}

Future<void> exportUserConsent() async {
  try {
    final String? cmpString = await CmpSdkPlatform.instance.exportCmpString();
    if (cmpString != null) {
      // CMP string successfully retrieved
      print("CMP String: $cmpString");
      // You can now store this string or share it as needed
    } else {
      // Handle the case where CMP string is null
      print("No CMP String available.");
    }
  } catch (error) {
    // Handle any errors that occur during export
    print("Error exporting CMP String: $error");
  }
}

U kunt verschillende toestemmingsgerelateerde informatie ophalen met behulp van de methoden van de SDK, zoals controleren of toestemming vereist is, de huidige toestemmingsstatus ophalen en toestemming verkrijgen voor specifieke leveranciers of doeleinden.

Een aangepaste lay-out maken

await _cmpSdkPlugin.configureConsentLayer(CmpUiConfig(screenConfig: ScreenConfig.fullScreen));
Beschikbare lay-outs
  • volledig scherm
  • halfSchermBottom
  • halfSchermTop
  • middenScherm
  • klein middenscherm
  • grootTopScreen
  • groot onderste scherm

 

Terug naar boven