[iOS] 3. Documentación de la API
aceptar todo
Acepta la capa de consentimiento y se comporta igual cuando el usuario acepta el consentimiento.
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
Comprueba si se requiere el consentimiento del usuario y, opcionalmente, devuelve resultados almacenados en caché.
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, de ser así, abre la interfaz de usuario de la capa de consentimiento.
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.
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
Deshabilita una lista de propósitos y actualiza el consentimiento otorgado.
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
Deshabilita una lista de proveedores y actualiza el consentimiento otorgado.
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 finalidades y actualiza el consentimiento prestado.
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.
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.
parámetros
Ninguna. |
Ida y vuelta
La cadena codificada en CMP base64.
Ejemplo
@objc func exportConsentStringAction() {
let exportString = cmpManager.exportCmpString()
print(exportString ?? "No string to export.");
}
obtenertodoslospropósitos
Devuelve los ID de todos los propósitos.
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 ID de todos los propósitos para un CMP determinado.
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 ID de todos los proveedores para un CMP determinado.
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 los ID de todos los proveedores para un CMP determinado.
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 dado.
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 los ID de todos los propósitos deshabilitados para un CMP determinado.
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 ID de proveedores deshabilitados para un CMP determinado.
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 ID de proveedores habilitados para un CMP determinado.
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 de todos los ID de propósitos habilitados para un CMP determinado.
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 ID de proveedores habilitados para un CMP determinado.
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 ID de proveedores habilitados para un CMP determinado.
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.
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.
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 dio su consentimiento. La capa de consentimiento puede tener la opción de simplemente cerrar la capa. En ese caso, el usuario no dio su consentimiento.
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.")
}
}
tiene PropósitoConsentimiento
Comprueba si la identificación del propósito está habilitada según el consentimiento del usuario.
parámetros
Nombre | Tipo | Descripción |
purposeId |
Cordón | identificación de propósito |
Ida y vuelta
VERDADERO si
- el usuario ha dado su consentimiento para el propósito especificado O
- por cualquier motivo relacionado con una conexión a Internet deficiente o nula en el dispositivo, no se podrá recuperar el consentimiento para tal fin. Consulte withErrorListener para manejar estas condiciones durante el inicio de la aplicación, especialmente para usuarios nuevos que aún no han dado ningún consentimiento.
FALSO en caso contrario.
Ejemplo
@objc func getHasPurposeConsentAction() {
if let hasPurposeConsent = cmpManager?.hasPurposeConsent("purposeID") {
let consentStatus = hasPurposeConsent ? "Yes" : "No"
print("Purpose has consent provided by the user? \(consentStatus)")
} else {
print("Failed to retrieve user purpose consent.")
}
}
tiene el consentimiento del proveedor
Comprueba si la ID del proveedor está habilitada según el consentimiento del usuario.
parámetros
Nombre | Tipo | Descripción |
vendorId |
Cordón | identificación del proveedor |
Ida y vuelta
VERDADERO si
- el usuario ha dado su consentimiento al proveedor especificado O
- Por cualquier motivo relacionado con una conexión a Internet deficiente o nula en el dispositivo, no se pudo recuperar el consentimiento del proveedor. Consulte withErrorListener para manejar estas condiciones durante el inicio de la aplicación, especialmente para usuarios nuevos que aún no han dado ningún consentimiento.
FALSO en caso contrario.
Ejemplo
@objc func getHasVendorConsentAction() {
if let hasVendorConsent = cmpManager?.hasVendorConsent("vendorID") {
let consentStatus = hasVendorConsent ? "Yes" : "No"
print("Vendor has consent provided by the user? \(consentStatus)")
} else {
print("Failed to retrieve user vendor consent.")
}
}
importarCmpString
Importa una cadena CMP que representa las preferencias de consentimiento del usuario. La cadena debe estar codificada en base64..
parámetros
Nombre | Tipo | Descripción |
cadena de consentimiento | Cordón | Cadena codificada en Base64 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 = "YourBase64EncodedConsentStringHere"
// Define the completion handler
let completionHandler: CmpImportCompletionHandler = { error in
if let error = error {
print("Failed to import CMP string: \(error.localizedDescription)")
} else {
print("CMP string imported successfully")
}
}
cmpManager.importCmpString(cmpString, completion: completionHandler)
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 eventualmente abrirá la capa de consentimiento e interactuará con la API de transparencia de seguimiento de Apple para solicitar el consentimiento del usuario.
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
Comprueba si el usuario actual de la aplicación debe dar su consentimiento.
parámetros
Ninguna. |
Ida y vuelta
VERDADERO 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 con fuerza la vista web de la capa de consentimiento de CMP.
parámetros
Ninguna. |
Ida y vuelta
Sin valor de retorno
Ejemplo
@objc func checkCmpLayer() {
print("Checking CMP API...")
cmpManager?.check(
{
// Callback for when the consent layer needs to be opened
print("Consent layer will open")
self.cmpConsentTool?.openView()
},
isCached: true,
onCmpLayerNotOpen: {
// Callback for when the consent layer does not need to be opened
print("Consent layer will not open")
}
)
}
rechazar todo
Rechaza la capa de consentimiento y se comporta igual cuando el usuario no aceptó el consentimiento.
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.
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 |
|
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 |
|
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 |
|
[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
}
}