Marcos de transparencia y consentimiento (IAB TCF)

Acceso a los valores de consentimiento 

El SDK establecerá los valores de preferencias compartidas para IAB TCF v1 e IAB TCF v2. Estos valores se pueden leer utilizando el siguiente código:

// =========================================================
// Kotlin version
// =========================================================

Context mContext = getApplicationContext();

SharedPreferences mPreferences = PreferenceManager.getDefaultSharedPreferences(mContext);

SharedPreferences.OnSharedPreferenceChangeListener mListener;

mListener = new SharedPreferences.OnSharedPreferenceChangeListener() {

            public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
                        if (key.equals([Specific Consent Key])) {
                                   // Update Consent settings
                                   }
                        }
            };
mPreferences.registerOnSharedPreferenceChangeListener(mListener);

// =========================================================
// Swift version
// =========================================================

import Foundation

class UserDefaultsObserver {
    private let userDefaults = UserDefaults.standard
    private var observer: NSObjectProtocol?

    init() {
        setupObserver()
    }

    private func setupObserver() {
        observer = NotificationCenter.default.addObserver(
            forName: UserDefaults.didChangeNotification,
            object: nil,
            queue: .main
        ) { [weak self] notification in
            guard let userDefaults = notification.object as? UserDefaults else { return }
            self?.handleUserDefaultsChange(userDefaults)
        }
    }

    private func handleUserDefaultsChange(_ userDefaults: UserDefaults) {
        // Check for changes in the specific consent key
        if userDefaults.object(forKey: "SpecificConsentKey") != nil {
            // Update consent settings
            updateConsentSettings()
        }
    }

    private func updateConsentSettings() {
        // Implement your consent settings update logic here
        print("Updating consent settings")
    }

    deinit {
        if let observer = observer {
            NotificationCenter.default.removeObserver(observer)
        }
    }
}

// Usage
let userDefaultsObserver = UserDefaultsObserver()

Se definen las siguientes claves:

IAB TCF v2  
IABTCF_CmpSdkID Number: El ID entero sin signo del SDK de CMP
IABTCF_CmpSdkVersion Number: El número de versión entero sin signo del SDK de CMP
IABTCF_PolicyVersion Number: El entero sin signo que representa la versión del TCF a la que se adhieren estos consentimientos.
IABTCF_gdprApplies Number:

1 El RGPD se aplica en el contexto actual

0 – El RGPD no se aplica en el contexto actual

Sin definir – indeterminado (valor predeterminado antes de la inicialización)

IABTCF_PublisherCC String: Código ISO 3166-1 alfa-2 de dos letras – Valor predeterminado: AA (desconocido)
IABTCF_PurposeOneTreatment Number:

0 – sin tratamiento especial del propósito uno

1 – Finalidad uno no revelada

Valor predeterminado no establecido0

Los proveedores pueden utilizar este valor para determinar si se requiere el consentimiento para el propósito uno.

IABTCF_UseNonStandardStacks Number:

1 – CMP utilizó una pila no estándar

0 – El CMP no utilizó una pila no estándar

IABTCF_TCString String: Cadena TC codificada completa
IABTCF_VendorConsents Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado de consentimiento para el ID de proveedor n+1; false y true respectivamente. Por ejemplo, '1' en el índice 0 es consentimiento true para el ID de proveedor 1
IABTCF_VendorLegitimateInterests Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado de interés legítimo para el ID de proveedor n+1; false y true respectivamente. Por ejemplo, '1' en el índice 0 se establece el interés legítimo true para el ID de proveedor 1
IABTCF_PurposeConsents Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado del consentimiento para el ID de finalidad n+1; false y true respectivamente. Por ejemplo, '1' en el índice 0 es consentimiento true para el ID de finalidad 1
IABTCF_PurposeLegitimateInterests Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado de interés legítimo para el ID de finalidad n+1; false y true respectivamente. Por ejemplo, '1' en el índice 0 se establece el interés legítimo true para la finalidad con ID 1
IABTCF_SpecialFeaturesOptIns Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado de aceptación de la función especial ID n+1; false y true respectivamente. Por ejemplo, '1' en el índice 0 es de participación true para el ID de característica especial 1
IABTCF_PublisherRestrictions{ID} String ['0','1', or '2']: El valor en la posición n – donde la indexación de n comienza en 0 – indica el tipo de restricción del editor (0-2) para el proveedor n+1; (véase Tipos de restricciones del editor). p. ej. '2' en el índice 0 es el tipo de restricción 2 para el ID de proveedor 1. {ID} se refiere al ID de finalidad.
IABTCF_PublisherConsent Binary String: El '0' o '1' en la posición n —donde la indexación de n comienza en 0 – indica el estado de consentimiento de la finalidad para el ID de finalidad n+1 para el editor, ya que se corresponden con las finalidades de la Lista Global de Proveedores; false y true respectivamente. Por ejemplo, '1' en el índice 0 es el consentimiento true para el ID de finalidad 1
IABTCF_PublisherLegitimateInterests Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado de interés legítimo de la finalidad para la ID de finalidad n+1 para el editor, ya que se corresponden con las finalidades de la Lista Global de Proveedores; false y true respectivamente. Por ejemplo, '1' en el índice 0 se establece el interés legítimo true para la ID de finalidad 1
IABTCF_PublisherCustomPurposesConsents Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado de consentimiento de la finalidad para el ID de finalidad personalizada n+1 del editor; false y true respectivamente. p. ej. '1' en el índice 0 es consentimiento true para el ID de finalidad personalizada 1
IABTCF_PublisherCustomPurposesLegitimateInterests Binary String: El '0' o '1' en la posición n – donde la indexación de n comienza en 0 – indica el estado de interés legítimo de la finalidad para el ID de finalidad personalizada n+1 del editor; false y true respectivamente. p. ej. '1' en el índice 0 se establece el interés legítimo true para el ID de propósito personalizado 1

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!