[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
-
Integratie en configuratie:
- Integreer de SDK in uw app.
- Configureer de SDK-instellingen volgens uw behoeften.
-
Een exemplaar maken:
- Maak bij het opstarten van de app een exemplaar van het
CMPManager
klas. Deze instantie zal het toestemmingsproces afhandelen.
- Maak bij het opstarten van de app een exemplaar van het
-
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.
-
Het toestemmingsscherm weergeven:
- De SDK geeft indien nodig automatisch het toestemmingsscherm weer wanneer de
CMPManager.initialize()
methode wordt genoemd.
- De SDK geeft indien nodig automatisch het toestemmingsscherm weer wanneer de
-
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.
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:
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'),
);
Toestemming beheren
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");
}
}
Toestemmingsstatus en informatie
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.
-
Controleer toestemmingsvereiste:
await _cmpSdkPlugin.check();
-
Krijg toestemmingsstatus: Implementeer een methode om de toestemmingsstatus op te halen en te compileren van verschillende SDK-methoden, zoals
exportCmpString
,hasConsent
,getAllVendors
, Etc.
Een aangepaste lay-out maken
De gebruikersinterface van de toestemmingslaag kan worden aangepast met behulp van het `CmpUiConfig`-object. U kunt de schermconfiguratie (bijvoorbeeld volledig scherm, half scherm) specificeren volgens de behoeften van uw toepassing.
await _cmpSdkPlugin.configureConsentLayer(CmpUiConfig(screenConfig: ScreenConfig.fullScreen));
Beschikbare lay-outs
- volledig scherm
- halfSchermBottom
- halfSchermTop
- middenScherm
- klein middenscherm
- grootTopScreen
- groot onderste scherm