Info
Inhalt

[iOS] 2. API-Dokumentation

Das 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. 

Alle unten aufgeführten Beispiele stammen aus unserer Demo-App.

Bitte überprüfen Sie die Veraltete Methoden falls Sie bereits Version 3 unseres CMP SDK integrieren.

Initialisierung

setUrlConfig()

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

Ejemplo:

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

setWebViewConfig()

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

Ejemplo:

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

setPresentingViewController()

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

Ejemplo:

CMPManager.shared.setPresentingViewController(self)

getUserStatus()

Gibt eine detaillierte Momentaufnahme des aktuellen Zustimmungsstatus und der Einstellungen des Benutzers zurück. Diese Methode bietet umfassende Informationen zu den Zustimmungsentscheidungen des Benutzers, einschließlich seines allgemeinen Zustimmungsstatus, der Berechtigungen einzelner Anbieter, zweckspezifischer Zustimmungen und relevanter Zustimmungszeichenfolgen.

Parameter:

  • Keine

Rücksendung:

Rückgabetyp: CMPUserStatusResponse Objekt, im Code unten erklärt. 

Ejemplo:

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

checkAndOpen()

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:

  • jumpToSettings: Ein Boolescher Wert, der bestimmt, ob die angezeigte Zustimmungsebene automatisch zu der Seite führt, auf der eine genauere Kontrolle über die von den Benutzern erteilten Zustimmungen möglich ist, sodass sie ihre Auswahl verfeinern können (wenn auf true) oder den anfänglichen Standardbildschirm mit den Tasten (bei Einstellung auf false oder unterdrückt).
  • completion: Ein Abschluss, der aufgerufen wird, wenn der Vorgang abgeschlossen ist.

Rücksendung: Leere

Ejemplo:

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

erzwingenÖffnen()

Parameter:

  • jumpToSettings: Ein Boolescher Wert, der bestimmt, ob die angezeigte Zustimmungsebene automatisch zu der Seite führt, auf der eine genauere Kontrolle über die von den Benutzern erteilten Zustimmungen möglich ist, sodass sie ihre Auswahl verfeinern können (wenn auf true) oder den anfänglichen Standardbildschirm mit den Tasten (bei Einstellung auf false oder unterdrückt).
  • 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

Ejemplo:

CMPManager.shared.forceOpen { 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

Ejemplo:

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

getGoogleConsentModeStatus()

Nahtlose Integration mit dem Consent Mode, einer Google-Technologie, die Konvertierungs- und Analysemodellierung ermöglicht. Google-Dienste können Datenlücken schließen, wenn Nutzer nicht zustimmen. Diese Funktion übersetzt die Zustimmung des Benutzers von Ihrem CMP in ein Format, das Firebase Analytics verstehen kann, sodass Sie einfach die Rückgabe dieser Methode abrufen und an die Firebase-Methode .setConsent weitergeben können.

  • Anschließend aktualisiert es Google Analytics mit dem aktuellen Einwilligungsstatus des Nutzers.

Parameter:

  • Keine

Rücksendung: [String: String] - Ein Schlüssel-Wert-Array mit den vier Google Consent Mode-Schlüsseln: .analyticsStorage, .adStorage, .adUserData und .adPersonalizationund ihre jeweiligen Werte in Bezug auf .choiceDoesntExist, .granted or .denied.

Ejemplo:

showToast(message: "Google Consent Mode Status: \n \(CMPManager.shared.getGoogleConsentModeStatus())")

Status für Zweck abrufen()

Parameter:

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

Rücksendung: UniqueConsentStatus - Ein Enum mit den Werten .choiceDoesntExist wenn keine Einwilligung vorliegt, .granted or .denied.

Ejemplo:

let purposeStatus = CMPManager.shared.getStatusForPurpose(id: "c53")
var message = "Purpose c53 status: "
switch purposeStatus {
   	case .choiceDoesntExist: message += "No Choice"
    case .granted: message += "Granted"
    case .denied: message += "Denied"
    @unknown default: message += "No Choice"
}

getStatusForVendor()

Parameter:

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

Rücksendung: UniqueConsentStatus - Ein Enum mit den Werten .choiceDoesntExist wenn keine Einwilligung vorliegt, .granted or .denied.

Ejemplo:

let purposeStatus = CMPManager.shared.getStatusForVendor(id: "s2789")
var message = "Vendor s2789's status: "
switch purposeStatus {
   	case .choiceDoesntExist: message += "No Choice"
    case .granted: message += "Granted"
    case .denied: message += "Denied"
    @unknown default: message += "No Choice"
}

akzeptiere alle()

Parameter:

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

Rücksendung: Leere

Ejemplo:

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

akzeptierenZwecke()

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

Ejemplo:

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

Anbieter akzeptieren()

Parameter:

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

Rücksendung: Leere

Ejemplo:

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

importCMPInfo()

Parameter:

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

Rücksendung: Leere

Ejemplo:

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()

Parameter:

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

Rücksendung: Leere

Ejemplo:

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

rejectPurposes()

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

Ejemplo:

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

Verkäufer ablehnen()

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

Ejemplo:

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

 

zurücksetzenConsentManagementData()

Parameter:

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

Rücksendung: Leere

Ejemplo:

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

 

CMPManagerDelegate-Ereignisse

getOnClickLinkCallback

Das SDK bietet einen flexiblen Link-Handling-Mechanismus, mit dem Anwendungen anpassen können, wie URLs innerhalb der Zustimmungsebene gehandhabt werden. Standardmäßig werden alle Links innerhalb der WebView geöffnet, aber Anwendungen können bestimmte URLs abfangen, um sie bei Bedarf extern zu verarbeiten.

// Example 1: Handle specific domains in external browser
cmpManager.setLinkClickHandler { url in
    // Handle links to specific domains externally
    if url.host?.contains("google.com") == true || 
       url.host?.contains("facebook.com") == true {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
        return true // URL handled externally
    }
    
    // Let other URLs load in the WebView
    return false
}

// Example 2: Handle URLs based on scheme
cmpManager.setLinkClickHandler { url in
    // Open mail links in mail app
    if url.scheme == "mailto" {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
        return true
    }
    
    // Open tel links in phone app
    if url.scheme == "tel" {
        UIApplication.shared.open(url, options: [:], completionHandler: nil)
        return true
    }
    
    // Let all other URLs load in the WebView
    return false
}

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.

Veraltete Methoden

Alle unten aufgeführten Methoden wurden verworfen und wird komplett entfernt aus dem SDK von März / 2025 auf. 

checkIfConsentIsRequired()

Parameter:

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

Rücksendung: Stimme

Ejemplo:

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

jumpToSettings()

Parameter:

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

Rücksendung: Leere

Ejemplo:

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

hatPurposeConsent()

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

Ejemplo:

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

Ejemplo:

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

hatVendorConsent()

Parameter:

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

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

Ejemplo:

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

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

Ejemplo:

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

Ejemplo:

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

Ejemplo:

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

Ejemplo:

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

Ejemplo:

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

Ejemplo:

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

AnfrageATTAuthorization()

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 +

Ejemplo:

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 +

Ejemplo:

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

 

Nach oben