[iOS] 1. consentmanager SDK Integration

In diesem Dokument finden Sie allgemeine Informationen zur Integration unseres SDK in Ihr Projekt. Weitere Details entnehmen Sie bitte unserer API-Referenzdokumentation. Alle folgenden Codeausschnitte stammen aus unserer Demo-App

1. Installation

Das ConsentManager SDK ist eine umfassende Lösung zur Verwaltung der Einwilligung von Nutzern in mobilen Anwendungen. Dieses SDK wurde entwickelt, um die Einhaltung der DSGVO, die Datenschutzpräferenzen der Nutzer und die Transparenz beim Ad-Tracking zu gewährleisten, und bietet eine nahtlose Integration für iOS- und Android-Plattformen. Darüber hinaus bietet es Wrapper-Plugins/Bridges für React Native, Flutter und Unity, wodurch es in verschiedenen Entwicklungsumgebungen vielseitig einsetzbar ist.

Schritte – Allgemeine Beschreibung

  1. Integration und Konfiguration:

    • Integrieren Sie das SDK in Ihre App.
    • Konfigurieren Sie die SDK-Einstellungen entsprechend Ihren Anforderungen.
  2. Erstellen einer Instanz und Anzeigen der Einwilligungsschicht:

    • Erstellen Sie beim Start der App eine Instanz der CMPManager Klasse. Diese Instanz übernimmt den Einwilligungsprozess.
    • Das SDK zeigt den Einwilligungsbildschirm bei Bedarf automatisch an.
  3. Verarbeitung der Einwilligungsdaten der Nutzer:

    • Sobald Einwilligungen erfasst wurden, werden die Informationen gespeichert und können über verschiedene Eigenschaften und Methoden, die unser SDK bereitstellt, abgefragt werden. Du erhältst Informationen über abgelehnte oder akzeptierte Einwilligungen, Anbieter und Zwecke.

1.1 Integration und Konfiguration

Option 1: CocoaPods

Fügen Sie die folgende Zeile zu Ihrer Podfile hinzu:

pod 'cm-sdk-ios-v3', '3.2.0'

Dann führen Sie Folgendes aus:

pod install --repo-update
Option 2: Swift Package Manager
  1. Laden Sie das neueste XCFramework von unserer GitHub-Release-Seite herunter.
  2. Gehen Sie in XCode zum Menü File >  Add Package Dependency.
  3. Fügen Sie oben die URL des SDK-Repositorys ein
  4. SPM ruft nun das Repository ab und fordert Sie auf, eine Version auszuwählen.
    Sie können das Paket hinzufügen, indem Sie eine Versionsregel auswählen
    :- Up to Next Major: Dadurch wird das Paket auf die nächste Hauptversion aktualisiert. Dies ist die empfohlene Option, da sie Updates hinzufügt, die keine grundlegenden Änderungen beinhalten
    Up to Next Minor: Dadurch wird das Paket auf die nächste Nebenversion
    aktualisiert.- Exact: Dadurch wird das Paket auf eine bestimmte Version festgelegt. Es werden keine Updates installiert.
  5. Importieren Sie das SDK, indem Sie am Anfang der Klassen, die die Methoden des SDK implementieren, die folgende Zeile einfügen:
import cm_sdk_ios_v3
  1. Gehen Sie in den Einstellungen Ihres Ziels zu „Allgemein“ > „Frameworks, Bibliotheken und eingebettete Inhalte“ und stellen Sie sicher, dass das Framework auf „Einbetten & Signieren“ eingestellt ist.

1.2 Instanz erstellen und Einwilligungslayer anzeigen

Innerhalb der App-Start-Funktion viewDidLoad Funktion) musst du eine Instanz der Klasse CMPManager. Du musst zwei Objekte einrichten, die an die getInstance-Methode übergeben werden:  UrlConfig, das Ihre CMP-Konfiguration wie Code-ID und Standardsprache verwaltet, und ConsentLayerUIConfig. die das Aussehen der WKWebView konfiguriert, in der die Einwilligungsschicht angezeigt wird. Danach übergeben Sie die aktuelle ViewController mit der Methode setPresentingViewControllerund dem Delegaten zuweisen, wie unten gezeigt. Im folgenden Beispiel finden Sie beide übergebenen Objekte. Die checkWithServerAndOpenIfNecessary() Funktion ruft automatisch die erforderlichen Daten von unserem Server ab und ermittelt, ob der Einwilligungsbildschirm angezeigt werden muss oder nicht. Ist dies der Fall, zeigt das SDK an dieser Stelle automatisch den Einwilligungsbildschirm über ein WKWebView von unserem SDK erstellten, der die Einwilligungsschicht mit dem Text und den Schaltflächen gemäß Ihren CMP-Konfigurationen (ausgewählt über die Code-ID Ihres CMP) anzeigt, die Daten erfasst und die Einwilligungsinformationen im NSUserDefaults-Bereich des Geräts speichert, damit die App die gezielten Anzeigen entsprechend anzeigen kann. 

Bitte beachten Sie, dass es unerlässlich ist, das CMPManager SDK in der viewDidLoad Methode zu deklarieren und zu initialisieren, da die Ansicht sonst möglicherweise nicht einsatzbereit ist und das SDK fehlschlagen kann. Stellen Sie außerdem sicher, dass Sie die richtigen Konfigurationsdaten verwenden. Die Konfigurationsdaten finden Sie in Ihrem ConsentManager-Konto unter Menü > CMPs > Code für Apps abrufen > Code-ID

Beachten Sie bitte auch, dass die Funktionen zur Feststellung, ob eine Einwilligung erforderlich ist oder nicht, sowie die Anzeige des Einwilligungsfensters von einer zuverlässigen Netzwerkverbindung abhängen. Wenn keine Verbindung verfügbar ist oder der Wiederholungsmechanismus unseren Server nicht erreichen kann, gibt das didReceiveError-Ereignis einen Timeout-Fehler zurück, sodass das SDK die Notwendigkeit einer Einwilligung überhaupt nicht feststellen kann, da es die Einwilligungsmaske nicht anzeigen kann. Bitte stellen Sie sicher, dass Ihre Logik dies berücksichtigt.

Beispiel:

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.checkAndOpen { 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 Verarbeitung der Einwilligungsdaten der Nutzer

Überprüfung der Einwilligungen der Nutzer

Unser SDK bietet eine einheitliche Methode zur Überprüfung und Abfrage von Einwilligungsinformationen, getUserStatus():

let status = CMPManager.shared.getUserStatus()
var message = "Status: (status.status)nn"

message += "Vendors:n"
for (vendorId, state) in status.vendors {
    message += "- (vendorId): (state)n"
}

message += "nPurposes:n"
for (purposeId, state) in status.purposes {
    message += "- (purposeId): (state)n"
}

message += "nTCF: (status.tcf)n"
message += "Additional Consent: (status.addtlConsent)n"
message += "Regulation: (status.regulation)"

print(message)

Weitere Informationen zu den anderen Methoden finden Sie in unserer vollständigen API-Dokumentation

Erneutes Öffnen der Einwilligungsschicht, um die Auswahl der Nutzer zu überprüfen

Damit der Nutzer seine Auswahl überprüfen oder ändern kann, können Sie einfach openConsentLayer()

cmpManager.forceOpen()

Diese Methode zeigt die Einwilligungsschicht über dieselbe WKWebView-Instanz an, die in den vorherigen Schritten erstellt wurde. 

Importieren/Exportieren von Einwilligungsinformationen in andere Quellen

In einigen Fällen kann eine native App Webviews enthalten, um Informationen wie Werbung oder Inhalte anzuzeigen. Um die Einwilligungsinformationen vom SDK an den Webview zu übermitteln, können Sie die Einwilligungszeichenfolge wie folgt abrufen:

consentData = cmpManager.exportCMPInfo()

Dadurch werden die Einwilligungsinformationen und alle weiteren Daten exportiert, die von der CMP benötigt werden. Du kannst diese Informationen dann an die CMP in deiner Webview weiterleiten, indem du sie der URL hinzufügst, die in der Webview aufgerufen wird.

Falls du die Einwilligungszeichenfolge stattdessen über das SDK importieren musst, kannst du das folgende Beispiel verwenden:

let consentStringToImport = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(consentStringToImport)

Integration mit Apple Tracking Transparency (ATT)

Falls Sie in Ihrer App Tracking- oder Analysefunktionen verwenden, empfehlen wir Ihnen, den Leitfaden zur ATT-Implementierung hier zu lesen.

Erstellen eines benutzerdefinierten Layouts

Um eine angepasste Ansicht des WKWebView zu erstellen, beispielsweise durch Ändern der Positionierung oder des Hintergrunds, können Sie die an das ConsentLayerUIConfig-Objekt übergebene Konfiguration wie folgt ändern:

ConsentLayerUIConfig(
    position: .halfScreenTop,
    backgroundStyle: .dimmed(.grey, 0.75),
    cornerRadius: 20,
    respectsSafeArea: false,
    allowsOrientationChanges: true)

Anmeldung

Wenn Sie unser iOS-SDK verwenden, kann es vorkommen, dass Sie aus verschiedenen Gründen Log-Informationen debuggen oder analysieren müssen. Die von unserem SDK generierten Logs sind mit dem Tag „CMP“ versehen, sodass Sie die relevanten Logs leicht filtern und anzeigen können. Weitere Informationen finden Sie in diesem Abschnitt unserer Dokumentation.

 

We do our best to keep this purely informative documentation up to date. However, if you notice that any of these guides need a little touch-up, let us know!