Info
Inhalt

[iOS] 2. API-Dokumentation

Die CMPManager Die Klasse bietet Methoden zum Verwalten der Benutzereinwilligung zur Datenverarbeitung und -verfolgung. Diese Dokumentation behandelt die wichtigsten verfügbaren Methoden für die Integration mobiler Apps.

Initialisierung

setUrlConfig(:UrlConfig)

Legt die URL-Konfiguration für die Consent Manager.

Parameter:

  • config: Ein  UrlConfig Objekt mit den folgenden Eigenschaften:
    • id: String – Die CMP-ID
    • domain: String – Die Domäne für das Einwilligungsmanagement
    • language: String - Der Sprachcode (z. B. „EN“)
    • appName: String - Der Name Ihrer App

Rücksendung: Leere

Beispiel:

CMPManager.shared.setUrlConfig(UrlConfig(
    id: "0a000000000a1",
    domain: "delivery.consentmanager.net",
    language: "EN",
    appName: "MyApp"
))

setWebViewConfig(_ :ConsentLayerUIConfig)

Konfiguriert das Erscheinungsbild und Verhalten der Zustimmungs-WebView. Sie können die Position festlegen, an der das WKWebiew-Objekt, das die Zustimmungsebene anzeigt, angezeigt wird, z. B. im Vollbildmodus, in der unteren oder oberen Hälfte des Bildschirms. Außerdem können der Hintergrundstil sowie der Eckradius angewendet werden, ob der sichere Bereich des Geräts respektiert wird und ob auf Ausrichtungsänderungen reagiert wird oder nicht, falls Ihr Mobiltelefon nur in einer einzigen Ausrichtung funktioniert, was normalerweise bei Spielen der Fall ist, die nur die horizontale Konfiguration des Gerätebildschirms verwenden.   

Parameter:

  • config: Ein  ConsentLayerUIConfig Objekt mit den folgenden Eigenschaften:
    • position: Position – Die Position der WebView (z. B. .fullScreen)
    • backgroundStyle: BackgroundStyle – Der Hintergrundstil (z. B. .dimmed)
    • cornerRadius: CGFloat - Der Eckradius des WebView
    • respectsSafeArea: Bool – Ob der Sicherheitsbereich respektiert werden soll
    • allowsOrientationChanges: Bool – Gibt an, ob Ausrichtungsänderungen zulässig sind

Rücksendung: Leere

Beispiel:

CMPManager.shared.setWebViewConfig(ConsentLayerUIConfig(
    position: .fullScreen,
    backgroundStyle: .dimmed(.black, 0.5),
    cornerRadius: 10,
    respectsSafeArea: true,
    allowsOrientationChanges: true
))

setPresentingViewController(_ :viewController)

Legt den View-Controller fest, der die Zustimmungsebene präsentiert. Normalerweise übergeben Sie self als aktueller View Controller. 

Parameter:

  • viewController: UIViewController - Der View-Controller zur Darstellung der Zustimmungsebene

Rücksendung: Leere

Beispiel:

CMPManager.shared.setPresentingViewController(self)

checkIfConsentIsRequired(:Abschluss)

Parameter:

  • completion: (Bool) -> Void - Ein Abschluss, der mit dem Ergebnis aufgerufen wird, entweder true or false.

Rücksendung: Stimme

Beispiel:

CMPManager.shared.checkIfConsentIsRequired { required in
    print("Consent is required: \(required)")
}

checkWithServerAndOpenIfNecessary(:Abschluss)

Prüft beim Server, ob eine Zustimmung erforderlich ist, und öffnet bei Bedarf die Zustimmungsebene. Dadurch wird ein Netzwerkaufruf an unsere Server über das in unserem SDK erstellte WKWebView durchgeführt. einen Seitenaufruf verbrauchen im Prozess. Dieser Netzwerkaufruf sendet über JavaScript eine Nachricht an unser Backend, das erkennt, ob das Gerät über eine gültige Zustimmung verfügt oder nicht, was wiederum bestimmt, ob die Zustimmungsebene angezeigt werden muss oder nicht.  

Parameter:

  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist.

Rücksendung: Leere

Beispiel:

CMPManager.shared.checkWithServerAndOpenIfNecessary { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Check completed successfully")
    }
}

jumpToSettings(:Vervollständigung)

Parameter:

  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.jumpToSettings { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Jumped to settings successfully")
    }
}

openConsentLayer(:Vervollständigung)

Parameter:

  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist und entweder eine erfolgreiche Ausführung oder einen Fehler zurückgibt. 

Rücksendung: Leere

Verbrauchte Seitenaufrufe: 1

Beispiel:

CMPManager.shared.openConsentLayer { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Consent layer opened successfully")
    }
}

exportCMPInfo()

Exportiert die aktuell auf dem Gerät gespeicherten Zustimmungsinformationen als Zeichenfolge. Diese Methode ruft die Zustimmungszeichenfolge aus dem Bereich „UserDefaults“ des Geräts ab und gibt sie zurück. Normalerweise werden diese Informationen an den importCMPInfo Methode.

Rücksendung: String - Die exportierten Einwilligungsinformationen

Beispiel:

let cmpInfo = CMPManager.shared.exportCMPInfo()
print("Exported CMP info: \(cmpInfo)")

hatZustimmung zum Zweck(id:)

Hinweis: Prüfen Sie immer zuerst, ob hasUserChoice() vorhanden ist! In Fällen, in denen keine Auswahlmöglichkeit besteht, kann die Funktion unerwartete Rückgabewerte zurückgeben.

Parameter:

  • id: String - Die ID des zu prüfenden Zwecks

Rücksendung: Bool - True wenn eine Einwilligung vorliegt, false Andernfalls

Beispiel:

let hasPurposeConsent = CMPManager.shared.hasPurposeConsent(id: "c53")
print("Has consent for purpose c53: \(hasPurposeConsent)")

hatBenutzerauswahl()

Überprüft, ob der Benutzer eine Auswahl bezüglich der Einwilligungen getroffen hat und diese Einwilligung auf dem Gerät gespeichert ist. Das bedeutet, dass der Benutzer entweder alle Einwilligungen akzeptiert, alle abgelehnt oder eine gemischte Auswahl aus abgelehnten und akzeptierten Einwilligungen getroffen hat, je nach CMP-Design, was es den Benutzern ermöglichen könnte, einige der Einwilligungen zuzulassen und andere abzulehnen. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „UserDefaults“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: Bool - true wenn der Benutzer eine Auswahl getroffen hat, false Andernfalls

Beispiel:

let hasChoice = CMPManager.shared.hasUserChoice()
print("User has made a choice: \(hasChoice)")

hatVendorConsent(:String)

Parameter:

  • id: String - Die ID des zu prüfenden Lieferanten

Rücksendung: Bool - True wenn eine Einwilligung vorliegt, false Andernfalls

Beispiel:

let hasVendorConsent = CMPManager.shared.hasVendorConsent(id: "s2789")
print("Has consent for vendor s2789: \(hasVendorConsent)")

Zweck- und Lieferantenmanagement

getAllPurposesIDs()

Ruft gemäß den CMP-Konfigurationen alle auf dem Gerät gespeicherten Zweck-IDs ab. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „UserDefaults“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: [String] - Ein Array von Allzweck-IDs

Beispiel:

let allPurposes = CMPManager.shared.getAllPurposesIDs()
print("All purposes: \(allPurposes)")

getAllVendorsIDs()

Ruft gemäß den CMP-Konfigurationen alle auf dem Gerät gespeicherten Anbieter-IDs ab. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „UserDefaults“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: [String] - Ein Array aller Lieferanten-IDs

Beispiel:

let allVendors = CMPManager.shared.getAllVendorsIDs()
print("All vendors: \(allVendors)")

getDisabledPurposesIDs()

Ruft die IDs aller deaktivierten Zwecke ab, die auf dem Gerät gespeichert sind, entsprechend den CMP-Konfigurationen und den Benutzereinstellungen. Wenn der Benutzer alle Zustimmungen akzeptiert, ist dieses Feld leer.  Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „UserDefaults“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: [String] - Ein Array von deaktivierten Zweck-IDs

Beispiel:

let disabledPurposes = CMPManager.shared.getDisabledPurposesIDs()
print("Disabled purposes: \(disabledPurposes)")

getDisabledVendorsIDs()

Ruft die IDs aller deaktivierten Anbieter ab, die auf dem Gerät gespeichert sind, gemäß den CMP-Konfigurationen. Wenn der Benutzer alle Zustimmungen akzeptiert, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „UserDefaults“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: [String] - Ein Array deaktivierter Lieferanten-IDs

Beispiel:

let disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
print("Disabled vendors: \(disabledVendors)")

getEnabledPurposesIDs()

Ruft die IDs aller aktivierten Zwecke ab, die auf dem Gerät gespeichert sind, gemäß den CMP-Konfigurationen. Wenn der Benutzer alle Zustimmungen ablehnt, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „UserDefaults“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: [String] - Ein Array aktivierter Zweck-IDs

Beispiel:

let enabledPurposes = CMPManager.shared.getEnabledPurposesIDs()
print("Enabled purposes: \(enabledPurposes)")

getEnabledVendorsIDs()

Ruft die IDs aller aktivierten Anbieter ab, die auf dem Gerät gespeichert sind. Wenn der Benutzer alle Zustimmungen ablehnt, ist dieses Feld leer. Diese Informationen sind erst dann aktuell, wenn die Zustimmung im Bereich „UserDefaults“ ordnungsgemäß gespeichert wurde., wenn Sie also direkt nach der Verwendung von Methoden prüfen, die Änderungen in der Zustimmung auslösen, wie openConsentLayer, acceptAll or rejectAll, dann zum Beispiel Warten Sie, bis der Rückruf dieser Methoden ausgelöst wird, bevor Sie auf die Methode zugreifen. hasUserChoice, um sicherzustellen, dass die Informationen aktuell sind.

Rücksendung: [String] - Ein Array aktivierter Lieferanten-IDs

Beispiel:

let enabledVendors = CMPManager.shared.getEnabledVendorsIDs()
print("Enabled vendors: \(enabledVendors)")

Alles akzeptieren(:Abschluss)

Parameter:

  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.acceptAll { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("All consents accepted successfully")
    }
}

Zwecke akzeptieren(:Zwecke:Zweck aktualisieren:Abschluss)

Parameter:

  • purposes: [String] - Ein Array von zu akzeptierenden Zweck-IDs
  • updatePurpose: Bool – Ob verwandte Zwecke aktualisiert werden sollen
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.acceptPurposes(["c52", "c53"], updatePurpose: true) { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Purposes accepted successfully")
    }
}

Anbieter akzeptieren(:Anbieter:Abschluss)

Parameter:

  • vendors: [String] - Ein Array von zu akzeptierenden Lieferanten-IDs
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.acceptVendors(["s2790", "s2791"]) { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Vendors accepted successfully")
    }
}

importCMPInfo(:String:Abschluss)

Parameter:

  • cmpString: String – Der zu importierende CMP-String
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

let cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
CMPManager.shared.importCMPInfo(cmpString) { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("CMP info imported successfully")
    }
}

Alle ablehnen(:Vervollständigung)

Parameter:

  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.rejectAll { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("All consents rejected successfully")
    }
}

Zwecke ablehnen(:Zwecke:Anbieter aktualisieren:Abschluss)

Parameter:

  • purposes: [String] - Ein Array von Zweck-IDs, die abgelehnt werden sollen
  • updateVendor: Bool – Gibt an, ob zugehörige Anbieter aktualisiert werden sollen
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.rejectPurposes(["c52", "c53"], updateVendor: true) { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Purposes rejected successfully")
    }
}

Anbieter ablehnen(:Anbieter:Abschluss)

Parameter:

  • vendors: [String] - Ein Array von Lieferanten-IDs, die abgelehnt werden sollen
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.rejectVendors(["s2790", "s2791"]) { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Vendors rejected successfully")
    }
}

 

ResetConsentManagementData (Abschluss:)

Parameter:

  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist

Rücksendung: Leere

Beispiel:

CMPManager.shared.resetConsentManagementData { error in
    if let error = error {
        print("Error: \(error.localizedDescription)")
    } else {
        print("Consent management data reset successfully")
    }
}

Tracking Transparency (ATT) App

AnfrageATTAuthorization(Abschluss:)

Fordert die App Tracking Transparency-Autorisierung vom Benutzer an. Weitere Informationen finden Sie in der offizielle Apple-Dokumentation

Parameter:

  • completion: (ATTAuthorizationStatus) -> Void – Ein aufgerufener Abschluss mit dem resultierenden Autorisierungsstatus

Rücksendung: Leere

Verfügbarkeit: iOS 14.0 +

Beispiel:

if #available(iOS 14, *) {
    CMPManager.shared.requestATTAuthorization { status in
        switch status {
        case .authorized:
            print("ATT: User authorized tracking")
        case .denied:
            print("ATT: User denied tracking")
        case .restricted:
            print("ATT: Tracking is restricted")
        case .notDetermined:
            print("ATT: Status not determined")
        @unknown default:
            print("ATT: Unknown status")
        }
    }
} else {
    print("ATT is not available on this device")
}

getATTAuthorizationStatus()

Ruft den aktuellen Autorisierungsstatus von App Tracking Transparency ab. Weitere Informationen finden Sie im offizielle Apple-Dokumentation.

Rücksendung: ATTAuthorizationStatus - Der aktuelle Autorisierungsstatus

Verfügbarkeit: iOS 14.0 +

Beispiel:

if #available(iOS 14, *) {
    let status = CMPManager.shared.getATTAuthorizationStatus()
    print("Current ATT status: \(status)")
} else {
    print("ATT is not available on this device")
}

CMPManagerDelegate-Ereignisse

didReceiveConsent(Zustimmung: String, jsonObject: [String: Beliebig])

Dies wird ausgelöst, wenn die Zustimmungsebene geschlossen wurde, nachdem der Benutzer seine Zustimmungen aktualisiert hatte, ODER wenn Methoden aufgerufen werden, die Änderungen an den Zustimmungen bewirken, wie „acceptAll“, „rejectAll“, „acceptVendors“, „rejectVendors“ usw. Dies bedeutet, dass der Benutzer einige oder alle Zustimmungen akzeptiert oder abgelehnt hat und dass diese korrekt auf dem Gerät gespeichert wurden.

didShowConsentLayer

Dies wird ausgelöst, wenn die Zustimmungsebene tatsächlich angezeigt wurde. Es bedeutet, dass auf dem Gerät keine gültige Zustimmung vorhanden war und daher eine neue eingeholt werden muss.

didCloseConsentLayer


Dies wird ausgelöst, wenn das SDK die Notwendigkeit einer Zustimmung überprüft hat, diese aber nicht erforderlich war und die Ebene nicht angezeigt wurde. Das bedeutet, dass bereits eine gültige Zustimmung im Gerät vorhanden ist, sodass keine neue Zustimmung erforderlich ist und die Zustimmungsebene nicht angezeigt wird.

hatFehler erhalten

Dies wird ausgelöst, wenn beim SDK ein Fehler auftritt und der Code zurückgegeben wird.

 

Nach oben