En este documento encontrarás información general sobre cómo integrar nuestro SDK en tu proyecto. Para obtener más detalles, consulta nuestra documentación de referencia de la API. Todos los fragmentos de código que aparecen a continuación se han extraído de nuestra aplicación de demostración.
1. Instalación
consentmanager SDK es una solución integral para gestionar el consentimiento de los usuarios en aplicaciones móviles. Diseñado para gestionar el cumplimiento del RGPD, las preferencias de privacidad de los usuarios y la transparencia en el seguimiento publicitario, este SDK ofrece una integración perfecta para las plataformas iOS y Android. Además, ofrece plugins/puentes de envoltura para React Native, Flutter y Unity, lo que lo hace versátil en diversos entornos de desarrollo.
Pasos: descripción general
-
Integración y configuración:
- Integra el SDK en tu aplicación.
- Configura los ajustes del SDK según tus necesidades.
-
Creación de una instancia y visualización de la capa de consentimiento:
- Al iniciar la aplicación, crea una instancia de la
CMPManagerclase. Esta instancia se encargará del proceso de consentimiento. - El SDK mostrará automáticamente la pantalla de consentimiento si es necesario.
- Al iniciar la aplicación, crea una instancia de la
-
Tratamiento de los datos de consentimiento de los usuarios:
- Una vez recopilados los consentimientos, la información se almacena y está disponible para su consulta a través de diferentes propiedades y métodos expuestos por nuestro SDK. Dispondrás de información sobre los consentimientos rechazados o aceptados, los proveedores y los fines.
1.1 Integración y configuración
Opción 1: CocoaPods
Añade la siguiente línea a tu Podfile:
pod 'cm-sdk-ios-v3', '3.2.0'
A continuación, ejecuta:
pod install --repo-update
Opción 2: Swift Package Manager
- Descarga la última versión de XCFramework desde nuestra página de lanzamientos de GitHub.
- En XCode, ve al menú
File>Add Package Dependency. - Añade la URL del repositorio del SDK arriba
- SPM ahora recuperará el repositorio y te pedirá que selecciones una versión.
Puedes elegir añadir el paquete seleccionando una regla de versión
:Up to Next Major: Esto actualizará el paquete a la siguiente versión principal. Es la opción recomendada, ya que añade actualizaciones que no incluyen cambios que rompan la
compatibilidad.Up to Next Minor: Esto actualizará el paquete a la siguiente versión menor
.Exact: Esto fijará el paquete en una versión específica. No se instalarán actualizaciones. - Importa el SDK insertando en la parte superior de las clases que implementan los métodos del SDK la línea siguiente:
import cm_sdk_ios_v3
- En la configuración de tu destino, ve a «General» > «Frameworks, bibliotecas y contenido incrustado» y asegúrate de que el framework esté configurado en «Incrustar y firmar».
1.2 Creación de una instancia y visualización de la capa de consentimiento
Dentro de la función app-start (tu viewDidLoad función), debes crear una instancia de la clase CMPManager. Tendrás que configurar dos objetos que se pasarán al método getInstance: UrlConfig, que gestiona tu configuración de CMP, como el Code-ID y el idioma predeterminado, y ConsentLayerUIConfig, que configurará el aspecto del WKWebView que mostrará la capa de consentimiento. A continuación, pasarás el ViewController utilizando el método setPresentingViewControllery asignar el delegado, tal y como se muestra a continuación. En el ejemplo siguiente, puedes ver cómo se pasan ambos objetos. La checkWithServerAndOpenIfNecessary() función recuperará automáticamente los datos necesarios de nuestro servidor y determinará si es necesario mostrar la pantalla de consentimiento o no. Si es así, el SDK mostrará automáticamente la pantalla de consentimiento en este punto, a través de un WKWebView creada por nuestro SDK, que mostrará la capa de consentimiento con el texto y los botones según las configuraciones de tu CMP (seleccionadas mediante el Code-ID de tu CMP), recopilará los datos y almacenará la información de consentimiento en el área NSUserDefaults del dispositivo, para que la aplicación pueda mostrar los anuncios personalizados en consecuencia.
Ten en cuenta que es fundamental declarar e inicializar el CMPManager SDK en el viewDidLoad método; de lo contrario, es posible que la vista no esté lista para su uso y que el SDK falle. Además, asegúrate de que estás utilizando los datos de configuración correctos. Los datos de configuración se encuentran en tu cuenta de ConsentManager en Menú > CMP > Obtener código para aplicaciones > ID de código
Además, ten en cuenta que las funcionalidades relacionadas con determinar si se necesita el consentimiento o no, así como la visualización de la capa de consentimiento, dependen de una conexión de red fiable. Si no hay conexión disponible o si el mecanismo de reintento no logra conectarse a nuestro servidor, el evento didReceiveError devolverá un error de tiempo de espera, por lo que el SDK será totalmente incapaz de determinar la necesidad de un consentimiento, ya que no podrá mostrar la capa de consentimiento. Asegúrate de que tu lógica tenga esto en cuenta.
Ejemplo:
import cm_sdk_ios_v3
class YourViewController: UIViewController, CMPManagerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
let cmpManager = CMPManager.shared
cmpManager.setUrlConfig(UrlConfig(
id: "your_id_here", // example: a000aaaaa1a
domain: "your_domain_here", // usually, delivery.consentmanager.net
language: "your_language_here", // example: DE
appName: "Your App Name")) // example: testApp
cmpManager.setWebViewConfig(ConsentLayerUIConfig(
position: .fullScreen,
backgroundStyle: .dimmed(.black, 0.5),
cornerRadius: 5,
respectsSafeArea: true,
allowsOrientationChanges: true))
cmpManager.setPresentingViewController(self)
cmpManager.delegate = self
cmpManager.checkAndOpen { error in
if let error = error {
print("Error initializing consent: (error)")
} else {
print("ConsentManager initialized and consent received and stored on the device's NSUserDefaults.")
}
}
}
1.3 Tratamiento de los datos de consentimiento de los usuarios
Comprobación de los consentimientos de los usuarios
Nuestro SDK ofrece un método unificado para comprobar y recuperar la información de consentimiento, getUserStatus():
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)
Para obtener más información sobre los demás métodos, consulta nuestra documentación completa de la API.
Reabrir la ventana de consentimiento para comprobar las elecciones de los usuarios
Para que el usuario pueda verificar o cambiar sus opciones, basta con llamar a openConsentLayer()
cmpManager.forceOpen()
Este método mostrará la capa de consentimiento a través de la misma instancia de WKWebView creada en los pasos anteriores.
Importación/exportación de información sobre el consentimiento a otras fuentes
En algunos casos, una aplicación nativa puede contener vistas web para mostrar información, como publicidad o contenido. Para transmitir la información de consentimiento desde el SDK a la vista web, puedes recuperar la cadena de consentimiento utilizando:
consentData = cmpManager.exportCMPInfo()
Esto exportará la información de consentimiento y todos los datos adicionales que necesita el CMP. A continuación, puedes pasar esta información al CMP que se encuentra en tu vista web añadiéndola a la URL que se llama en la vista web.
Si, por el contrario, necesitas importar la cadena de consentimiento utilizando el SDK, puedes usar el ejemplo siguiente:
let consentStringToImport = "Q1FERkg3QVFERkg3QUFmR01CSVRCQkVnQUFBQUFBQUFBQWlnQUFBQUFBQUEjXzUxXzUyXzUzXzU0XzU1XzU2XyNfczI3ODlfczI3OTBfczI3OTFfczI2OTdfczk3MV9VXyMxLS0tIw"
cmpManager.importCMPInfo(consentStringToImport)
Integración con Apple Tracking Transparency (ATT)
En caso de que utilices herramientas de seguimiento o análisis en tu aplicación, te recomendamos que leas la guía sobre la implementación de ATT aquí.
Creación de un diseño personalizado
Para crear una vista personalizada de WKWebView, como cambiar su posición o fondo, por ejemplo, puedes modificar la configuración pasada al objeto ConsentLayerUIConfig de la siguiente manera:
ConsentLayerUIConfig(
position: .halfScreenTop,
backgroundStyle: .dimmed(.grey, 0.75),
cornerRadius: 20,
respectsSafeArea: false,
allowsOrientationChanges: true)
Inicio de sesión
Al utilizar nuestro SDK para iOS, es posible que necesites depurar o analizar la información de los registros con diversos fines. Los registros generados por nuestro SDK están etiquetados con «CMP», lo que te permite filtrar fácilmente y ver solo los registros relevantes. Para obtener más información, consulta esta sección de nuestra documentación.