Info
Contenido

[iOS] 3. Documentación de la API

aceptar todo

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

Sin valor de retorno.

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

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


check

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

Sin valor de retorno.

Ejemplo
@objc func checkCmpLayer() {
    print("Checking need for consent.")

    cmpManager?.check(
        {
            // Callback for when the consent layer needs to be opened
            print("Consent layer will open")
            self.cmpConsentTool?.openView()
        }, 
        isCached: true
    )
}


comprobar y abrir la capa de consentimiento


Comprueba si se requiere el consentimiento del usuario y, 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
  • 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

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

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

configurationBlock

Bloque de configuración CmpViewController

Personaliza la capa de consentimiento

Controlador UIView.

Ida y vuelta

Herramienta de consentimiento CMP

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


conCmpViewConfigurationBlock

Personalice la UiView de la capa de consentimiento.

parámetros
Nombre Tipo Descripción

configurationBlock

Bloque de configuración CmpUIView

Personaliza la capa de consentimiento

Vista de interfaz de usuario

Ida y vuelta

Herramienta de consentimiento CMP

Ejemplo
let cmpLayout = CmpLayout.default()
cmpLayout?.cornerRadius = 10.0
cmpLayout?.customLayout = CGRect(x: 0, y: 0, width: 200, height: 300)

cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
    .withCmpViewConfigurationBlock { uiView in
        cmpLayout?.apply(to: uiView)
    }


conActualizaciónGoogleConsentimiento

Recupera el estado del modo de consentimiento de Google. 

parámetros
Nombre Tipo Descripción

consentMap

[Cordón: Cordón]?

Estado de consentimiento
Ida y vuelta

Herramienta de consentimiento CMP

Ejemplo
cmpConsentTool = CMPConsentTool(cmpConfig: cmpConfig)
    .withUpdateGoogleConsent(onCmpUpdateGoogleConsent)

func onCmpUpdateGoogleConsent(consentMap: [String: String]?) {
    guard let consentMap = consentMap else { return }

    var firebaseConsentMap: [ConsentType: ConsentStatus] = [:]

    consentMap.forEach { key, value in
        if let consentType = convertToFirebaseConsentType(from: key),
           let consentStatus = convertToFirebaseConsentStatus(from: value) {
            firebaseConsentMap[consentType] = consentStatus
        }
    }

    Analytics.setConsent(firebaseConsentMap)
}

func convertToFirebaseConsentType(from key: String) -> ConsentType? {
    switch key {
    case "analytics_storage":
        return .analyticsStorage
    case "ad_storage":
        return .adStorage
    case "ad_user_data":
        return .adUserData
    case "ad_personalization":
        return .adPersonalization
    default:
        return nil
    }
}

func convertToFirebaseConsentStatus(from value: String) -> ConsentStatus? {
    switch value {
    case "granted":
        return .granted
    case "denied":
        return .denied
    default:
        return nil
    }
}

 

Volver