[iOS] 3. Documentation API
accepter tout
Accepte la couche de consentement et se comporte de la même manière lorsque l'utilisateur accepte le consentement.
Paramètres
Pré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.
Nombre de pages vues
1
Exemple
func onFinish() {
print("Notification: New consent was received")
}
// Accept all consent with a callback
cmpConsentTool.acceptAll(onFinish)
vérifier
Vérifie si le consentement est requis de la part de l'utilisateur, renvoyant éventuellement les résultats mis en cache.
Paramètres
Pré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.
Nombre de pages vues
1 si le paramètre isCached() est VRAI et que le consentement mis en cache a expiré
1 si les paramètres isCached() sont FAUX
0 si isCached() est VRAI et que le consentement mis en cache n'a PAS expiré
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.
Paramètres
Aucun. |
Retour
Aucune valeur de retour.
Nombre de pages vues
1
Exemple
@objc func checkAndOpenConsentLayerAction() {
cmpManager?.checkAndOpenConsentLayer()
}
consentementDemandéAujourd'hui
Vérifie si la couche de consentement a été demandée aujourd'hui.
Paramètres
Aucun. |
Retour
VRAI si le consentement de l'utilisateur a déjà été demandé aujourd'hui.
FAUX sinon.
Nombre de pages vues
0
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 de finalités et met à jour le consentement donné.
Paramètres
Pré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.
Nombre de pages vues
1
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é.
Paramètres
Pré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.
Nombre de pages vues
1
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
Permet une liste de finalités et met à jour le consentement donné.
Paramètres
Pré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
Nombre de pages vues
1
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é.
Paramètres
Pré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.
Nombre de pages vues
1
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.
Paramètres
Aucun. |
Retour
Chaîne codée en base64 CMP.
Nombre de pages vues
0
Exemple
@objc func exportConsentStringAction() {
let exportString = cmpManager.exportCmpString()
print(exportString ?? "No string to export.");
}
getAllPurposes
Renvoie les identifiants de tous les objectifs.
Paramètres
Aucun. |
Retour
Une chaîne séparée par des virgules contenant tous les ID utiles.
Nombre de pages vues
0
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 d’ID tous usages pour une CMP donnée.
Paramètres
Aucun. |
Retour
Une liste contenant des identifiants tous usages.
Nombre de pages vues
0
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 les identifiants de tous les fournisseurs pour un CMP donné.
Paramètres
Aucun. |
Retour
Une chaîne séparée par des virgules contenant tous les ID de fournisseurs.
Nombre de pages vues
0
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 ID de fournisseurs pour un CMP donné.
Paramètres
Aucun. |
Retour
Une liste contenant tous les identifiants des fournisseurs.
Nombre de pages vues
0
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 avec le dernier consentement donné.
Paramètres
Aucun. |
Retour
Une chaîne avec le dernier consentement reconnu par l'utilisateur.
Nombre de pages vues
0
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 les ID de tous les objectifs désactivés pour une CMP donnée.
Paramètres
Aucun. |
Retour
Une chaîne séparée par des virgules contenant les ID de tous les objectifs désactivés.
Nombre de pages vues
0
Exemple
@objc func getDisabledPurposesAction() {
if let disabledPurposes = cmpManager?.getDisabledPurposes() {
print("Disabled purposes: \(disabledPurposes)")
} else {
print("Failed to retrieve disabled purposes.")
}
}
getDisabledVendors
Renvoie tous les ID de fournisseurs désactivés pour un CMP donné.
Paramètres
Aucun. |
Retour
Une chaîne séparée par des virgules contenant tous les ID de fournisseurs désactivés.
Nombre de pages vues
0
Exemple
@objc func getDisabledVendorsAction() {
if let disabledVendors = cmpManager?.getDisabledVendors() {
print("Disabled vendors: \(disabledVendors)")
} else {
print("Failed to retrieve disabled vendors.")
}
}
getEnabledPurposes
Renvoie tous les ID de fournisseurs activés pour un CMP donné.
Paramètres
Aucun. |
Retour
Une chaîne séparée par des virgules contenant tous les ID de fournisseurs activés.
Nombre de pages vues
0
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 ID d’objectifs activés pour une CMP donnée.
Paramètres
Aucun. |
Retour
Une liste contenant les identifiants de tous les objectifs activés.
Nombre de pages vues
0
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 ID de fournisseurs activés pour un CMP donné.
Paramètres
Aucun. |
Retour
Une chaîne séparée par des virgules contenant tous les ID de fournisseurs activés.
Nombre de pages vues
0
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 ID de fournisseurs activés pour un CMP donné.
Paramètres
Aucun. |
Retour
Une liste contenant tous les identifiants des fournisseurs activés.
Nombre de pages vues
0
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.
Paramètres
Aucun. |
Retour
Une liste contenant tous les identifiants des fournisseurs activés.
Nombre de pages vues
0
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.
Paramètres
Aucun. |
Retour
Une chaîne avec les données de confidentialité américaines définies par consentmanager.
Nombre de pages vues
0
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 la possibilité de simplement fermer la couche. Dans ce cas, l’utilisateur n’a pas donné son consentement.
Paramètres
Aucun. |
Retour
Une chaîne avec les données de confidentialité américaines définies par consentmanager.
Nombre de pages vues
0
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.")
}
}
aPurposeConsent
Vérifie si l'ID d'objectif est activé en fonction du consentement de l'utilisateur.
Paramètres
Prénom | Type | Description |
purposeId |
Chaîne | ID d'objectif |
Retour
VRAI si
- l'utilisateur a donné son consentement à la finalité spécifiée OU
- pour une raison quelconque liée à une connexion Internet faible ou inexistante sur l'appareil, le consentement à cette fin n'a pas pu être récupéré. Veuillez vous référer à withErrorListener pour gérer ces conditions lors du lancement de l'application, en particulier pour les nouveaux utilisateurs qui n'ont pas encore donné leur consentement.
FAUX sinon.
Nombre de pages vues
0
Exemple
@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
Vérifie si l'ID du fournisseur est activé en fonction du consentement de l'utilisateur.
Paramètres
Prénom | Type | Description |
vendorId |
Chaîne | fournisseur ID |
Retour
VRAI si
- l'utilisateur a donné son consentement au fournisseur spécifié OU
- pour une raison quelconque liée à une connexion Internet faible ou inexistante sur l'appareil, le consentement du vendeur n'a pas pu être récupéré. Veuillez vous référer à withErrorListener pour gérer ces conditions lors du lancement de l'application, en particulier pour les nouveaux utilisateurs qui n'ont pas encore donné leur consentement.
FAUX sinon.
Nombre de pages vues
0
Exemple
@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
Importe une chaîne CMP représentant les préférences de consentement de l'utilisateur. La chaîne doit être encodée en base64.
Paramètres
Prénom | Type | Description |
chaîne de consentement | Chaîne | Chaîne codée en base64 représentant le consentement |
gestionnaire d'achèvement | fonction (facultatif) | Gestionnaire d’achèvement de rappel vers la méthode. |
Retour
Aucun.
Nombre de pages vues
0
Exemple
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)
initialiser
La fonction d'initialisation initialisera la couche de consentement et vérifiera 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 à l'utilisateur son consentement
Paramètres
Pré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.
Nombre de pages vues
1
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
Vérifie si le consentement doit être fourni par l'utilisateur actuel de l'application.
Paramètres
Aucun. |
Retour
VRAI si l'utilisateur doit donner son consentement
FAUX sinon
Nombre de pages vues
0
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.
Paramètres
Aucun. |
Retour
Aucune valeur de retour
Nombre de pages vues
1
Exemple
@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")
}
)
}
rejeter tout
Rejette la couche de consentement et se comporte de la même manière lorsque l'utilisateur n'a pas accepté le consentement.
Paramètres
Pré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
Nombre de pages vues
1
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.
Paramètres
Aucun. |
Retour
Aucune valeur de retour
Nombre de pages vues
0
Exemple
CMPManager.reset()
avecCloseListener
Ajoute un écouteur proche pour recevoir des notifications lorsque la couche de consentement est fermée.
Paramètres
Pré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
Pré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
Pré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
Pré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
Pré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
Prénom | Type | Description |
|
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
Prénom | Type | Description |
|
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
Prénom | Type | Description |
|
[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
}
}