Info
Contenido

[iOS] 3. Documentación de la API

aceptar todo

parámetros
Nombre Tipo Descripción
onFinish función Devolución de llamada para gestionar el evento de consentimiento recibido. se llamará cuando se reciba y procese el consentimiento.
Ida y vuelta

Sin valor de retorno.

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

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

check

parámetros
Nombre Tipo Descripción
onCmpLayerOpen función Devolución de llamada cuando la capa de consentimiento necesita estar abierta.
isCached Boolean Cuando es VERDADERO, la solicitud se almacenará en caché y la respuesta se guardará.
Ida y vuelta

Sin valor de retorno.

Ejemplo
@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
    )
}

comprobar y abrir la capa de consentimiento

Comprueba si se requiere el consentimiento del usuario y, en caso afirmativo, abre la interfaz de usuario de la capa de consentimiento. Este método consume una página vista. 

parámetros
Ninguna.
Ida y vuelta

Sin valor de retorno.

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

consentimientoSolicitadoHoy

Comprueba si la capa de consentimiento se solicitó hoy. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

VERDADERO si el consentimiento del usuario ya fue solicitado hoy.

FALSO en caso contrario.

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

deshabilitarPurposeList

Desactiva una lista de propósitos y actualiza el consentimiento otorgado. Este método consume una página vista. 

parámetros
Nombre Tipo Descripción
purposes Formación Lista de identificadores de propósito para deshabilitar.
onFinish función (Opcional) Devolución de llamada para gestionar el evento de consentimiento recibido. se llamará cuando se reciba y procese el consentimiento.
Ida y vuelta

Sin valor de retorno.

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

desactivar la lista de proveedores

Desactiva una lista de proveedores y actualiza el consentimiento otorgado. Este método consume una página vista. 

parámetros
Nombre Tipo Descripción
vendors Formación Lista de identificadores de proveedores para deshabilitar.
onFinish función (Opcional) Devolución de llamada para manejar el evento de consentimiento recibido. Se llamará cuando se reciba y procese el consentimiento.
Ida y vuelta

Sin valor de retorno.

Ejemplo
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

Habilita una lista de propósitos y actualiza el consentimiento otorgado. Este método consume una página vista. 

parámetros
Nombre Tipo Descripción
purposes Formación Lista de ID de propósito para habilitar.
onFinish función (Opcional) Devolución de llamada para manejar el evento de consentimiento recibido. Se llamará cuando se reciba y procese el consentimiento.
Ida y vuelta

Sin valor de retorno

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

habilitarLista de proveedores

Habilita una lista de proveedores y actualiza el consentimiento otorgado. Este método consume una página vista. 

parámetros
Nombre Tipo Descripción
vendors Formación Lista de ID de proveedores para habilitar.
onFinish función (Opcional) Devolución de llamada para manejar el evento de consentimiento recibido. Me llamarán cuando se reciba y procese el consentimiento.
Ida y vuelta

Sin valor de retorno.

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

exportarCmpString

Exporta la cadena CMP actual que representa las preferencias de consentimiento del usuario. Se accede a este método de forma estática. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

La cadena de consentimiento.

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

obtenertodoslospropósitos

Devuelve los identificadores de todos los propósitos. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena separada por comas que contiene ID para todos los fines.

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

obtener lista multipropósito

Devuelve una lista de todos los identificadores de propósito para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una lista que contiene identificaciones para todos los propósitos.

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

obtener todos los proveedores

Devuelve los identificadores de todos los proveedores de un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena separada por comas que contiene todos los ID de proveedores.

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

obtener lista de todos los proveedores

Devuelve una lista de todos los identificadores de proveedores para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una lista que contiene todos los ID de proveedores.

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

getConsentString

Devuelve una cadena con el último consentimiento otorgado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena con el último consentimiento reconocido por el usuario.

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

getDisabledPurposes

Devuelve todos los identificadores de propósitos deshabilitados para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena separada por comas que contiene los ID de todos los propósitos deshabilitados.

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

getDisabledVendors

Devuelve todos los identificadores de proveedores deshabilitados para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena separada por comas que contiene los ID de todos los proveedores deshabilitados.

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

getEnabledPurposes

Devuelve todos los identificadores de proveedores habilitados para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena separada por comas que contiene los ID de todos los proveedores habilitados.

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

getEnabledPurposeList

Devuelve una lista con todos los identificadores de propósitos habilitados para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una lista que contiene los ID de todos los propósitos habilitados.

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

getEnabledVendors

Devuelve todos los identificadores de proveedores habilitados para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena separada por comas que contiene los ID de todos los proveedores habilitados.

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

getEnabledVendorList

Devuelve una lista con todos los identificadores de proveedores habilitados para un CMP determinado. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una lista que contiene todos los ID de proveedores habilitados.

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

obtenerGoogleACString

Recupera la cadena de ID de consentimiento adicional de Google (`addtlConsent`) que fue establecida por el consent manager.

Para más información, consulte el Especificación técnica del consentimiento adicional de Google.  

Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una lista que contiene todos los ID de proveedores habilitados.

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

getUSPrivacyString

Recupera la cadena de privacidad de EE. UU. Esta cadena de privacidad de EE. UU. es una cookie que almacena información sobre las divulgaciones realizadas y las opciones seleccionadas por el visitante del sitio web con respecto a sus derechos como consumidor. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena con los datos de privacidad de EE. UU. establecidos por consentmanager.

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

tiene consentimiento

Comprueba si el usuario ya ha dado su consentimiento. La capa de consentimiento puede tener la opción de simplemente cerrar la capa. En ese caso, el usuario no ha dado su consentimiento. Este método no consume páginas vistas. 

parámetros
Ninguna.
Ida y vuelta

Una cadena con los datos de privacidad de EE. UU. establecidos por consentmanager.

Ejemplo
@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 (a partir de la versión 2.5.3)

hasPurposeConsent (obsoleto)

Comprueba si el ID de propósito está habilitado según el consentimiento del usuario. Este método no consume páginas vistas. 

parámetros
Nombre Tipo Descripción
purposeId Cordón identificación de propósito
defaultReturn Boolean Valor que devuelve por defecto el método, en caso de que aún no exista consentimiento. Vea la advertencia a continuación.
Ida y vuelta

VERDADERO si el usuario ha dado el consentimiento para el propósito especificado.

FALSO en caso contrario.

Tenga en cuenta que si, por cualquier motivo relacionado con una conexión a Internet deficiente o nula en el dispositivo o en el caso de ausencia de un consentimiento, el valor que se estableció a través de defaultReturn Se devolverá el parámetro.

El sistema defaultReturn parámetro no existe en versiones anteriores a 2.5.3.

Ejemplo
@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 (a partir de la versión 2.5.3)

hasVendorConsent (obsoleto)

Comprueba si el ID del proveedor está habilitado según el consentimiento del usuario. Este método no consume páginas vistas. 

parámetros
Nombre Tipo Descripción
vendorId Cordón identificación del proveedor
defaultReturn Boolean Valor que devuelve por defecto el método, en caso de que aún no exista consentimiento. Vea la advertencia a continuación.
Ida y vuelta

FALSO en caso contrario.

Tenga en cuenta que si, por cualquier motivo relacionado con una conexión a Internet deficiente o nula en el dispositivo o en el caso de ausencia de un consentimiento, el valor que se estableció a través de defaultReturn Se devolverá el parámetro.

El sistema defaultReturn parámetro no existe en versiones anteriores a 2.5.3.

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

    importarCmpString

    Importa una cadena CMP que representa las preferencias de consentimiento del usuario. La cadena debe informarse TAL CUAL cuando se recupera a través del método exportCmpString()Este método no consume páginas vistas.

    parámetros
    Nombre Tipo Descripción
    cadena de consentimiento  Cordón Cadena que representa el consentimiento
    finalizaciónHandler función (opcional) Controlador de finalización de devolución de llamada al método.
    Ida y vuelta

    Ninguna.

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

    inicializar

    La función de inicialización inicializará la capa de consentimiento y verificará automáticamente si el usuario necesita un consentimiento o no. Esta función abrirá la capa de consentimiento e interactuará con la API de transparencia de seguimiento de Apple para solicitar el consentimiento del usuario. Este método consume una página vista.

    parámetros
    Nombre Tipo Descripción
    cmpConfig cmpconfig El objeto CmpConfig se pasa con la información relativa a appId, Dominio, appName e idioma (opcional)
    Ida y vuelta

    El objeto CMPManager.

    Ejemplo
    // 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
      }
    }

    se requiere consentimiento

    parámetros
    Ninguna.
    Ida y vuelta

    TRUE si el usuario necesita dar su consentimiento.

    FALSO en caso contrario.

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

    abrirVer

    Abre a la fuerza la vista web de la capa de consentimiento de CMP. Este método consume una vista de página.

    parámetros
    Ninguna.
    Ida y vuelta

    Sin valor de retorno.

    Ejemplo
    self.cmpConsentTool?.openView()

    rechazar todo

    parámetros
    Nombre Tipo Descripción
    onFinish función Opcional. Devolución de llamada para manejar el evento de consentimiento recibido. se llamará cuando se reciba y procese el consentimiento.
    Ida y vuelta

    Sin valor de retorno

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

    reajustar

    Restablece todas las propiedades a los valores predeterminados. Este método no consume páginas vistas.

    parámetros
    Ninguna.
    Ida y vuelta

    Sin valor de retorno.

    Ejemplo
    CMPManager.reset()

    conCloseListener

    Agrega un oyente cercano para recibir notificaciones cuando se cierra la capa de consentimiento.

    parámetros
    Nombre Tipo Descripción
    closeListener función Devolución de llamada que se llamará cuando se cierre la capa de consentimiento.
    Ida y vuelta

    Herramienta de consentimiento CMP

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

    conOpenListener

    Agrega un oyente abierto para recibir notificaciones cuando se abre la capa de consentimiento.

    parámetros
    Nombre Tipo Descripción
    openListener función Devolución de llamada a la que se llamará cuando se abra la capa de consentimiento
    Ida y vuelta

    Herramienta de consentimiento CMP

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

    conErrorListener

    Agrega un detector de errores para recibir notificaciones cuando ocurre un error.

    parámetros
    Nombre Tipo Descripción
    errorListener función Devolución de llamada para agregar acción si se produjo un error.
    Ida y vuelta

    Herramienta de consentimiento CMP

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

    conOnCMPNotOpenedListener

    Agrega una devolución de llamada de Cmp no abierto para recibir una notificación cuando la capa de consentimiento no se abre. La razón más común es que el usuario ya dio su consentimiento.

    parámetros
    Nombre Tipo Descripción
    openListener función Devolución de llamada que se llamará cuando no se abra la capa de consentimiento. 
    Ida y vuelta

    Herramienta de consentimiento CMP

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

    conOnCmpButtonClickedCallback

    Establece una devolución de llamada para recibir notificaciones cuando el usuario hace clic en un botón para cerrar la capa de consentimiento.

    parámetros
    Nombre Tipo Descripción
    openListener función Devolución de llamada que se invocará con CmpButtonEvent indicando qué botón se presionó.
    Ida y vuelta

    Herramienta de consentimiento CMP

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

    conCmpViewControllerConfigurationBlock

    Personaliza la capa de consentimiento UIViewController.

    parámetros
    Nombre Tipo Descripción

    configurationBlock

    Bloque de configuración CmpViewController

    Personaliza la capa de consentimiento

    Controlador UIView.

    Ida y vuelta

    Herramienta de consentimiento CMP

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

    conCmpViewConfigurationBlock

    Personalice la UiView de la capa de consentimiento.

    parámetros
    Nombre Tipo Descripción

    configurationBlock

    Bloque de configuración CmpUIView

    Personaliza la capa de consentimiento

    Vista de interfaz de usuario

    Ida y vuelta

    Herramienta de consentimiento CMP

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

    conActualizaciónGoogleConsentimiento

    Recupera el estado del modo de consentimiento de Google. 

    parámetros
    Nombre Tipo Descripción

    consentMap

    [Cordón: Cordón]?

    Estado de consentimiento
    Ida y vuelta

    Herramienta de consentimiento CMP

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

     

    Volver