Info
Contenu

[iOS] 3. Documentation API

SDK obsolète / Mise à niveau vers la version 3 : Cette documentation décrit la version 2.x de notre SDK. Le SDK 2.x est obsolète et sera supprimé d'ici la fin de l'année 2025. Veuillez effectuer une mise à niveau vers la version 3.x du SDK. Voir la section Aide sur SDK v3 ici.

accepter tout

Paramètres
Nom Type Description
onFinish fonction Rappel pour la gestion de l'événement de consentement reçu. il sera appelé lorsque le consentement sera reçu et traité.
Retour

Aucune valeur de retour.

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

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

choisissez

Paramètres
Nom Type Description
onCmpLayerOpen fonction Rappel lorsque la couche de consentement doit être ouverte.
isCached Boolean Lorsque VRAI, la demande sera mise en cache et la réponse sera enregistrée
Retour

Aucune valeur de retour.

Exemple
@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

Vérifie si le consentement de l'utilisateur est requis et, si tel est le cas, ouvre l'interface utilisateur de la couche de consentement. Cette méthode consomme une page vue. 

Paramètres
Aucun.
Retour

Aucune valeur de retour.

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

consentementDemandéAujourd'hui

Vérifie si la couche de consentement a été demandée aujourd'hui. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

VRAI si le consentement de l'utilisateur a déjà été demandé aujourd'hui.

FAUX sinon.

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

désactiverPurposeList

Désactive une liste d'objectifs et met à jour le consentement donné. Cette méthode consomme une page vue. 

Paramètres
Nom Type Description
purposes tableau Liste des identifiants d'objectif à désactiver.
onFinish fonction (facultatif) Rappel pour la gestion de l'événement de consentement reçu. il sera appelé lorsque le consentement sera reçu et traité.
Retour

Aucune valeur de retour.

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

désactiverVendorList

Désactive une liste de fournisseurs et met à jour le consentement donné. Cette méthode consomme une page vue. 

Paramètres
Nom Type Description
vendors tableau Liste des identifiants de fournisseurs à désactiver.
onFinish fonction (facultatif) Rappel pour gérer l’événement de consentement reçu. Il sera appelé lorsque le consentement sera reçu et traité.
Retour

Aucune valeur de retour.

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

activerListeObjectifs

Active une liste d'objectifs et met à jour le consentement donné. Cette méthode consomme une page vue. 

Paramètres
Nom Type Description
purposes tableau Liste des identifiants d'objectif à activer.
onFinish fonction (facultatif) Rappel pour gérer l’événement de consentement reçu. Il sera appelé lorsque le consentement sera reçu et traité.
Retour

Aucune valeur de retour

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

activerVendorList

Active une liste de fournisseurs et met à jour le consentement donné. Cette méthode consomme une page vue. 

Paramètres
Nom Type Description
vendors tableau Liste des ID de fournisseur à activer.
onFinish fonction (facultatif) Rappel pour gérer l’événement de consentement reçu. Je serai appelé lorsque le consentement sera reçu et traité.
Retour

Aucune valeur de retour.

Exemple
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

Exporte la chaîne CMP actuelle représentant les préférences de consentement de l'utilisateur. Cette méthode est accessible de manière statique. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

La chaîne de consentement.

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

getAllPurposes

Renvoie tous les identifiants des objectifs. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne séparée par des virgules contenant tous les ID utiles.

Exemple
@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

Renvoie une liste de tous les identifiants d'utilisation pour un CMP donné. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une liste contenant des identifiants tous usages.

Exemple
@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

Renvoie tous les identifiants des fournisseurs pour un CMP donné. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne séparée par des virgules contenant tous les ID de fournisseurs.

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

getAllVendorsList

Renvoie une liste de tous les identifiants de fournisseurs pour un CMP donné. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une liste contenant tous les identifiants des fournisseurs.

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

getConsentString

Renvoie une chaîne contenant le dernier consentement donné. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne avec le dernier consentement reconnu par l'utilisateur.

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

getDisabledPurposes

Renvoie tous les identifiants des objectifs désactivés pour un CMP donné. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne séparée par des virgules contenant les ID de tous les objectifs désactivés.

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

getDisabledVendors

Renvoie tous les identifiants des fournisseurs désactivés pour une CMP donnée. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne séparée par des virgules contenant tous les ID de fournisseurs désactivés.

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

getEnabledPurposes

Renvoie tous les identifiants des fournisseurs activés pour une CMP donnée. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne séparée par des virgules contenant tous les ID de fournisseurs activés.

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

getEnabledPurposeList

Renvoie une liste de tous les identifiants des objectifs activés pour un CMP donné. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une liste contenant les identifiants de tous les objectifs activés.

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

getEnabledVendorsgetEnabledVendors

Renvoie tous les identifiants des fournisseurs activés pour une CMP donnée. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne séparée par des virgules contenant tous les ID de fournisseurs activés.

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

getEnabledVendorListgetEnabledVendorList

Renvoie une liste avec tous les identifiants des fournisseurs activés pour un CMP donné. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une liste contenant tous les identifiants des fournisseurs activés.

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

getGoogleACString

Récupère la chaîne d'ID de consentement supplémentaire de Google (`addtlConsent`) définie par le consent manager.

Pour plus d'informations, consultez le Spécifications techniques du consentement supplémentaire de Google.  

Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une liste contenant tous les identifiants des fournisseurs activés.

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

getUSPrivacyString

Récupère la chaîne de confidentialité américaine. Cette chaîne de confidentialité américaine est un cookie qui stocke des informations sur les divulgations effectuées et les choix sélectionnés par le visiteur du site Web concernant ses droits de consommateur. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne avec les données de confidentialité américaines définies par consentmanager.

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

a le consentement

Vérifie si l'utilisateur a déjà donné son consentement. La couche de consentement peut avoir l'option de simplement fermer la couche. Dans ce cas, l'utilisateur n'a pas donné son consentement. Cette méthode ne consomme aucune page vue. 

Paramètres
Aucun.
Retour

Une chaîne avec les données de confidentialité américaines définies par consentmanager.

Exemple
@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.")
    }
}

hasPurpose (à partir de la version 2.5.3)

hasPurposeConsent (obsolète)

Vérifie si l'ID d'objectif est activé en fonction du consentement de l'utilisateur. Cette méthode ne consomme aucune page vue. 

Paramètres
Nom Type Description
purposeId Chaîne ID d'objectif
defaultReturn Boolean Valeur renvoyée par défaut par la méthode, au cas où il n'y aurait pas encore de consentement. Voir l'avertissement ci-dessous.
Retour

VRAI si l'utilisateur a donné son consentement à l'objectif spécifié.

FAUX sinon.

Veuillez noter que si, pour une raison quelconque liée à une connexion Internet médiocre ou inexistante sur l'appareil ou en cas d'absence de consentement, la valeur qui a été définie via le defaultReturn le paramètre sera renvoyé.

l' defaultReturn paramètre n'existe pas dans les versions antérieures à 2.5.3.

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

hasVendor (à partir de la version 2.5.3)

hasVendorConsent (obsolète)

Vérifie si l'ID du fournisseur est activé en fonction du consentement de l'utilisateur. Cette méthode ne consomme aucune page vue. 

Paramètres
Nom Type Description
vendorId Chaîne fournisseur ID
defaultReturn Boolean Valeur renvoyée par défaut par la méthode, au cas où il n'y aurait pas encore de consentement. Voir l'avertissement ci-dessous.
Retour

FAUX sinon.

Veuillez noter que si, pour une raison quelconque liée à une connexion Internet médiocre ou inexistante sur l'appareil ou en cas d'absence de consentement, la valeur qui a été définie via le defaultReturn le paramètre sera renvoyé.

l' defaultReturn paramètre n'existe pas dans les versions antérieures à 2.5.3.

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

    importCmpString

    Importe une chaîne CMP représentant les préférences de consentement de l'utilisateur. La chaîne doit être informée TELLE QUELLE lorsqu'elle est récupérée via la méthode exportCmpString(). Cette méthode consomme une page vue.

    Paramètres
    Nom Type Description
    chaîne de consentement  Chaîne Chaîne représentant le consentement
    gestionnaire d'achèvement fonction (facultatif) Gestionnaire d’achèvement de rappel vers la méthode.
    Retour

    Aucun.

    Exemple
    let cmpString = "YourConsentStringHere"
    
    // 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)
    

    initialiser

    La fonction Initialize initialise la couche de consentement et vérifie automatiquement si l'utilisateur a besoin d'un consentement ou non. Cette fonction ouvrira éventuellement la couche de consentement et interagira avec l'API Apple Tracking Transparency pour demander le consentement de l'utilisateur. Cette méthode consomme une page vue.

    Paramètres
    Nom Type Description
    cmpConfig CmpConfig L'objet CmpConfig est transmis avec les informations concernant l'appId, le domaine, l'appName et la langue (facultatif)
    Retour

    L'objet CMPManager.

    Exemple
    // 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

    Paramètres
    Aucun.
    Retour

    TRUE si l'utilisateur doit donner son consentement.

    FAUX sinon.

    Exemple
    @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.")
        }
    }
    

    ouvrirView

    Ouvre de force la vue Web de la couche de consentement CMP. Cette méthode consomme une page vue.

    Paramètres
    Aucun.
    Retour

    Aucune valeur de retour.

    Exemple
    self.cmpConsentTool?.openView()

    rejeter tout

    Paramètres
    Nom Type Description
    onFinish fonction Facultatif. Rappel pour gérer l’événement de consentement reçu. il sera appelé lorsque le consentement sera reçu et traité.
    Retour

    Aucune valeur de retour

    Exemple
    func onFinish() {
        print("Notification: New consent has been received with a Reject All response.")
    }
    
    // Reject all consent with a callback
    cmpManager.rejectAll(onFinish)
    

    réinitialiser

    Réinitialise toutes les propriétés aux valeurs par défaut. Cette méthode ne consomme aucune page vue.

    Paramètres
    Aucun.
    Retour

    Aucune valeur de retour.

    Exemple
    CMPManager.reset()

    avecCloseListener

    Ajoute un écouteur proche pour recevoir des notifications lorsque la couche de consentement est fermée.

    Paramètres
    Nom Type Description
    closeListener fonction Callback qui sera appelé lorsque la couche de consentement sera fermée.
    Retour

    CMPConsentTool

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

    avecOpenListener

    Ajoute un écouteur ouvert pour recevoir des notifications lorsque la couche de consentement est ouverte.

    Paramètres
    Nom Type Description
    openListener fonction Callback qui sera appelé lors de l'ouverture de la couche de consentement
    Retour

    CMPConsentTool

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

    avecErrorListener

    Ajoute un écouteur d'erreur pour recevoir des notifications lorsqu'une erreur se produit.

    Paramètres
    Nom Type Description
    errorListener fonction Rappel pour ajouter une action si une erreur s'est produite.
    Retour

    CMPConsentTool

    Exemple
    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

    Ajoute un rappel Cmp non ouvert pour recevoir une notification lorsque la couche de consentement ne s'ouvre pas. La raison la plus courante est que l’utilisateur a déjà donné son consentement.

    Paramètres
    Nom Type Description
    openListener fonction Rappel qui sera appelé lorsque la couche de consentement n'est pas ouverte. 
    Retour

    CMPConsentTool

    Exemple
    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

    Définit un rappel pour recevoir des notifications lorsque l'utilisateur clique sur un bouton pour fermer la couche de consentement.

    Paramètres
    Nom Type Description
    openListener fonction Rappel qui sera invoqué avec le CmpButtonEvent indiquant quel bouton a été enfoncé.
    Retour

    CMPConsentTool

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

    avecCmpViewControllerConfigurationBlock

    Personnalisez le couche de consentement UIViewController.

    Paramètres
    Nom Type Description

    configurationBlock

    CmpViewControllerConfigurationBlock

    Personnaliser le couche de consentement

    UIViewController.

    Retour

    CMPConsentTool

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

    avecCmpViewConfigurationBlock

    Personnalisez l'UiView du consentlayer.

    Paramètres
    Nom Type Description

    configurationBlock

    CmpUIViewConfigurationBlock

    Personnaliser le couche de consentement

    UiView

    Retour

    CMPConsentTool

    Exemple
    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)
        }
    

    avecMise à jourConsentement Google

    Récupère l’état du mode consentement de Google. 

    Paramètres
    Nom Type Description

    consentMap

    [Chaîne: Chaîne]?

    Statut de consentement
    Retour

    CMPConsentTool

    Exemple
    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
        }
    }
    

     

    Retour en haut de la page