[iOS] 1. consentmanager SDK-integratie
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.
1. Installatie
consentmanager SDK is een uitgebreide oplossing voor het beheren van gebruikerstoestemming in mobiele applicaties. Deze SDK is ontworpen om GDPR-naleving, gebruikersprivacyvoorkeuren en transparantie bij het volgen van advertenties te verwerken en biedt een naadloze integratie voor iOS- en Android-platforms. Daarnaast biedt het wrapper-plugins/bruggen voor React Native, Flutter en Unity, waardoor het veelzijdig is in verschillende ontwikkelomgevingen.
Stappen - Beschrijving op hoog niveau
-
Integratie en configuratie:
- Integreer de SDK in uw app.
- Configureer de SDK-instellingen volgens uw behoeften.
-
Een instantie maken en de toestemmingslaag weergeven:
- Maak bij het opstarten van de app een exemplaar van het
CMPManager
klas. Deze instantie zal het toestemmingsproces afhandelen. - De SDK geeft indien nodig automatisch het toestemmingsscherm weer.
- Maak bij het opstarten van de app een exemplaar van het
-
Verwerking van toestemmingsgegevens van gebruikers:
- Zodra toestemmingen zijn verzameld, wordt informatie opgeslagen en is deze beschikbaar voor query's via verschillende eigenschappen en methoden die door onze SDK worden blootgesteld. U krijgt informatie over afgewezen of geaccepteerde toestemmingen, leveranciers en doeleinden.
1.1 Integratie en configuratie
Optie 1: CocoaPods
Voeg de volgende regel toe aan uw Podfile:
pod 'cm-sdk-ios-v3', '3.0.0'
Voer dan uit:
pod install --repo-update
Optie 2: Swift Package Manager
- Download het nieuwste XCFramework van onze GitHub geeft pagina vrij.
- Ga op XCode naar het menu
File
>Add Package Dependency
. - Voeg hierboven de SDK Repository URL toe
- SPM haalt nu de repository op en vraagt u een versie te selecteren.
U kunt ervoor kiezen om het pakket toe te voegen door een versieregel te selecteren:
-Up to Next Major
: Hiermee wordt het pakket bijgewerkt naar de volgende hoofdversie. Het is de aanbevolen optie omdat het updates toevoegt die geen belangrijke wijzigingen hebben.
-Up to Next Minor
: Hiermee wordt het pakket bijgewerkt naar de volgende secundaire versie.
-Exact
: Hiermee vergrendelt u het pakket op een specifieke versie. Er worden geen updates geïnstalleerd. - Importeer de SDK door bovenaan de klassen die de methoden van de SDK implementeren de onderstaande regel in te voegen:
import cm_sdk_ios_v3
- Ga in de instellingen van uw doelgroep naar 'Algemeen' > 'Frameworks, bibliotheken en ingesloten inhoud' en zorg ervoor dat het framework is ingesteld op 'Insluiten en ondertekenen'.
1.2 Een instantie maken en de toestemmingslaag weergeven
Binnen de app-start (uw viewDidLoad
function), moet u een instantie van klasse maken CMPManager
. U moet twee objecten instellen die worden doorgegeven aan de getInstance-methode: UrlConfig
, die uw CMP-configuratie afhandelt, zoals Code-ID en standaardtaal, en ConsentLayerUIConfig
. die de looks van de WKWebView configureert die de toestemmingslaag zal weergeven. Daarna geeft u de huidige ViewController
met behulp van de methode setPresentingViewController
, en ken de gedelegeerde toe, zoals hieronder getoond. In het onderstaande voorbeeld kunt u beide objecten vinden die worden doorgegeven. De checkWithServerAndOpenIfNecessary()
functie haalt automatisch de benodigde gegevens op van onze server en bepaalt of het toestemmingsscherm moet worden weergegeven of niet. Als dat zo is, toont de SDK op dit punt automatisch het toestemmingsscherm, via een WKWebView
gemaakt door onze SDK, die de toestemmingslaag weergeeft met de tekst en knoppen volgens uw CMP-configuraties (gekozen via de Code-ID van uw CMP), de gegevens verzamelt en de toestemmingsinformatie opslaat in het NSUserDefaults-gebied van het apparaat, zodat de app de gerichte advertenties dienovereenkomstig kan weergeven.
Houd er rekening mee dat het van cruciaal belang is om de CMPManager
SDK in de viewDidLoad
anders is de weergave mogelijk niet klaar voor gebruik en kan de SDK mislukken. Zorg er ook voor dat u de juiste configuratiegegevens gebruikt. De configuratiegegevens vindt u in uw consentmanager account bij Menu > CMP's > Code voor apps ophalen > Code-ID
Houd er ook rekening mee dat de functionaliteiten die betrekking hebben op het bepalen of toestemming nodig is of niet, evenals de weergave van de toestemmingslaag, afhankelijk zijn van een betrouwbare netwerkverbinding. Als er geen verbinding beschikbaar is of als het mechanisme van opnieuw proberen onze server niet bereikt, retourneert de gebeurtenis didReceiveError een time-outfout, en kan de SDK dus helemaal niet bepalen of er toestemming nodig is, omdat de toestemmingslaag helemaal niet kan worden weergegeven. Zorg ervoor dat uw logica hiermee rekening houdt.
Voorbeeld:
import cm_sdk_ios_v3
class YourViewController: UIViewController, CMPManagerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let cmpManager = CMPManager.shared
cmpManager.setUrlConfig(UrlConfig(
id: "your_id_here", // example: a000aaaaa1a
domain: "your_domain_here", // usually, delivery.consentmanager.net
language: "your_language_here", // example: DE
appName: "Your App Name")) // example: testApp
cmpManager.setWebViewConfig(ConsentLayerUIConfig(
position: .fullScreen,
backgroundStyle: .dimmed(.black, 0.5),
cornerRadius: 5,
respectsSafeArea: true,
allowsOrientationChanges: true))
cmpManager.setPresentingViewController(self)
cmpManager.delegate = self
cmpManager.checkWithServerAndOpenIfNecessary { error in
if let error = error {
print("Error initializing consent: \(error)")
} else {
print("ConsentManager initialized and consent received and stored on the device's NSUserDefaults.")
}
}
}
1.3 Verwerking van toestemmingsgegevens van gebruikers
Controleren van toestemmingen van gebruikers
Onze SDK biedt verschillende methoden om toestemmingsinformatie te controleren en op te halen. De belangrijkste methoden worden weergegeven in het onderstaande voorbeeld:
// On the example below retrieved from our Demo App, we have some examples
// of how to check consents from the user, either accepted or rejected.
let hasConsent = CMPManager.shared.hasUserChoice() // checks if the user has already accepted/rejected consents
let hasPurposeC53 = CMPManager.shared.hasPurposeConsent(id: "c53") // checks if the user accepted the purpose "c53"
let hasVendorS2790 = CMPManager.shared.hasVendorConsent(id: "s2790") // checks if the user accepted the vendor "s2790"
Voor meer informatie over de andere methoden verwijzen wij u naar onze volledige API-documentatie.
De toestemmingslaag opnieuw openen om de keuzes van de gebruikers te controleren
Om de gebruiker toe te staan zijn keuzes te verifiëren of te wijzigen, kunt u eenvoudig bellen openConsentLayer()
cmpManager.openConsentLayer()
Met deze methode wordt de toestemmingslaag weergegeven via hetzelfde WKWebView-exemplaar dat in de vorige stappen is gemaakt.
Importeren/exporteren van toestemmingsinformatie naar andere bronnen
In sommige gevallen kan een native app webviews bevatten om informatie weer te geven, zoals advertenties of content. Om de toestemmingsinformatie van de SDK naar de webview te verzenden, kunt u de toestemmingsstring ophalen met:
consentData = cmpManager.exportCMPInfo()
Hiermee worden de toestemmingsinformatie en alle verdere gegevens die nodig zijn voor de CMP geëxporteerd. U kunt deze informatie vervolgens doorgeven aan de CMP die zich in uw webview bevindt door deze toe te voegen aan de URL die in de webview wordt aangeroepen.
Als u de toestemmingsreeks anders met behulp van de SDK moet importeren, kunt u het onderstaande voorbeeld gebruiken:
let consentStringToImport = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(consentStringToImport)
Integratie met Apple Tracking Transparency (ATT)
Als u tracking of analytics in uw app gebruikt, raden we u aan de handleiding te lezen ATT-implementatie hier.
Een aangepaste lay-out maken
Om een aangepaste weergave van de WKWebView te maken, bijvoorbeeld door de positie of achtergrond te wijzigen, kunt u de configuratie die is doorgegeven aan het ConsentLayerUIConfig-object als volgt wijzigen:
ConsentLayerUIConfig(
position: .halfScreenTop,
backgroundStyle: .dimmed(.grey, 0.75),
cornerRadius: 20,
respectsSafeArea: false,
allowsOrientationChanges: true)
Logging
Wanneer u onze iOS SDK gebruikt, kan het nodig zijn om loginformatie te debuggen of analyseren voor verschillende doeleinden. De logs die door onze SDK worden gegenereerd, zijn getagd onder "CMP", zodat u eenvoudig de relevante logs kunt filteren en bekijken. Raadpleeg voor meer informatie deze sectie van onze documentatie.