Info
Innehåll

[Flamma] 1. consentmanager SDK-integration

I det här dokumentet hittar du allmän information om hur du integrerar vår SDK i ditt projekt. För ytterligare information, se vår API-referens dokumentation. SDK finns på pub.dev .

1. Installation

Smakämnen consentmanager SDK för iOS-appar implementerar och tillhandahåller funktionalitet för att informera användaren om dataskydd och fråga och samla in samtycke från användaren. Det gör det möjligt för app-utvecklare att enkelt integrera consentmanager tjänst i deras app.

Steg - Beskrivning på hög nivå

  1. Integration och konfiguration:

    • Integrera SDK:n i din app.
    • Konfigurera SDK-inställningarna efter dina behov.
  2. Skapa en instans:

    • Vid appstart skapar du en instans av CMPManager klass. Denna instans kommer att hantera samtyckesprocessen.
  3. SDK-initiering:
    • När instansen är klar hämtar SDK automatiskt nödvändig information från consentmanager servrar för att förbereda för dess drift.
  4. Visar samtyckesskärmen:

    • SDK:n visar automatiskt samtyckesskärmen om det behövs när CMPManager.initialize()metod kallas.
  5. Behandling av personuppgifter:

    • När samtycken har samlats in lagras informationen och är tillgänglig för frågor genom olika egenskaper och metoder som exponeras av vår SDK. Du kommer att ha information om avvisade eller accepterade samtycken, leverantörer, syften etc.

Genom att följa dessa steg säkerställer du att din app är kompatibel med samtyckeskraven och att användarens samtycke hanteras och lagras korrekt.

Consent Manager Leverantörs SDK-sekvensdiagram

För att illustrera stegen ovan, låt oss kolla i diagrammet nedan tre möjliga SDK-sekvensflöden. 

1. När du skapar en instans med hjälp av initialisera funktion finns det två möjliga utfall. Den första är när consentmanger API informerar SDK om att CMP inte kommer att öppnas, vilket utlöser OnCmpNotOpenedCallback. Det andra resultatet är när samtyckesskiktet öppnas, så att användaren kan interagera med det, och detta utlöser OnOpenCallback. När användaren ger sitt samtycke och samtycket behandlats, PåCmpCloseCallback kallas.

Observera att Vid feluppringning representeras av de röda streckade pillinjerna för att ge exempel på när fel kan uppstå under processen.

Initialize-Cmp-Sequence-Diagram.png

2. Skapa en instans och anropa openAndCheckConsent funktioner kommer att leda till en liknande process. Skillnaden är att genom att frikoppla skapandet av instansen och kontrollen för consentmanger API får du möjligheten att lägga till affärslogik och interagera med bibliotekens API.

3. Skapa en instans och anropa openLayer funktionen öppnar lagret utan att markera consentmanager, om det är nödvändigt. Om det redan finns ett samtycke kommer alternativen och inställningarna att visas för användaren. Processflödet kommer att se ut så här:

openlayer-Cmp-Sequence-Diagram-.png

För ytterligare information om vår SDK-versionsöversikt och ändringslogg, se denna länk.

Installation via pub.dev

Kör detta kommando:

Med Fladder:

flutter pub add cmp_sdk

Detta kommer att lägga till en rad som denna till ditt pakets pubspec.yaml (och köra en implicit flutter pub get):

dependencies:  
	cmp_sdk: 2.5.4

Alternativt kan din redaktör stödja flutter pub get. Kontrollera dokumenten för din redaktör för att lära dig mer.

Importera

Nu i din Dart-kod kan du använda:

import 'package:cmp_sdk/cmp_sdk.dart';

2. Initiera SDK

Inom app-start måste du skapa en instans av klass CMPManager som kommer att vara tillgänglig via singleton-mönstret för resten av klasserna som kommer åt det. De initialize() funktionen hämtar automatiskt nödvändig data från vår server och avgör om samtyckesskärmen måste visas eller inte direkt vid appstartsevenemanget. Om så är fallet kommer SDK automatiskt att visa samtyckesskärmen vid denna tidpunkt, samla in data och tillhandahålla data till appen. Förekomsten kan sedan användas för att få samtyckesinformation från SDK:n för att kunna använda den i appen.

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

Återuppringningar av händelser

SDK:n gör det möjligt att ställa in återuppringningar för olika samtyckeslagerhändelser som öppning, stängning, fel och knappklick. Detta är användbart för loggningsändamål eller för att utföra ytterligare logik baserat på användarinteraktioner.

_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'),
);

SDK tillhandahåller metoder för att acceptera eller avvisa samtycke globalt, återställa samtyckesdata och öppna samtyckesskiktet för användarinteraktion.

  • Acceptera alla: await _cmpSdkPlugin.acceptAll();
  • Avvisa alla: await _cmpSdkPlugin.rejectAll();
  • Kolla upp: await _cmpSdkPlugin.check();
  • Återställ samtycke: await _cmpSdkPlugin.reset();
  • Öppna samtyckeslager: await _cmpSdkPlugin.open();

Exportera och importera CMP-sträng

CMP-strängen som representerar användarens samtyckespreferenser. Du kan importera den till CMP SDK för att tillämpa dessa inställningar. Detta kan vara användbart för att överföra samtyckesinställningar mellan olika delar av din applikation eller lagra dem externt.

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

Du kan hämta olika samtyckesrelaterad information med hjälp av SDK:s metoder, som att kontrollera om samtycke krävs, hämta den aktuella samtyckesstatusen och erhålla samtycke för specifika leverantörer eller ändamål.

Skapa en anpassad layout

await _cmpSdkPlugin.configureConsentLayer(CmpUiConfig(screenConfig: ScreenConfig.fullScreen));
Tillgängliga layouter
  • fullskärm
  • halfScreen Bottom
  • halfScreenTop
  • mittskärm
  • smallCenterSkärm
  • largeTopScreen
  • large Bottom Screen

 

Tillbaka till toppen