[Android] 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

UrlConfig()

Establece la configuración de la URL para el Gestor de Consentimientos. Debe inicializarse con el valor que se indica a continuación y pasarse al getInstance método. 

Parámetros:

  • 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 de tu panel de control de CMP
  • 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 informativos
  • 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 consentimiento 

Ejemplo:

val urlConfig = UrlConfig(
    id = "YOUR_CODE_ID_HERE",
    domain = "delivery.consentmanager.net",
    language = "EN",
    appName = "CMDemoAppKotlin"
)

setActivity()

Establece la actividad que mostrará la capa de consentimiento. Debe ser una ComponentActivity

Parámetros:

  • viewController: ComponentActivity – La actividad en la que se presentará la capa de consentimiento.

Devoluciones: Ninguna

Ejemplo:

CMPManager.shared.setPresentingViewController(self)

 

Parámetros de ConsentLayerUIConfig()

  • position: Estrategia de posicionamiento del diálogo (por defecto: Position.FULL_SCREEN):
    • Position.FULL_SCREEN – Cubre toda la pantalla
    • Position.HALF_SCREEN_TOP – Mitad superior de la pantalla
    • Position.HALF_SCREEN_BOTTOM – Mitad inferior de la pantalla
    • Position.custom(width: Int, height: Int) – Dimensiones personalizadas en píxeles
  • backgroundStyle: Apariencia del fondo (por defecto: `BackgroundStyle.dimmed(Color.BLACK, 0.5f))
  • cornerRadius: Float – Radio de las esquinas en dp (por defecto: 0f).
    • Nota: Requiere la versión 3.7.0+ del SDK para un recorte adecuado del contenido de WebView
  • respectsSafeArea: Booleano – Si se deben respetar los márgenes de la interfaz de usuario del sistema (por defecto: true).
    • Nota: En Android 11+ (API 30), si se establece en false permite que el cuadro de diálogo se extienda por debajo de las barras del sistema
  • isCancelable: Booleano – Si el cuadro de diálogo se puede cerrar (por defecto: true)
  • darkMode: Booleano – Habilitar el estilo del modo oscuro (predeterminado: false)
//Example - Custom Position

val displayMetrics = resources.displayMetrics
val customPosition = ConsentLayerUIConfig.Position.custom(
    displayMetrics.widthPixels,
    (displayMetrics.heightPixels * 0.8).toInt() // 80% screen height
)

val webViewConfig = ConsentLayerUIConfig(
	position = customPosition,
	cornerRadius = 20f,
	respectsSafeArea = true
)

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. Esto realizará una llamada de red a nuestros servidores a través del WebView 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 WebView, determinando si debe mostrarse o no, consumiendo una vista de página en el proceso.

Parámetros: Ninguno

Volver:

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

Ejemplo:

cmpManager.isConsentRequired { needsConsent ->
	toastMessage = "Needs Consent: $needsConsent"
}

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 ejercer un control más detallado sobre los consentimientos otorgados por los usuarios, permitiéndoles ajustar sus elecciones (cuando se establece en true) o a la pantalla predeterminada inicial con los botones (cuando se establece en false o suprimido).
  • completion: Una función de cierre que se invoca cuando la operación finaliza, con el resultado, ya sea true o false.

Devoluciones: Ninguna

Ejemplo:

cmpManager.checkAndOpen { result ->
    result.onSuccess {
	    toastMessage = "Check and Open Consent Layer operation done successfully."
    }.onFailure { error ->
    	toastMessage = "Check and Open Consent Layer operation failed with error: $error"
}

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 ejercer un control más detallado sobre los consentimientos otorgados por los usuarios, permitiéndoles ajustar sus elecciones (cuando se establece en true) o a la pantalla predeterminada inicial 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: Ninguna

Ejemplo:

cmpManager.openConsentLayer { result ->
	result.onFailure { error ->
    	toastMessage = "Error: ${error.message}"
	}
}

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 SharedPreferences del dispositivo y la devuelve. Normalmente, esta información se pasa al importCMPInfo método.

Devuelve: Cadena – La información de consentimiento exportada

Ejemplo:

val cmpInfo = CMPManager.shared.exportCMPInfo()
Log.d("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: Map<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:

val settings = cmpManager.getGoogleConsentModeStatus()
Log.d("CMPDemo", "Google Consent Mode Settings: $settings")
toastMessage = buildString {
  append("Google Consent Settings:")
  settings.forEach { (key, value) ->
	  append("n$key: $value")
  }
}

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:

val purposeStatus = cmpManager.getStatusForPurpose("c53")
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"
}

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:

val vendorStatus = cmpManager.getStatusForVendor("s2789")
var message = "Vendor s2789's status: "
switch vendorStatus {
   	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 WebView, 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: Una llamada de cierre que se ejecuta cuando finaliza la operación, devolviendo un error o un éxito.

Devoluciones: Ninguna

Ejemplo:

cmpManager.acceptAll { result ->
    result.onSuccess {
	    toastMessage = "All consents accepted"
  	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

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 WebView, 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: List<String> – Una lista de ID de propósito que se deben aceptar
  • updatePurpose: Booleano – Si se deben actualizar los fines relacionados
  • completion: Una función de cierre que se invoca cuando finaliza la operación, devolviendo un error o un éxito

Devoluciones: Ninguna

Ejemplo:

cmpManager.acceptPurposes(listOf("c52", "c53"), true) { result ->
	  	result.onSuccess {
	  	toastMessage = "Purposes enabled"
  	}.onFailure { error ->
  		toastMessage = "Error: ${error.message}"
    }
}

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 WebView, 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: List<String> – Una lista de ID de proveedores que se aceptan
  • completion: Un cierre que se invoca cuando finaliza la operación

Devoluciones: Ninguna

Ejemplo:

cmpManager.acceptVendors(listOf("s2790", "s2791")) { result ->
	result.onSuccess {
		toastMessage = "Vendors Enabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

importCMPInfo()

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

Parámetros:

  • cmpString: Cadena – La cadena del CMP que se va a importar
  • completion: Una llamada de cierre que se ejecuta cuando finaliza la operación, devolviendo un error o un éxito

Devoluciones: Ninguna

Ejemplo:

val cmpString = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(cmpString) { result ->
	result.onSuccess {
		toastMessage = "Vendors Enabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

rejectAll()

Rechaza 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 WebView, 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: Ninguna

Ejemplo:

cmpManager.rejectAll { result ->
	result.onSuccess {
		toastMessage = "All consents rejected"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

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 WebView, 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: List<String> – Una lista de ID de propósito que deben rechazarse
  • updateVendor: Boolean – Si se deben actualizar los proveedores relacionados
  • completion: Un cierre que se invoca cuando finaliza la operación

Devoluciones: Ninguna

Ejemplo:

cmpManager.rejectPurposes(listOf("c52", "c53"), true) { result ->
    result.onSuccess {
      toastMessage = "Purposes disabled"
    }.onFailure { error ->
      toastMessage = "Error: ${error.message}"
	}
}

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 WebView, 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: List<String> – Una lista de ID de proveedores que deben rechazarse
  • completion: Una función de cierre que se invoca cuando finaliza la operación, devolviendo un error o un éxito

Devoluciones: Ninguna

Ejemplo:

cmpManager.rejectVendors(listOf("s2790", "s2791")) { result ->
	result.onSuccess {
		toastMessage = "Vendors Disabled"
	}.onFailure { error ->
		toastMessage = "Error: ${error.message}"
	}
}

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:

Ninguna

Devoluciones: Ninguna

Ejemplo:

cmpManager.resetConsentManagementData()

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

setOnClickLinkCallback

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.

        cmpManager.setOnClickLinkCallback { url ->
            if (url.contains("google.com")) {
                // Open Google URLs in external browser
                try {
                    startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)))
                    true // Return true to indicate we handled the URL
                } catch (e: Exception) {
                    Log.e("DemoApp", "Error opening URL: $url", e)
                    false
                }
            } else {
                // Let other URLs load in the WebView
                false
            }
        }

didReceiveConsent(consent: String, jsonObject: Map<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 el SDK comprobó la necesidad de un consentimiento, pero no era necesario y no se mostró la ventana emergente. Significa que ya hay uno válido en el dispositivo, por lo que no es necesario uno nuevo y no se mostrará la ventana emergente 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 WebView 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 WebView, 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: (Booleano) -> Unidad – Un cierre invocado con el resultado, ya sea true o false.

Devoluciones: Ninguna

Ejemplo:

cmpManager.checkIfConsentIsRequired { needsConsent ->
	toastMessage = "Needs Consent: $needsConsent"
}

checkWithServerAndOpenIfNecessary()

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 WebView 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:

  • completion: Una función de cierre que se invoca cuando la operación finaliza, con el resultado, ya sea true o false.

Devoluciones: Ninguna

Ejemplo:

cmpManager.checkWithServerAndOpenIfNecessary { result ->
    result.onSuccess {
	    toastMessage = "Check and Open Consent Layer operation done successfully."
    }.onFailure { error ->
    	toastMessage = "Check and Open Consent Layer operation failed with error: $error"
}

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 de SharedPreferences, 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: List<String> – Una lista de todos los ID de propósito

Ejemplo:

val allPurposes = cmpManager.getAllPurposesIDs()
Log.d("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 de SharedPreferences, 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: List<String> – Una lista de todos los ID de proveedor

Ejemplo:

val allVendors = cmpManager.getAllVendorsIDs()
Log.d("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 de SharedPreferences, 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: List<String> – Una lista de ID de finalidad desactivados

Ejemplo:

val disabledPurposes = cmpManager.getDisabledPurposesIDs()
Log.d("Disabled purposes: (disabledPurposes)")

getDisabledVendorsIDs()

Recupera los ID de todos los proveedores desactivados almacenados en el dispositivo, según las configuraciones de 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 de SharedPreferences, 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: List<String> – Una lista de ID de proveedores desactivados

Ejemplo:

val disabledVendors = CMPManager.shared.getDisabledVendorsIDs()
Log.d("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 de SharedPreferences, 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: List<String> – Una lista de ID de finalidad habilitados

Ejemplo:

val enabledPurposes = cmpManager.getEnabledPurposesIDs()
Log.d("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 de SharedPreferences, 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: List<String> – Una lista de ID de proveedores habilitados

Ejemplo:

val enabledVendors = cmpManager.getEnabledVendorsIDs()
Log.d("Enabled vendors: (enabledVendors)")

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 SharedPreferences 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

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

Ejemplo:

val hasPurposeConsent = cmpManager.hasPurposeConsent(id: "c53")
Log.d("Has consent for purpose c53: (hasPurposeConsent)")

hasUserChoice()

Comprueba si el usuario ha tomado una decisión 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 de SharedPreferences, 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.

Devoluciones: Booleantrue si el usuario ha tomado una decisión, false de lo contrario

Ejemplo:

val hasChoice = cmpManager.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 de SharedPreferences, 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: BooleanTrue si se da el consentimiento, false en caso contrario

Ejemplo:

val hasVendorConsent = cmpManager.hasVendorConsent(id: "s2789")
Log.d("Has consent for vendor s2789: (hasVendorConsent)")

 

 

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!