[iOS] 2. Documentación de la API

La CMPManager clase proporciona métodos para gestionar el consentimiento del usuario para el tratamiento de datos y el seguimiento. Esta documentación cubre los principales métodos disponibles para la integración en aplicaciones móviles. 

Todos los ejemplos que se mencionan a continuación se han extraído de nuestra aplicación de demostración, donde se pueden consultar.

Por favor, comprueba los métodos obsoletos en caso de que ya estés integrando la v3 de nuestro SDK de CMP.

Inicialización

setUrlConfig()

Establece la configuración de la URL para el Gestor de Consentimientos.

Parámetros:

  • config: A UrlConfig que contiene las siguientes propiedades:
    • id: Cadena – El ID de código obtenido de tu panel de control de CMP
    • domain: Cadena – El dominio para la gestión del consentimiento, también obtenido del panel de control
    • language: Cadena – El código de idioma (p. ej., «EN», «IT», «DE», etc.)
    • appName: Cadena – El nombre de tu aplicación, utilizado únicamente con fines de generación de informes 
    • jsonConfig: Objeto JSON – Opcional, solo se utiliza en casos especiales; no lo utilices a menos que se indique claramente en tu panel de control de CMP junto con los demás parámetros anteriores. 
    • noHash: booleano – Evita que la URL generada y cargada por la vista web utilice un hash (#) para transmitir el 

Devoluciones: Nulo

Ejemplo:

CMPManager.shared.setUrlConfig(UrlConfig(
    id: "0a000000000a1",					// The Code-ID retrieved from your CMP dashboard
    domain: "delivery.consentmanager.net",  // The domain retrieved from your CMP dashboard
    language: "EN",							// Language code, examples: IT, DE, EN, etc. 
    appName: "MyApp"						// The name of your app, used for reporting purposes on your CMP dashboard
))

setWebViewConfig()

Configura la apariencia y el comportamiento de la WebView de consentimiento. Puedes establecer la posición en la que aparecerá el objeto WKWebView que muestra la capa de consentimiento, como a pantalla completa, en la mitad inferior de la pantalla o en su mitad superior. Además, se puede aplicar el estilo de fondo, así como el radio de las esquinas, si respetará el área segura del dispositivo, y si responderá a los cambios de orientación o no, en caso de que tu móvil solo funcione en una única orientación, lo que suele ocurrir con los juegos que solo utilizan la configuración horizontal de la pantalla del dispositivo.   

Parámetros:

  • config: A ConsentLayerUIConfig objeto con las siguientes propiedades:
    • position: Posición: la posición del WebView (p. ej., .fullScreen)
    • backgroundStyle: BackgroundStyle – El estilo de fondo (p. ej., .dimmed)
    • cornerRadius: CGFloat: el radio de las esquinas de WebView
    • respectsSafeArea: Bool – Si se debe respetar el área segura. Este parámetro está presente pero no tiene efecto en el SDK de iOS debido a cómo se comportarían los diferentes dispositivos y orientaciones (iPhone SE frente a iPhone 17 Pro Max frente a todos los iPad), especialmente debido a que los bordes redondeados de los distintos dispositivos tienen proporciones diferentes, o a cómo se gestionaría la isla dinámica por parte de la aplicación móvil subyacente que integra nuestro SDK, por citar solo algunos de los retos a los que nos enfrentamos durante el desarrollo.
    • allowsOrientationChanges: Bool – Si se permiten los cambios de orientación

Devoluciones: Nulo

Ejemplo:

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

setPresentingViewController()

Establece el controlador de vista que mostrará la capa de consentimiento. Normalmente se pasa self como el controlador de vista actual. 

Parámetros:

  • viewController: UIViewController – El controlador de vista para presentar la capa de consentimiento

Devoluciones: Nulo

Ejemplo:

CMPManager.shared.setPresentingViewController(self)

setATTStatus()

Establece el estado de ATT obtenido de ATTManager.AuthorizationStatus, para que se pueda mostrar la capa de consentimiento específica adecuada.

Parámetros:

  • _: el valor sin procesar de AuthorizationStatus

Devoluciones: Nulo

Ejemplo:

cmpManager.setATTStatus(2)  // 0 = NotDetermined, 1 = Restricted, 2 = Denied, and 3 = Authorized
         					// retrieved from ATTManager.AuthorizationStatus

 

Gestión de la capa de consentimiento

getUserStatus()

Ofrece una visión detallada del estado actual de consentimiento y las preferencias del usuario. Este método proporciona información completa sobre las elecciones de consentimiento del usuario, incluyendo su estado general de consentimiento, los permisos de proveedores individuales, los consentimientos para fines específicos y las cadenas de consentimiento relevantes.

Parámetros:

  • Ninguna

Devoluciones:

Tipo de retorno: CMPUserStatusResponse objeto, explicado en el código a continuación. 

Ejemplo:

let status = CMPManager.shared.getUserStatus()
var message = "Status: (status.status)nn"

message += "Vendors:n"
for (vendorId, state) in status.vendors {
    message += "- (vendorId): (state)n"
}

message += "nPurposes:n"
for (purposeId, state) in status.purposes {
    message += "- (purposeId): (state)n"
}

message += "nTCF: (status.tcf)n"
message += "Additional Consent: (status.addtlConsent)n"
message += "Regulation: (status.regulation)"

print(message)

isConsentRequired()

Comprueba si se requiere el consentimiento del usuario sin mostrar automáticamente la capa de consentimiento si es necesario. Esto realizará una llamada de red a nuestros servidores a través del WKWebView creado dentro de nuestro SDK, que enviará un mensaje a nuestro backend mediante JavaScript. Nuestro backend detectará si el dispositivo tiene un consentimiento válido y devolverá false si el consentimiento encontrado en el dispositivo es válido o true si es necesario recabar un nuevo consentimiento del usuario, lo que consumirá una vista de página en el proceso.

Parámetros: Ninguno

Volver: 

  • completion: (Bool) -> Void – Un cierre invocado con el resultado, ya sea true si no se ha encontrado ningún consentimiento válido o false en caso contrario.

Ejemplo:

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

checkAndOpen()

Comprueba con el servidor si se requiere consentimiento y abre la capa de consentimiento si es necesario. Esto realizará una llamada de red a nuestros servidores a través del WKWebView creado dentro de nuestro SDK, consumiendo una vista de página en el proceso. Esta llamada de red enviará un mensaje a nuestro backend a través de JavaScript, que detectará si el dispositivo tiene un consentimiento válido o no, lo que a su vez determinará si es necesario mostrar la capa de consentimiento o no.  

Parámetros:

  • jumpToSettings: Un valor booleano para determinar si la capa de consentimiento mostrada redirigirá automáticamente a la página donde se puede controlar con mayor detalle los consentimientos otorgados por los usuarios, permitiéndoles ajustar sus elecciones (cuando se establece en true) o a la pantalla inicial predeterminada con los botones (cuando se establece en false o suprimido).
  • completion: Una llamada de cierre que se ejecuta cuando finaliza la operación.

Devoluciones: Nulo

Ejemplo:

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

forceOpen()

Abre la ventana de consentimiento. Realiza una llamada de red a nuestro backend, consumiendo una vista de página en el proceso. Mostrará la ventana de consentimiento, permitiendo al usuario «Aceptar todo» o «Rechazar todo», o, dependiendo del parámetro jumpToSettings, permitirle controlar los consentimientos de forma más detallada. 

Parámetros:

  • jumpToSettings: Un valor booleano para determinar si la capa de consentimiento mostrada redirigirá automáticamente a la página donde se puede controlar con mayor detalle los consentimientos otorgados por los usuarios, permitiéndoles ajustar sus elecciones (cuando se establece en true) o a la pantalla inicial predeterminada con los botones (cuando se establece en false o suprimido).
  • completion: Una llamada de cierre que se ejecuta cuando finaliza la operación, devolviendo un resultado de éxito o de error.

Devoluciones: Nulo

Ejemplo:

CMPManager.shared.forceOpen { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("Consent layer opened successfully")
    }
}

Estado del consentimiento

exportCMPInfo()

Exporta la información de consentimiento actual almacenada en el dispositivo como una cadena. Este método recupera la cadena de consentimiento del área UserDefaults del dispositivo y la devuelve. Normalmente, esta información se pasa al importCMPInfo método.

Devuelve: Cadena – La información de consentimiento exportada

Ejemplo:

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

getGoogleConsentModeStatus()

Se integra perfectamente con Consent Mode, una tecnología de Google que permite la conversión y el modelado analítico, lo que permite a los servicios de Google completar los datos que faltan cuando los usuarios no dan su consentimiento. Esta función traduce el consentimiento del usuario desde tu CMP a un formato que Firebase Analytics puede entender, por lo que solo tienes que obtener el resultado de este método y pasarlo al método .setConsent de Firebase.

  • A continuación, actualiza Google Analytics con el estado actual del consentimiento del usuario.

Parámetros:

  • Ninguna

Devuelve: [String: String] – Una matriz de valores clave con las cuatro claves del Modo de Consentimiento de Google: .analyticsStorage, .adStorage, .adUserData y .adPersonalization, y sus respectivos valores en términos de .choiceDoesntExist, .granted o .denied.

Ejemplo:

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

getStatusForPurpose()

Comprueba si se ha dado el consentimiento para un fin específico y si dicho consentimiento se almacena en el dispositivo. Comprueba el área UserDefaults en busca de los consentimientos aceptados o rechazados, y filtra el ID pasado como parámetro, devolviendo «true» si el consentimiento fue aceptado o «false» en caso contrario. 

Parámetros:

  • id: Cadena – El ID del propósito que se va a comprobar

Resultados: UniqueConsentStatus – Una enumeración con los valores .choiceDoesntExist si no se ha dado el consentimiento, .granted o .denied.

Ejemplo:

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

getStatusForVendor()

Comprueba si se ha dado el consentimiento para un proveedor específico y si dicho consentimiento se almacena en el dispositivo. Comprueba el área UserDefaults en busca de los consentimientos aceptados o rechazados, y filtra el ID pasado como parámetro, devolviendo «true» si el consentimiento fue aceptado o «false» en caso contrario. 

Parámetros:

  • id: Cadena – El ID del propósito que se va a comprobar

Resultados: UniqueConsentStatus – Una enumeración con los valores .choiceDoesntExist si no se ha dado el consentimiento, .granted o .denied.

Ejemplo:

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

Modificación del consentimiento

acceptAll()

Acepta el consentimiento para todos los fines y proveedores, consumiendo una vista de página en el proceso. Realiza una llamada de red a nuestro backend a través de un mensaje inyectado en el WKWebView, lo que activará la aceptación de todos los consentimientos, según la configuración del CMP. Esta información solo estará disponible para los demás métodos después de que la llamada de retorno devuelva un éxito o un fallo, lo que significa que ha sido procesada correctamente por nuestro backend y persistida en el dispositivo. 

Parámetros:

  • completion: Un cierre que se invoca cuando la operación finaliza

Devoluciones: Nulo

Ejemplo:

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

acceptPurposes()

Acepta el consentimiento para fines específicos, consumiendo una vista de página en el proceso. Realiza una llamada de red a nuestro backend a través de un mensaje inyectado en el WKWebView, lo que activará la aceptación de los fines determinados pasados como parámetro, de acuerdo con la configuración del CMP. Esta información solo estará disponible para los demás métodos después de que la llamada de retorno devuelva un éxito o un fallo, lo que significa que ha sido procesada correctamente por nuestro backend y persistida en el dispositivo. 

Parámetros:

  • purposes: [String] – Una matriz de ID de propósito que se deben aceptar
  • updatePurpose: Bool – Si se deben actualizar los fines relacionados
  • completion: Un cierre que se invoca cuando la operación finaliza

Devoluciones: Nulo

Ejemplo:

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

acceptVendors()

Acepta el consentimiento para proveedores específicos, consumiendo una vista de página en el proceso. Realiza una llamada de red a nuestro backend a través de un mensaje inyectado en el WKWebView, lo que activará la aceptación de los proveedores determinados pasados como parámetro, de acuerdo con la configuración del CMP. Esta información solo estará disponible para los demás métodos después de que la llamada de retorno devuelva un éxito o un fallo, lo que significa que ha sido procesada correctamente por nuestro backend y persistida en el dispositivo.  

Parámetros:

  • vendors: [String] – Una matriz de ID de proveedores que se aceptan
  • completion: Un cierre que se invoca cuando finaliza la operación

Devoluciones: Nulo

Ejemplo:

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

importCMPInfo()

Importa la información de consentimiento desde una cadena CMP. Esto recibirá una cadena que contiene los datos de consentimiento, normalmente obtenidos mediante el exportCMPInfo método. Esta información se almacena en el área UserDefaults del dispositivo y, al mismo tiempo, se envía a nuestro backend a través de un mensaje inyectado en el WKWebView, consumiendo una vista de página en el proceso. 

Parámetros:

  • cmpString: Cadena – La cadena del CMP que se va a importar
  • completion: Un cierre que se invoca cuando finaliza la operación

Devoluciones: Nulo

Ejemplo:

let cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
CMPManager.shared.importCMPInfo(cmpString) { error in
    if let error = error {
        print("Error: (error.localizedDescription)")
    } else {
        print("CMP info imported successfully")
    }
}

rejectAll()

Rechaza el consentimiento para todos los fines y proveedores, consumiendo una visita a la página en el proceso. Realiza una llamada de red a nuestro backend a través de un mensaje inyectado en el WKWebView, lo que activará el rechazo de todos los consentimientos, según la configuración del CMP. Esta información solo estará disponible para los demás métodos después de que la llamada de retorno devuelva un éxito o un fallo, lo que significa que ha sido procesada correctamente por nuestro backend y persistida en el dispositivo. 

Parámetros:

  • completion: Un cierre que se invoca cuando finaliza la operación

Devoluciones: Nulo

Ejemplo:

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

rejectPurposes()

Rechaza el consentimiento para fines específicos, consumiendo una vista de página en el proceso. Realiza una llamada de red a nuestro backend a través de un mensaje inyectado en el WKWebView, lo que activará el rechazo de los fines determinados pasados como parámetro, de acuerdo con la configuración del CMP. Esta información solo estará disponible para los demás métodos después de que la llamada de retorno devuelva un éxito o un fallo, lo que significa que ha sido procesada correctamente por nuestro backend y persistida en el dispositivo. 

Parámetros:

  • purposes: [String] – Una matriz de ID de propósito para rechazar
  • updateVendor: Bool – Si se deben actualizar los proveedores relacionados
  • completion: Un cierre que se invoca cuando la operación finaliza

Devoluciones: Nulo

Ejemplo:

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

rejectVendors()

Rechaza el consentimiento para proveedores específicos, consumiendo una vista de página en el proceso. Realiza una llamada de red a nuestro backend a través de un mensaje inyectado en el WKWebView, lo que activará el rechazo de los proveedores determinados pasados como parámetro, de acuerdo con la configuración del CMP. Esta información solo estará disponible para los demás métodos después de que la llamada de retorno devuelva un éxito o un fallo, lo que significa que ha sido procesada correctamente por nuestro backend y persistida en el dispositivo. 

Parámetros:

  • vendors: [String] – Una matriz de ID de proveedores que deben rechazarse
  • completion: Un cierre que se invoca cuando finaliza la operación

Devoluciones: Nulo

Ejemplo:

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

 

resetConsentManagementData()

Esto elimina los pares clave/valor de las áreas UserDefaults y SharedPreferences del dispositivo. Para borrar completamente los datos, es posible que tengas que eliminar las cookies, los registros de datos y el historial y la caché de WebView, con el fin de forzar totalmente la necesidad de un nuevo consentimiento.  

Parámetros:

  • completion: Un cierre que se invoca cuando finaliza la operación

Devoluciones: Nulo

Ejemplo:

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

Transmisión de datos de consentimiento a SDK de terceros

updateThirdPartyConsent

Este método gestiona el envío automático de datos de consentimiento a SDK de terceros como AppsFlyer, AdJust, Branch, Kochava, Singular, AirBridge y Tenjin. Funciona mediante introspección/reflexión, así que inicializa el SDK de terceros con tus credenciales utilizando la estrategia habitual recomendada por el proveedor, y nuestro SDK de CMP detectará la instancia del SDK de terceros e invocará los métodos necesarios en segundo plano. 

Eventos de CMPManagerDelegate

getOnClickLinkCallback

El SDK proporciona un mecanismo flexible de gestión de enlaces que permite a las aplicaciones personalizar cómo se gestionan las URL dentro de la capa de consentimiento. De forma predeterminada, todos los enlaces se abren dentro de WebView, pero las aplicaciones pueden interceptar URL específicas para gestionarlas externamente cuando sea necesario.

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

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

didReceiveConsent(consent: String, jsonObject: [String: Any])

Esto se activa cuando se cierra la ventana de consentimiento después de que el usuario haya actualizado sus consentimientos O al invocar métodos que provocan cambios en los consentimientos, como acceptAll, rejectAll, acceptVendors, rejectVendors, etc. Significa que el usuario ha aceptado o rechazado algunos o todos los consentimientos, y que estos se han guardado correctamente en el dispositivo.

didShowConsentLayer

Esto se activa cuando se ha mostrado realmente la ventana de consentimiento. Significa que no había un consentimiento válido en el dispositivo, por lo que se debe recabar uno nuevo.

didCloseConsentLayer


Esto se activa cuando:

1. El SDK comprobó la necesidad de un consentimiento, pero no era necesario y no se mostró la capa. Esto significa que ya hay uno válido en el dispositivo, por lo que no es necesario uno nuevo y no se mostrará la capa de consentimiento.
2. El usuario interactuó con la capa de consentimiento y dio su consentimiento, cerrando la capa de consentimiento.

didReceiveError

Esto se activa cuando el SDK encuentra algún error, devolviendo su código. En caso de malas condiciones de red, cabe esperar un tiempo de espera fijo de unos 10 segundos. 

Métodos obsoletos

Todos los métodos que se indican a continuación han quedado obsoletos y se eliminarán por completo del SDK a partir de julio de 2025

checkIfConsentIsRequired()

Comprueba si se requiere el consentimiento del usuario. Esto realizará una llamada de red a nuestros servidores a través del WKWebView creado dentro de nuestro SDK, que enviará un mensaje a nuestro backend mediante JavaScript. Nuestro backend detectará si el dispositivo tiene un consentimiento válido o no, y se enviará un mensaje de vuelta a WKWebView, determinando si debe mostrarse o no, consumiendo una vista de página en el proceso. Dependiendo del mensaje devuelto, el SDK lo interpretará y devolverá sus resultados a través del controlador de finalización.

Parámetros:

  • completion: (Bool) -> Void – Un cierre invocado con el resultado, ya sea true o false.

Retornos: Voz

Ejemplo:

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

jumpToSettings()

Abre la capa de consentimiento y va directamente a la página de configuración. Esto realizará una llamada de red a nuestros servidores, consumiendo una vista de página en el proceso, invocando la visualización de WKWebView, pero mostrando la página de configuración en lugar de la página inicial de la capa de consentimiento, que ofrece a los usuarios las opciones de «Aceptar todo» o «Rechazar todo» en cuanto a los consentimientos. Esto, en cambio, llevará a la página donde se ofrece a los usuarios un control más detallado sobre los consentimientos, permitiéndoles ajustar sus opciones. 

Parámetros:

  • completion: Un cierre que se invoca cuando la operación finaliza

Devoluciones: Nulo

Ejemplo:

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

hasPurposeConsent()

Comprueba si se ha dado el consentimiento para un fin específico y si dicho consentimiento se almacena en el dispositivo. Comprueba el área UserDefaults en busca de los consentimientos aceptados o rechazados, y filtra el ID pasado como parámetro, devolviendo «true» si el consentimiento fue aceptado o «false» en caso contrario. 

Nota: ¡Comprueba siempre primero si hay hasUserChoice()! En los casos en los que no exista ninguna opción, la función puede devolver valores inesperados.

Parámetros:

  • id: Cadena – El ID del propósito que se va a comprobar

Devoluciones: BoolTrue si se da el consentimiento, false en caso contrario

Ejemplo:

let hasPurposeConsent = CMPManager.shared.hasPurposeConsent(id: "c53")
print("Has consent for purpose c53: (hasPurposeConsent)")

hasUserChoice()

Comprueba si el usuario ha tomado una decisión con respecto a los consentimientos y si este consentimiento se almacena en el dispositivo. Esto significa que el usuario ha aceptado todos los consentimientos, los ha rechazado todos o ha tomado una decisión mixta de consentimientos rechazados y aceptados, dependiendo del diseño del CMP, que podría permitir a los usuarios aceptar algunos consentimientos y rechazar otros. Esta información solo estará actualizada una vez que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si lo compruebas justo después de utilizar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Devuelve: Bool – true si el usuario ha tomado una decisión, false en caso contrario

Ejemplo:

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

hasVendorConsent()

Comprueba si se ha dado el consentimiento para un proveedor específico y si este consentimiento se almacena en el dispositivo, según las configuraciones del CMP. Esta información solo estará actualizada una vez que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si lo compruebas justo después de utilizar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Parámetros:

  • id: Cadena – El ID del proveedor que hay que comprobar

Devoluciones: BoolTrue si se da el consentimiento, false en caso contrario

Ejemplo:

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

getAllPurposesIDs()

Recupera todos los ID de propósito almacenados en el dispositivo, según las configuraciones de CMP. Esta información solo estará actualizada una vez que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si la compruebas justo después de utilizar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Devuelve: [Cadena] – Una matriz con todos los ID de propósito

Ejemplo:

let allPurposes = CMPManager.shared.getAllPurposesIDs()
print("All purposes: (allPurposes)")

getAllVendorsIDs()

Recupera todos los ID de proveedores almacenados en el dispositivo, según las configuraciones de la CMP. Esta información solo estará actualizada una vez que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si la compruebas justo después de utilizar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Devuelve: [Cadena] – Una matriz con todos los ID de proveedor

Ejemplo:

let allVendors = CMPManager.shared.getAllVendorsIDs()
print("All vendors: (allVendors)")

getDisabledPurposesIDs()

Recupera los ID de todos los fines desactivados almacenados en el dispositivo, según las configuraciones del CMP y las elecciones del usuario. Si el usuario acepta todos los consentimientos, esto estará vacío.  Esta información solo estará actualizada una vez que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si lo compruebas justo después de utilizar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Devuelve: [Cadena] – Una matriz de ID de propósito desactivados

Ejemplo:

let disabledPurposes = CMPManager.shared.getDisabledPurposesIDs()
print("Disabled purposes: (disabledPurposes)")

getDisabledVendorsIDs()

Recupera los ID de todos los proveedores desactivados almacenados en el dispositivo, según las configuraciones de la CMP. Si el usuario acepta todos los consentimientos, esto estará vacío. Esta información solo estará actualizada después de que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si lo compruebas justo después de usar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Devuelve: [Cadena] – Una matriz de ID de proveedores desactivados

Ejemplo:

let disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
print("Disabled vendors: (disabledVendors)")

getEnabledPurposesIDs()

Recupera los ID de todos los fines habilitados almacenados en el dispositivo, según las configuraciones del CMP. Si el usuario rechaza todos los consentimientos, esto estará vacío. Esta información solo estará actualizada después de que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si lo compruebas justo después de usar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Devuelve: [Cadena] – Una matriz de ID de propósito habilitados

Ejemplo:

let enabledPurposes = CMPManager.shared.getEnabledPurposesIDs()
print("Enabled purposes: (enabledPurposes)")

getEnabledVendorsIDs()

Recupera los ID de todos los proveedores habilitados almacenados en el dispositivo. Si el usuario rechaza todos los consentimientos, esto estará vacío. Esta información solo estará actualizada después de que el consentimiento se haya guardado correctamente en el área UserDefaults, por lo que si la compruebas justo después de usar métodos que provocan cambios en el consentimiento, como openConsentLayer, acceptAll o rejectAll, por ejemplo, espera a que se active la llamada de retorno de esos métodos antes de acceder al método hasUserChoice, para asegurarte de que la información está actualizada.

Devuelve: [Cadena] – Una matriz de ID de proveedores habilitados

Ejemplo:

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

 

We do our best to keep this purely informative documentation up to date. However, if you notice that any of these guides need a little touch-up, let us know!