Info
Inhalt

[iOS] 3. API-Dokumentation

akzeptiere alle

Parameter
Name und Vorname Typ Beschreibung
onFinish Funktion Rückruf zur Bearbeitung des Ereignisses „Zustimmung erhalten“. Der Aufruf erfolgt, wenn die Einwilligung vorliegt und verarbeitet wird.
Return

Kein Rückgabewert.

Beispiel
func onFinish() {
    print("Notification: New consent was received")
}

// Accept all consent with a callback
cmpConsentTool.acceptAll(onFinish)


aus der Ferne überprüfen

Parameter
Name und Vorname Typ Beschreibung
onCmpLayerOpen Funktion Rückruf, wenn die Zustimmungsschicht geöffnet sein muss.
isCached Boolean Bei TRUE wird die Anfrage zwischengespeichert und die Antwort gespeichert
Return

Kein Rückgabewert.

Beispiel
@objc func checkCmpLayer() {
    print("Checking need for consent.")

    cmpManager?.check(
        {
            // Callback for when the consent layer needs to be opened
            print("Consent layer will open")
            self.cmpConsentTool?.openView()
        }, 
        isCached: true
    )
}


checkAndOpenConsentLayer


Überprüft, ob die Zustimmung des Benutzers erforderlich ist, und öffnet in diesem Fall die Benutzeroberfläche der Zustimmungsebene.

Parameter
Keiner.
Return

Kein Rückgabewert.

Beispiel
@objc func checkAndOpenConsentLayerAction() {
    cmpManager?.checkAndOpenConsentLayer()
}


ZustimmungRequestedToday

Überprüft, ob die Zustimmungsschicht heute angefordert wurde.

Parameter
Keiner.
Return

TRUE, wenn die Zustimmung des Benutzers bereits heute angefordert wurde.

Ansonsten FALSE.

Beispiel
@objc func consentRequestedTodayAction() {
    if let calledToday = cmpManager?.consentRequestedToday() {
        print("Consent requested today: \(calledToday)")
    } else {
        print("Failed to retrieve consent request status for today.")
    }
}


Zweckliste deaktivieren

Deaktiviert eine Liste von Zwecken und aktualisiert die erteilte Einwilligung.

Parameter
Name und Vorname Typ Beschreibung
purposes Feld Liste der zu deaktivierenden Zweck-IDs.
onFinish Funktion (optional) Rückruf zur Bearbeitung des Ereignisses „Zustimmung erhalten“. Der Aufruf erfolgt, wenn die Einwilligung vorliegt und verarbeitet wird.
Return

Kein Rückgabewert.

Beispiel
func onFinish() {
    print("Notification: New consent received")
}

let purposes = ["1", "2"]

// Option with callback
cmpManager?.disablePurposeList(purposes, onFinish: onFinish)

// Option without callback
cmpManager?.disablePurposeList(purposes)


disableVendorList

Deaktiviert eine Liste von Anbietern und aktualisiert die erteilte Einwilligung.

Parameter
Name und Vorname Typ Beschreibung
vendors Feld Liste der zu deaktivierenden Anbieter-IDs.
onFinish Funktion (optional) Rückruf zur Bearbeitung des Ereignisses „Zustimmung erhalten“. Der Aufruf erfolgt, wenn die Einwilligung vorliegt und verarbeitet wird.
Return

Kein Rückgabewert.

Beispiel
func onFinish() {
    print("Notification: New consent received")
}

let vendors = ["1", "2"]

// Option with callback
cmpManager?.disableVendorList(vendors, onFinish: onFinish)

// Option without callback
cmpManager?.disableVendorList(vendors)


enablePurposeList

Aktiviert eine Liste von Zwecken und aktualisiert die erteilte Einwilligung.

Parameter
Name und Vorname Typ Beschreibung
purposes Feld Liste der zu aktivierenden Zweck-IDs.
onFinish Funktion (optional) Rückruf zur Bearbeitung des Ereignisses „Zustimmung erhalten“. Der Aufruf erfolgt, wenn die Einwilligung vorliegt und verarbeitet wird.
Return

Kein Rückgabewert

Beispiel
func onFinish() {
    print("Notification: New consent received")
}

let purposes = ["1", "2"]

// Option with callback
cmpManager?.enablePurposeList(purposes, onFinish: onFinish)

// Option without callback
cmpManager?.enablePurposeList(purposes)


enableVendorList

Aktiviert eine Liste von Anbietern und aktualisiert die erteilte Zustimmung.

Parameter
Name und Vorname Typ Beschreibung
vendors Feld Liste der zu aktivierenden Anbieter-IDs.
onFinish Funktion (optional) Rückruf zur Behandlung des Ereignisses „Zustimmung empfangen“. Wird aufgerufen, wenn die Zustimmung empfangen und verarbeitet wird.
Return

Kein Rückgabewert.

Beispiel
func onFinish() {
    print("Notification: New consent received")
}

let vendors = ["1", "2"]

// Option with callback
cmpManager?.enableVendorList(vendors, onFinish: onFinish)

// Option without callback
cmpManager?.enableVendorList(vendors)


exportCmpString

Exportiert die aktuelle CMP-Zeichenfolge, die die Zustimmungseinstellungen des Benutzers darstellt. Auf diese Methode wird statisch zugegriffen. 

Parameter
Keiner.
Return

Die CMP-Base64-codierte Zeichenfolge.

Beispiel
@objc func exportConsentStringAction() {
    let exportString = cmpManager.exportCmpString()
    print(exportString ?? "No string to export.");
}


getAllPurposes

Gibt die IDs aller Zwecke zurück.

Parameter
Keiner.
Return

Eine durch Kommas getrennte Zeichenfolge, die alle Zweck-IDs enthält.

Beispiel
@objc func getAllPurposesAction() {
    if let allPurposes = cmpManager?.getAllPurposes() {
        print("All purposes: \(allPurposes)")
        // Additional actions for getAllPurposes function can be added here
    } else {
        print("Failed to retrieve all purposes.")
    }
}


getAllPurposeList

Gibt eine Liste aller Zweck-IDs für ein bestimmtes CMP zurück.

Parameter
Keiner.
Return

Eine Liste Enthält Allzweck-IDs.

Beispiel
@objc func getAllPurposeListAction() {
    // Action for getAllPurposeList function
    if let allPurposes = cmpManager?.getAllPurposesList() {
        print("All purposes list: \(allPurposes.joined(separator: ", "))")
    } else {
        print("Failed to retrieve all purposes list.")
    }
}


getAllVendors

Gibt die IDs aller Anbieter für einen bestimmten CMP zurück.

Parameter
Keiner.
Return

Eine durch Kommas getrennte Zeichenfolge, die alle Anbieter-IDs enthält.

Beispiel
@objc func getAllVendorsAction() {
    if let allPurposes = cmpManager?.getAllVendors() {
        print("Printing all Vendors: \(allPurposes)")
    } else {
        print("Failed to retrieve all vendors.")
    }
}


getAllVendorsList

Gibt eine Liste aller Anbieter-IDs für einen bestimmten CMP zurück.

Parameter
Keiner.
Return

Eine Liste Enthält alle Lieferanten-IDs.

Beispiel
@objc func getAllVendorsListAction() {
    if let allVendors = cmpManager?.getAllVendorsList() {
        print("All vendors list: \(allVendors.joined(separator: ", "))")
    } else {
        print("Failed to retrieve all vendors list.")
    }
}


getConsentString

Gibt einen String mit der zuletzt erteilten Zustimmung zurück.

Parameter
Keiner.
Return

Eine Zeichenfolge mit der letzten vom Benutzer bestätigten Zustimmung.

Beispiel
@objc func getAllVendorsListAction() {
    if let allVendors = cmpManager?.getAllVendorsList() {
        print("All vendors list: \(allVendors.joined(separator: ", "))")
    } else {
        print("Failed to retrieve all vendors list.")
    }
}

getDisabledPurposes

Gibt alle IDs deaktivierter Zwecke für ein bestimmtes CMP zurück.

Parameter
Keiner.
Return

Eine durch Kommas getrennte Zeichenfolge, die die IDs aller deaktivierten Zwecke enthält.

Beispiel
@objc func getDisabledPurposesAction() {
    if let disabledPurposes = cmpManager?.getDisabledPurposes() {
        print("Disabled purposes: \(disabledPurposes)")
    } else {
        print("Failed to retrieve disabled purposes.")
    }
}


getDisabledVendors

Gibt die IDs aller deaktivierten Anbieter für einen bestimmten CMP zurück.

Parameter
Keiner.
Return

Eine durch Kommas getrennte Zeichenfolge, die die IDs aller deaktivierten Anbieter enthält.

Beispiel
@objc func getDisabledVendorsAction() {
    if let disabledVendors = cmpManager?.getDisabledVendors() {
        print("Disabled vendors: \(disabledVendors)")
    } else {
        print("Failed to retrieve disabled vendors.")
    }
}


getEnabledPurposes

Gibt alle aktivierten Anbieter-IDs für ein bestimmtes CMP zurück.

Parameter
Keiner.
Return

Eine durch Kommas getrennte Zeichenfolge, die die IDs aller aktivierten Anbieter enthält.

Beispiel
@objc func getEnabledVendorsAction() {
    if let enabledVendors = cmpManager?.getEnabledVendors() {
        print("Enabled vendors: \(enabledVendors)")
    } else {
        print("Failed to retrieve enabled vendors.")
    }
}


getEnabledPurposeList

Gibt eine Liste aller aktivierten Zweck-IDs für einen bestimmten CMP zurück.

Parameter
Keiner.
Return

Eine Liste enthält die IDs aller aktivierten Zwecke.

Beispiel
@objc func getEnabledPurposesAction() {
    if let enabledPurposes = cmpManager?.getEnabledPurposes() {
        print("Enabled purposes: \(enabledPurposes.joined(separator: ", "))")
    } else {
        print("Failed to retrieve enabled purposes list.")
    }
}


getEnabledVendors

Gibt alle aktivierten Anbieter-IDs für ein bestimmtes CMP zurück.

Parameter
Keiner.
Return

Eine durch Kommas getrennte Zeichenfolge, die die IDs aller aktivierten Anbieter enthält.

Beispiel
@objc func getEnabledVendorsAction() {
    if let enabledVendors = cmpManager?.getEnabledVendors() {
        print("Enabled vendors: \(enabledVendors)")
    } else {
        print("Failed to retrieve enabled vendors.")
    }
}


getEnabledVendorList

Gibt eine Liste mit allen aktivierten Anbieter-IDs für einen bestimmten CMP zurück.

Parameter
Keiner.
Return

Eine Liste enthält die IDs aller aktivierten Anbieter.

Beispiel
@objc func getEnabledVendorsAction() {
    if let enabledVendors = cmpManager?.getEnabledVendors() {
        print("Enabled vendors: \(enabledVendors.joined(separator: ", "))")
    } else {
        print("Failed to retrieve enabled vendors.")
    }
}


getGoogleACString

Ruft die zusätzliche Google-Einwilligungs-ID (`addtlConsent`) ab, die vom consent manager.

Weitere Informationen finden Sie im Technische Spezifikation für die zusätzliche Zustimmung zu Google.  

Parameter
Keiner.
Return

Eine Liste enthält die IDs aller aktivierten Anbieter.

Beispiel
@objc func getGoogleConsentStringAction() {
    if let googleACString = cmpManager?.getGoogleACString() {
        print("Google Additional Consent String: \(googleACString)")
    } else {
        print("Failed to retrieve Google Additional Consent String.")
    }
}


getUSPrivacyString

Ruft den US-Datenschutz-String ab. Dieser US-Datenschutz-String ist ein Cookie, der Informationen über vom Website-Besucher vorgenommene Angaben und ausgewählte Entscheidungen bezüglich seiner Verbraucherrechte speichert.

Parameter
Keiner.
Return

Ein String mit den US-Datenschutzdaten von consentmanager.

Beispiel
@objc func getUSPrivacyStringAction() {
    if let theUSPrivacyString = cmpManager?.getUSPrivacyString() {
        print("US Privacy string contents: \(theUSPrivacyString)")
    } else {
        print("Failed to retrieve US Privacy string.")
    }
}


hatZustimmung

Überprüft, ob der Benutzer bereits seine Zustimmung gegeben hat. Die Zustimmungsebene kann die Option enthalten, die Ebene einfach zu schließen. In diesem Fall hat der Benutzer keine Zustimmung gegeben.

Parameter
Keiner.
Return

Ein String mit den US-Datenschutzdaten von consentmanager.

Beispiel
@objc func getHasConsentAction() {
    if let hasConsent = cmpManager?.hasConsent() {
        let consentStatus = hasConsent ? "Yes" : "No"
        print("Consent provided by the user? \(consentStatus)")
    } else {
        print("Failed to retrieve user consent.")
    }
}


hasPurposeConsent

Überprüft, ob die Zweck-ID basierend auf der Benutzereinwilligung aktiviert ist.

Parameter
Name und Vorname Typ Beschreibung
purposeId Schnur Zweck-ID
Return

WAHR, wenn

  • der Nutzer hat dem angegebenen Zweck zugestimmt ODER
  • Aus irgendeinem Grund, der mit einer schlechten oder fehlenden Internetverbindung auf dem Gerät zusammenhängt, konnte die Einwilligung für diesen Zweck nicht eingeholt werden. Bitte beachten Sie den withErrorListener, um diese Bedingungen während des App-Starts zu handhaben, insbesondere für neue Benutzer, die noch keine Einwilligung erteilt haben

Ansonsten FALSE.

Beispiel
@objc func getHasPurposeConsentAction() {
    if let hasPurposeConsent = cmpManager?.hasPurposeConsent("purposeID") {
        let consentStatus = hasPurposeConsent ? "Yes" : "No"
        print("Purpose has consent provided by the user? \(consentStatus)")
    } else {
        print("Failed to retrieve user purpose consent.")
    }
}


hasVendorConsent

Überprüft, ob die Lieferanten-ID basierend auf der Benutzereinwilligung aktiviert ist.

Parameter
Name und Vorname Typ Beschreibung
vendorId Schnur Hersteller-ID
Return
  • Der Benutzer hat dem angegebenen Anbieter zugestimmt ODER
  • Aus irgendeinem Grund, der mit einer schlechten oder fehlenden Internetverbindung auf dem Gerät zusammenhängt, konnte die Einwilligung des Anbieters nicht abgerufen werden. Bitte beachten Sie den withErrorListener, um diese Bedingungen während des App-Starts zu handhaben, insbesondere für neue Benutzer, die noch keine Einwilligung erteilt haben

Ansonsten FALSE.

Beispiel
@objc func getHasVendorConsentAction() {
    if let hasVendorConsent = cmpManager?.hasVendorConsent("vendorID") {
        let consentStatus = hasVendorConsent ? "Yes" : "No"
        print("Vendor has consent provided by the user? \(consentStatus)")
    } else {
        print("Failed to retrieve user vendor consent.")
    }
}

importCmpString

Importiert eine CMP-Zeichenfolge, die die Zustimmungseinstellungen des Benutzers darstellt. Die Zeichenfolge muss Base64-codiert sein

Parameter
Name und Vorname Typ Beschreibung
ZustimmungsString  Schnur Base64-kodierter String, der die Zustimmung darstellt
AbschlussHandler Funktion (optional) Callback-Abschlusshandler für die Methode.
Return

Keiner.

Beispiel
let cmpString = "YourBase64EncodedConsentStringHere"

// Define the completion handler
let completionHandler: CmpImportCompletionHandler = { error in
    if let error = error {
        print("Failed to import CMP string: \(error.localizedDescription)")
    } else {
        print("CMP string imported successfully")
    }
}

cmpManager.importCmpString(cmpString, completion: completionHandler)


initialisieren

Die Initialisierungsfunktion initialisiert die Einwilligungsschicht und prüft automatisch, ob der Benutzer eine Einwilligung benötigt oder nicht. Diese Funktion öffnet schließlich die Einwilligungsebene und interagiert mit der Apple Tracking Transparency API, um den Benutzer um seine Einwilligung zu bitten

Parameter
Name und Vorname Typ Beschreibung
cmpConfig CmpConfig Das CmpConfig-Objekt wird mit den Informationen zu appId, Domain, appName und Sprache (optional) übergeben.
Return

Das CMPManagerobjekt.

Beispiel
// Example of a default implementation of the SDK.

class ViewController: UIViewController {

  // Usual implementation of a View Controller
  
  var cmpManager: CMPConsentTool? = nil

  override func viewDidLoad() {

      super.viewDidLoad()

      // Configure your CMP
      let cmpConfig: CmpConfig = CmpConfig.shared.setup(
                                          withId: "<YOUR-CONSENTMANAGER-APP-ID>, example: a000aaaa0a", 
                                          domain: "<YOUR-CONSENTMANAGER-APP-DOMAIN>, example: delivery.consentmanager.net", 
                                          appName: "<YOUR-CONSENTMANAGER-APP-NAME>, example: testApp", 
                                          language: "<YOUR-CONSENTMANAGER-APP-LANGUAGE, example: DE");

      // You can also determine log levels or ask for Apple's App Tracking Transparency, for example
      cmpConfig.logLevel = CmpLogLevel.verbose;
      cmpConfig.isAutomaticATTRequest = true;

      // Then you pass the cmpConfig to set up and initialize the instance of our SDK		
      cmpManager = CMPConsentTool(cmpConfig: cmpConfig)
              .withErrorListener(onCMPError)
              .withCloseListener(onClose)
              .withOpenListener(onOpen)
              .withOnCMPNotOpenedListener(onCMPNotOpened)
              .withOnCmpButtonClickedCallback(onButtonClickedEvent)
              .initialize()  // This method will trigger the webview loading to collect consent, if necessary
  }
}


isConsentRequired

Parameter
Keiner.
Return

TRUE, wenn der Benutzer seine Zustimmung geben muss

Ansonsten FALSE

Beispiel
@objc func checkIfConsentIsRequired() {
    if let isConsentRequired = cmpConsentTool?.isConsentRequired() {
        let consentRequiredStatus = isConsentRequired ? "Yes" : "No"
        print("Is user consent required? \(consentRequiredStatus)")
    } else {
        print("Failed to determine if user consent is required.")
    }
}


openView

Öffnet zwangsweise die Webansicht der CMP-Zustimmungsebene.

Parameter
Keiner.
Return

Kein Rückgabewert

Beispiel
@objc func checkCmpLayer() {
    print("Checking CMP API...")
    cmpManager?.check(
        { 
            // Callback for when the consent layer needs to be opened
            print("Consent layer will open")
            self.cmpConsentTool?.openView()
        }, 
        isCached: true, 
        onCmpLayerNotOpen: { 
            // Callback for when the consent layer does not need to be opened
            print("Consent layer will not open")
        }
    )
}


Alles ablehnen

Parameter
Name und Vorname Typ Beschreibung
onFinish Funktion Optional. Rückruf zur Bearbeitung des Ereignisses „Zustimmung erhalten“. Der Aufruf erfolgt, wenn die Einwilligung vorliegt und verarbeitet wird.
Return

Kein Rückgabewert

Beispiel
func onFinish() {
    print("Notification: New consent has been received with a Reject All response.")
}

// Reject all consent with a callback
cmpManager.rejectAll(onFinish)


zurückstellen

Setzt alle Eigenschaften auf Standardwerte zurück.

Parameter
Keiner.
Return

Kein Rückgabewert

Beispiel
CMPManager.reset()

withCloseListener


Fügt einen Close-Listener hinzu, um Benachrichtigungen zu erhalten, wenn die Einwilligungsebene geschlossen wird.

Parameter
Name und Vorname Typ Beschreibung
closeListener Funktion Rückruf, der aufgerufen wird, wenn die Einwilligungsschicht geschlossen wird.
Return

CMPConsentTool

Beispiel
func onClose() {
    print("APP: CLOSED")
    // Add custom business logic here
}

// Initialize cmpManager with configuration and close listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
    .withCloseListener(onClose)


mitOpenListener

Fügt einen offenen Listener hinzu, um Benachrichtigungen zu empfangen, wenn die Einwilligungsebene geöffnet wird.

Parameter
Name und Vorname Typ Beschreibung
openListener Funktion Rückruf, der aufgerufen wird, wenn die Zustimmungsebene geöffnet wird
Return

CMPConsentTool

Beispiel
func onOpen() {
    print("APP: OPENED")
    // Add custom business logic here
}

// Initialize cmpManager with configuration and open listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
    .withCloseListener(onOpen)

withErrorListener

Fügt einen Fehler-Listener hinzu, um Benachrichtigungen zu empfangen, wenn ein Fehler aufgetreten ist.

Parameter
Name und Vorname Typ Beschreibung
errorListener Funktion Rückruf zum Hinzufügen einer Aktion, wenn ein Fehler aufgetreten ist.
Return

CMPConsentTool

Beispiel
func onCMPError(type: CmpErrorType, message: String?) {
    if let errorMessage = message {
        print(errorMessage)
    } else {
        print("An error occurred.")
    }

    switch type {
    case .networkError:
        print("Network error")
    case .timeoutError:
        print("Timeout error")
    case .consentDataReadWriteError:
        print("Consent data read/write error")
    case .unknownError:
        print("Unknown error")
    @unknown default:
        print("Unexpected error")
    }
}

// Initialize cmpManager with configuration and error listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
    .withErrorListener(onCMPError)


withOnCMPNotOpenedListener

Fügt einen Rückruf „Cmp nicht geöffnet“ hinzu, um eine Benachrichtigung zu erhalten, wenn die Einwilligungsebene nicht geöffnet wird. Der häufigste Grund ist, dass der Benutzer bereits seine Einwilligung erteilt hat.

Parameter
Name und Vorname Typ Beschreibung
openListener Funktion Rückruf, der aufgerufen wird, wenn die Zustimmungsebene nicht geöffnet ist. 
Return

CMPConsentTool

Beispiel
func onCMPNotOpened() {
    print("CMP: NOT OPENED")
    // Add custom business logic here
}

// Initialize cmpConsentTool with configuration and CMP not opened listener
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
    .withOnCMPNotOpenedListener(onCMPNotOpened)


withOnCmpButtonClickedCallback

Legt einen Rückruf fest, um Benachrichtigungen zu erhalten, wenn der Benutzer auf eine Schaltfläche klickt, um die Einwilligungsebene zu schließen.

Parameter
Name und Vorname Typ Beschreibung
openListener Funktion Rückruf, der mit dem CmpButtonEvent aufgerufen wird und angibt, welche Taste gedrückt wurde.
Return

CMPConsentTool

Beispiel
func onButtonClickedEvent(event: CmpButtonEvent) {
    switch event {
    case .acceptAll:
        print("User accepted all.")
    case .rejectAll:
        print("User rejected all.")
    case .save:
        print("User saved custom settings.")
    case .close:
        print("User closed consent layer without giving consent.")
    @unknown default:
        print("Unknown button event.")
    }
}

// Initialize cmpManager with configuration and button click callback
cmpManager = CMPConsentTool(cmpConfig: cmpConfig, viewController: self)
    .withOnCmpButtonClickedCallback(onButtonClickedEvent)

withCmpViewControllerConfigurationBlock

Passen Sie den Consentlayer UIViewController an.

Parameter
Name und Vorname Typ Beschreibung

configurationBlock

CmpViewControllerConfigurationBlock

Passen Sie den Einwilligungslayer an

UIViewController.

Return

CMPConsentTool

Beispiel
cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
    .withCmpViewControllerConfigurationBlock { viewController in
        viewController?.modalPresentationStyle = .formSheet
    }


withCmpViewConfigurationBlock

Passen Sie die UiView des ConsentLayers an.

Parameter
Name und Vorname Typ Beschreibung

configurationBlock

CmpUIViewConfigurationBlock

Passen Sie den Einwilligungslayer an

UiView

Return

CMPConsentTool

Beispiel
let cmpLayout = CmpLayout.default()
cmpLayout?.cornerRadius = 10.0
cmpLayout?.customLayout = CGRect(x: 0, y: 0, width: 200, height: 300)

cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
    .withCmpViewConfigurationBlock { uiView in
        cmpLayout?.apply(to: uiView)
    }


mitUpdateGoogleConsent

Ruft den Status des Google-Einwilligungsmodus ab. 

Parameter
Name und Vorname Typ Beschreibung

consentMap

[Schnur: Schnur]?

Einwilligungsstatus
Return

CMPConsentTool

Beispiel
cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
    .withUpdateGoogleConsent(onCmpUpdateGoogleConsent)

func onCmpUpdateGoogleConsent(consentMap: [String: String]?) {
    guard let consentMap = consentMap else { return }

    var firebaseConsentMap: [ConsentType: ConsentStatus] = [:]

    consentMap.forEach { key, value in
        if let consentType = convertToFirebaseConsentType(from: key),
           let consentStatus = convertToFirebaseConsentStatus(from: value) {
            firebaseConsentMap[consentType] = consentStatus
        }
    }

    Analytics.setConsent(firebaseConsentMap)
}

func convertToFirebaseConsentType(from key: String) -> ConsentType? {
    switch key {
    case "analytics_storage":
        return .analyticsStorage
    case "ad_storage":
        return .adStorage
    case "ad_user_data":
        return .adUserData
    case "ad_personalization":
        return .adPersonalization
    default:
        return nil
    }
}

func convertToFirebaseConsentStatus(from value: String) -> ConsentStatus? {
    switch value {
    case "granted":
        return .granted
    case "denied":
        return .denied
    default:
        return nil
    }
}

 

Nach oben