Leading Consent Management Platform

Compliant with GDPR, CCPA, COPPA, LGPD, PECR, PDPA, PIPEDA, and more.

Como integrar el SDK de UniConsent CMP para React Native

Como integrar el SDK de UniConsent CMP para React Native

Esta guia explica como integrar el SDK de UniConsent CMP en su aplicacion React Native para gestionar el consentimiento GDPR IAB TCF 2.4.

Puede encontrar una aplicacion de demostracion integrada con este SDK en el directorio demo proporcionado junto con el paquete del SDK.

Requisitos previos

  • Un plan de UniConsent CMP que incluya soporte para aplicaciones moviles.
  • El paquete del SDK de UniConsent para React Native (por ejemplo, uniconsent-react-native-sdk-26.10.0.zip), descargado desde su panel de UniConsent u obtenido del soporte tecnico.
  • Un entorno de desarrollo React Native funcional.

Primeros pasos (Instalacion)

Instalar el paquete del SDK

Descargue y descomprima el paquete del SDK (por ejemplo, uniconsent-react-native-sdk-26.10.0.zip). Dentro encontrara:

  • uniconsent-react-native-sdk-26.10.0.tgz — Paquete del SDK instalable via npm
  • uniconsent-sdk/ — Archivos de la biblioteca del SDK precompilados
  • demo/ — Aplicacion de demostracion
  • README.md — Documentacion

Instale el archivo .tgz usando npm o Yarn:

# Replace <path-to-package-file.tgz> with the actual path to the file
npm install <path-to-package-file.tgz>
# or
yarn add <path-to-package-file.tgz>

Ejemplo: Si coloca el archivo .tgz en la raiz de su proyecto:

npm install ./uniconsent-react-native-sdk-26.10.0.tgz
# or
yarn add file:./uniconsent-react-native-sdk-26.10.0.tgz

Instalar dependencias de pares (Peer Dependencies)

Este SDK requiere las siguientes dependencias de pares:

npm install react-native-webview react-native-default-preference react-native-device-info
# or
yarn add react-native-webview react-native-default-preference react-native-device-info

Instalar Pods de iOS

Si esta desarrollando para iOS, navegue al directorio ios de su proyecto e instale los pods:

cd ios
pod install
cd ..

Personalizar la interfaz de consentimiento

Antes de integrar el SDK, personalice la apariencia del banner de consentimiento en el panel de UniConsent para que coincida con su marca y optimice las tasas de consentimiento.

Paso 1: Estilo de marca en el panel

Vaya a Projects → Seleccione su Proyecto → Settings → Step 5: UI & Style Settings para configurar:

  • Main Button Colour — Establezca el color del boton de accion principal para que coincida con su marca
  • Main Button Text Colour — Ajuste el color del texto del boton principal para mejorar la legibilidad
  • Background Colour — Configure el color de fondo del banner para que se integre con su aplicacion
  • Text Colour — Asegure que el texto del cuerpo tenga el contraste adecuado

Paso 2: Estilos avanzados con CSS personalizado (Opcional)

Para un control mas preciso, agregue CSS personalizado en el campo CSS Content en el Paso 5. Esto se recomienda para que el banner se sienta nativo en su aplicacion y logre la mejor tasa de consentimiento:

/* Example: Style the accept button to match your brand */
.unic-btn-accept {
  background-color: #4CAF50;
  border-radius: 8px;
  font-weight: 600;
}

/* Example: Adjust banner font */
.unic-banner {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* Example: Make the reject button less prominent */
.unic-btn-reject {
  background-color: transparent;
  border: 1px solid #ccc;
  color: #666;
}

Consejo: Una interfaz de consentimiento bien personalizada que se sienta nativa en su aplicacion generalmente logra tasas de consentimiento mas altas. Los usuarios son mas propensos a interactuar positivamente con un banner que coincide con la apariencia que esperan.

Uso

Inicializar el SDK mediante Provider

Envuelva el componente raiz de su aplicacion (o la parte relevante) con UniConsentProvider. Debe proporcionar su licenseId (Publisher ID/pid de UniConsent).

// Your main App file (e.g., App.tsx or index.js)
import React from 'react';
import { UniConsentProvider } from 'uniconsent-sdk';
import YourAppRootComponent from './src/YourAppRootComponent';

const App = () => {
  return (
    <UniConsentProvider licenseId="YOUR_LICENSE_ID">
      <YourAppRootComponent />
    </UniConsentProvider>
  );
};

export default App;

Modos de visualizacion

El SDK admite tres modos de visualizacion para la interfaz del CMP, configurados mediante la propiedad displayMode en UniConsentProvider:

ModoDescripcion
'fullScreen'Pagina a pantalla completa (predeterminado)
'bottomSheet'Hoja modal anclada en la parte inferior de la pantalla
'dialog'Dialogo modal centrado
// Full screen (default — no prop needed)
<UniConsentProvider licenseId="YOUR_LICENSE_ID">

// Bottom sheet
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="bottomSheet">

// Bottom sheet at 70% of the screen height
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="bottomSheet" heightRatio={0.7}>

// Center dialog
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="dialog">

// Center dialog at 80% width and 60% height
<UniConsentProvider licenseId="YOUR_LICENSE_ID" displayMode="dialog" widthRatio={0.8} heightRatio={0.6}>

Tamaño personalizado (opcional)

Disponible desde la versión 26.8.0 del SDK.

Ambas proporciones son opcionales: todos los modos de visualizacion funcionan sin ellas. Pase una proporcion (una fraccion de la pantalla, mayor que 0 y como maximo 1) solo para sobrescribir el tamaño predeterminado; los valores no validos lanzan RangeError:

PropiedadSe aplica aPredeterminado si se omite
heightRatio'bottomSheet', 'dialog'Hoja: 90% de la pantalla. Dialogo: 70%
widthRatioSolo 'dialog'90% del ancho de la pantalla, hasta 500

Las proporciones que no se aplican al modo de visualizacion elegido se ignoran ('fullScreen' ignora ambas).

Manejador de eventos

Escuche los eventos del ciclo de vida del SDK con la propiedad onEvent en UniConsentProvider.

Tipos de eventos disponibles:

  • 'sdkInit' — Inicio de la inicializacion del SDK
  • 'ready' — Inicializacion del SDK completada
  • 'uiDisplay' — La interfaz de consentimiento se muestra
  • 'uiClose' — La interfaz de consentimiento se cierra
<UniConsentProvider
  licenseId="YOUR_LICENSE_ID"
  onEvent={(event) => {
    switch (event.type) {
      case 'ready':
        console.log('SDK ready');
        break;
      case 'uiClose':
        console.log('Consent UI closed');
        break;
    }
  }}
>
  <YourAppRootComponent />
</UniConsentProvider>

Mostrar la interfaz del CMP

Utilice el hook useConsent dentro de un componente dentro del Provider para obtener la funcion openCMP, luego llamela cuando sea necesario (por ejemplo, al presionar un boton).

import React from 'react';
import { View, Text, Button, ActivityIndicator } from 'react-native';
import { useConsent } from 'uniconsent-sdk';

const ConsentInfoComponent = () => {
  const { consentStatus, isLoading, openCMP } = useConsent();

  return (
    <View>
      <Text>Consent Status:</Text>
      {isLoading ? (
        <ActivityIndicator />
      ) : (
        <Text>{consentStatus ?? 'Initializing...'}</Text>
      )}
      <Button
        title="Manage Privacy Settings"
        onPress={() => openCMP()}
        disabled={isLoading}
      />
    </View>
  );
};

Verificar el consentimiento de forma programatica

Utilice las funciones de utilidad para verificar el estado del consentimiento directamente sin el hook:

import {
  getTCString,
  isEURegion,
  isPurposeConsented,
  isVendorConsented,
  getConsentData,
} from 'uniconsent-sdk';

// Get the full TC String
const tcString = await getTCString();

// Check if user is in EU/EEA region
const inEU = await isEURegion();

// Check if a specific TCF purpose has consent (1-based ID)
const hasPurpose1 = await isPurposeConsented(1);

// Check if a specific vendor has consent (1-based ID)
const hasVendor755 = await isVendorConsented(755);

// Get all consent data as a single object
const consentData = await getConsentData();

Primera capa personalizada (Aceptar todo / Rechazar todo)

Disponible desde la versión 26.7.0 del SDK. Si crea su propia interfaz de consentimiento de primera capa en lugar de mostrar la webview del CMP, puede guardar el consentimiento directamente:

import { agreeAll, rejectAll } from 'uniconsent-sdk';

// Grant consent for all purposes, special features and vendors
const saved = await agreeAll();

// Reject all purposes, special features and vendors
const rejected = await rejectAll();

Ambas API guardan los mismos valores de consentimiento que el flujo de la interfaz del CMP (claves IAB TCF, consentimiento adicional y señales de consent mode), actualizan el consentStatus del provider y disparan el evento uiClose hacia onEvent. Utilizan el licenseId registrado por UniConsentProvider; llámelas después de que el provider se haya montado.

Para los usuarios de EE. UU. y Canadá, ambas API también guardan la elección de CCPA, US State Privacy e IAB TCF Canadá que les corresponde, con las mismas reglas que la interfaz de la CMP, y escriben las claves IAB GPP y US Privacy. Active los modos API-Only en la configuración del proyecto en el panel de UniConsent para que el banner de la CMP no se muestre en esas regiones.

También guardan la elección de categorías de cookies donde se aplica un banner de categorías de cookies (todas las categorías, o solo Estrictamente necesarias), y las finalidades y los proveedores personalizados del proyecto.

Para saber qué primera capa mostrar, llame a getPolicy() (desde la versión 26.10.0 del SDK). Devuelve la política que se aplica al usuario, con las mismas reglas que la CMP: gdpr (IAB TCF), tcfca (IAB TCF Canadá), uss (US State Privacy), ccpa, categories (vea Categorías de cookies más abajo) o none.

import { useEffect } from 'react';
import { useConsent, getPolicy } from 'uniconsent-sdk';

// dentro de un componente de función
const { consentStatus } = useConsent();
useEffect(() => {
  if (consentStatus === 'pending') {
    // el usuario debe tomar una decisión: muestre su primera capa para esta política
    getPolicy().then(policy => { /* gdpr, tcfca o categories */ });
  }
}, [consentStatus]);

Importante: Su primera capa personalizada debe seguir cumpliendo los requisitos de IAB TCF (divulgar las finalidades y los proveedores, y ofrecer aceptar y rechazar con la misma prominencia). Los usuarios deben poder seguir abriendo la interfaz completa del CMP (openCMP()) para tomar decisiones granulares.

Sincronizar el consentimiento con WebView

Si su aplicacion abre un WebView que carga una pagina web con la etiqueta de UniConsent CMP, puede pasar el estado de consentimiento nativo para que la etiqueta del CMP reconozca el consentimiento existente y no muestre el banner nuevamente.

Utilice getConsentSyncScript() con injectedJavaScriptBeforeContentLoaded para inyectar el consentimiento antes de que se ejecuten los scripts de la pagina:

import React, { useState, useEffect } from 'react';
import { WebView } from 'react-native-webview';
import { getConsentSyncScript } from 'uniconsent-sdk';

const MyWebView = () => {
  const [consentScript, setConsentScript] = useState<string | null>(null);

  useEffect(() => {
    getConsentSyncScript().then(setConsentScript);
  }, []);

  if (!consentScript) return null;

  return (
    <WebView
      source={{ uri: 'https://example.com' }}
      injectedJavaScriptBeforeContentLoaded={consentScript}
    />
  );
};

Utilidades de depuracion

El SDK proporciona funciones auxiliares para desarrollo y depuracion:

import { listKV, clearKV } from 'uniconsent-sdk';

// Log all stored consent keys to console
await listKV();

// Clear all stored consent data
await clearKV();

Configuracion

Propiedades de UniConsentProvider

PropiedadTipoRequeridaPredeterminadoDescripcion
licenseIdstringSi—Su Publisher ID de UniConsent (pid).
displayModeCMPDisplayModeNo'fullScreen'Estilo de visualizacion del CMP: 'fullScreen', 'bottomSheet' o 'dialog'.
heightRationumberNoHoja: 0.9, dialogo: 0.7Altura de la interfaz como fraccion de la altura de la pantalla en (0, 1]. Se aplica a 'bottomSheet' y 'dialog'.
widthRationumberNo0.9 (limitado a 500)Ancho del dialogo como fraccion del ancho de la pantalla en (0, 1]. Se aplica solo a 'dialog'.
onEventCMPEventCallbackNo—Callback para eventos del ciclo de vida del SDK (sdkInit, ready, uiDisplay, uiClose).
langCodestringNoIdioma del dispositivoIdioma de la CMP como código de dos letras, por ejemplo 'FR'.
testRegionstringNoRegión del usuarioSolo para pruebas: muestra la CMP como para un usuario de otra región: 'EU', 'CA' (Canadá), 'CAQC' (Quebec), 'US' más un código de estado como 'USCA' o 'USTX', o 'N' (fuera de estas regiones). Elimínelo en las versiones de producción.
logLevel'debug' | 'error'No'error''debug' muestra los registros del SDK y de la página de la CMP.

Referencia de la API

Componentes y Hooks

ExportacionDescripcion
UniConsentProviderComponente React para envolver su aplicacion. Requiere la propiedad licenseId.
useConsent()Hook que devuelve { consentStatus, isLoading, openCMP }.

Funciones de utilidad

FuncionRetornaDescripcion
getTCString()Promise<string>Obtener la cadena de consentimiento IAB TCF.
isEURegion()Promise<boolean>Verificar si el usuario esta en una region EU/EEA.
isPurposeConsented(purposeId)Promise<boolean>Verificar el consentimiento para un proposito TCF especifico (ID basado en 1).
isVendorConsented(vendorId)Promise<boolean>Verificar el consentimiento para un proveedor TCF especifico (ID basado en 1).
getConsentData()Promise<ConsentData>Obtener un objeto completo de datos de consentimiento.
getConsentSyncScript()Promise<string>Obtener un fragmento JS para inyectar el consentimiento en un WebView.
agreeAll()Promise<boolean>Conceder el consentimiento para todas las finalidades, funciones especiales y proveedores (primera capa personalizada).
rejectAll()Promise<boolean>Rechazar todas las finalidades, funciones especiales y proveedores (primera capa personalizada).
getPolicy()Promise<string>La política que se aplica al usuario, para su propia primera capa: gdpr, tcfca, uss, ccpa, categories o none.
listKV()Promise<void>Depuracion: registrar todas las claves de consentimiento almacenadas en la consola.
clearKV()Promise<void>Depuracion: borrar todos los datos de consentimiento almacenados.

Tipos exportados

TipoDescripcion
CMPDisplayMode'fullScreen' | 'bottomSheet' | 'dialog'
CMPEventType'sdkInit' | 'ready' | 'uiDisplay' | 'uiClose'
CMPEventCallback(event: { type: CMPEventType }) => void
ConsentContextValueForma del valor de retorno de useConsent().
ConsentDataForma del valor de retorno de getConsentData().

Campos de ConsentData

CampoTipoDescripcion
tcStringstringCadena completa de consentimiento IAB TCF.
isEURegionbooleanSi el usuario esta en una region EU/EEA.
gdprAppliesbooleanIndicador de aplicacion del GDPR.
cmpSdkIdnumberID del SDK del CMP registrado (68 para UniConsent).
cmpSdkVersionnumberVersion del SDK del CMP.
policyVersionnumberVersion de la politica TCF.
purposeConsentsstringCadena binaria de propositos consentidos (por ejemplo, "10110").
vendorConsentsstringCadena binaria de proveedores consentidos.
additionalConsentstringCadena de consentimiento adicional de Google (AC).
gvlVersionnumberVersion de la Global Vendor List utilizada.

Abrir una pantalla concreta y otras opciones

Abra la CMP en una pantalla concreta, por ejemplo desde un enlace "Configuración de privacidad" de su app. La pantalla solicitada siempre se abre. Para los usuarios de EE. UU., las pantallas de configuración abren la configuración de CCPA o US State Privacy que les corresponde. Los usuarios de Canadá ven la versión IAB TCF Canada de las pantallas de IAB TCF.

PantallaMuestra
CMPStage.GDPRFirstScreenPrimera capa (banner)
CMPStage.GDPRSecondScreenConfiguración (finalidades)
CMPStage.GDPRVendorsScreenProveedores
CMPStage.CCPAFirstScreenPrimera capa de CCPA
CMPStage.CCPASecondScreenConfiguración de CCPA
CMPStage.USStateFirstScreenPrimera capa de US State Privacy
CMPStage.USStateSecondScreenConfiguración de US State Privacy
CMPStage.CategoriesFirstScreenPrimera capa de categorías de cookies (banner)
CMPStage.CategoriesSecondScreenConfiguración de categorías de cookies
import { UniConsentProvider, useConsent, CMPStage, getGEO, getGEOState } from 'uniconsent-sdk';

// mostrar la CMP en francés en lugar del idioma del dispositivo, con registros de depuración (use 'error', el predeterminado, en producción)
<UniConsentProvider licenseId="YOUR_PUBLISHER_ID" langCode="FR" logLevel="debug">
  {/* su app */}
</UniConsentProvider>

// solo para pruebas: mostrar la CMP como para un usuario de otra región, 'EU', 'CA' (Canadá), 'CAQC' (Quebec), 'US' más un código de estado como 'USCA' o 'USTX', 'BR', 'CN', 'ZA', 'VN' o cualquier otro código de país, o 'N' (fuera de estas regiones). También se aplica a getPolicy() y las comprobaciones de consentimiento; elimínelo en las versiones de producción
<UniConsentProvider licenseId="YOUR_PUBLISHER_ID" testRegion="CA">
  {/* su app */}
</UniConsentProvider>

// dentro de un componente: abrir la pantalla de configuración
const { openCMP } = useConsent();
openCMP(CMPStage.GDPRSecondScreen);

// región del usuario y, para EE. UU. y Canadá, el código del estado o la provincia
const geo = await getGEO();
const state = await getGEOState();

IAB GPP y US Privacy

La CMP guarda las claves IAB GPP y la clave US Privacy en el almacenamiento nativo de la app (SharedPreferences en Android, UserDefaults en iOS), tal como las definen las especificaciones de IAB. Los SDK de publicidad de su app las leen desde ahí; no hace falta cambiar código. Las claves GPP se escriben cuando GPP, US State Privacy o IAB TCF Canadá está activado en la configuración del proyecto en el panel de UniConsent. La clave US Privacy se escribe siempre que la CCPA esté activada.

ClaveValor
IABGPP_HDR_VersionVersión de GPP (1)
IABGPP_HDR_SectionsID de sección en la cadena GPP, separados por _
IABGPP_HDR_GppStringLa cadena GPP completa
IABGPP_GppSIDID de sección que se aplican al usuario, separados por _, o -1 si no se aplica ninguno
IABGPP_2_StringCadena IAB TCF EU, cuando se aplica el RGPD
IABGPP_5_StringCadena IAB TCF Canadá, cuando se aplica TCF Canadá
IABGPP_6_StringCadena US Privacy, cuando se aplica la CCPA
IABGPP_7_StringCadena US National (usnat), cuando se aplica US State Privacy o la CCPA
IABGPP_8_String a IABGPP_27_StringLa sección del estado del usuario (8 California a 27 Rhode Island), cuando se aplica US State Privacy, o California con la CCPA, según el ajuste GPP Sections
IABUSPrivacy_StringCadena US Privacy siempre que la CCPA esté activada: la elección del usuario en la región CCPA; si no, 1---

Las claves se actualizan cada vez que se carga la CMP y después de cada elección de consentimiento. Al desactivar GPP, se eliminan las claves IABGPP_. Para leerlas usted mismo:

import DefaultPreference from 'react-native-default-preference';

const gppString = await DefaultPreference.get('IABGPP_HDR_GppString');
const gppSid = await DefaultPreference.get('IABGPP_GppSID');

EE. UU. y Canadá

Las apps admiten las mismas opciones para EE. UU. y Canadá que los sitios web: CCPA, US State Privacy (con la lista de estados y los ajustes GPP Sections y MSPA) e IAB TCF Canadá. UniConsentProvider abre la CMP para los usuarios de Canadá a los que se aplica IAB TCF Canadá hasta que toman una decisión. La privacidad en EE. UU. es de exclusión voluntaria, así que a los usuarios de EE. UU. no se les pregunta por sí solo: ven el banner o los ajustes de EE. UU. cuando su app llama a openCMP(), por ejemplo desde un enlace a la configuración de privacidad. Hasta entonces, cuando la CCPA o US State Privacy están activadas, el SDK escribe las claves US Privacy y GPP predeterminadas para los usuarios de EE. UU. sin mostrar nada: sin exclusión, o con exclusión cuando el seguimiento publicitario está desactivado en el dispositivo. US State Privacy empieza desactivado en los proyectos Mobile App nuevos; actívelo en el panel.

Exclusión del seguimiento publicitario del dispositivo

Si el usuario ha desactivado el seguimiento publicitario en el dispositivo, la CMP lo trata como una exclusión de EE. UU. de la venta, el intercambio y la publicidad dirigida, como hace Global Privacy Control en los sitios web. En iOS es el seguimiento no permitido en App Tracking Transparency; en Android, un ID de publicidad eliminado o la limitación del seguimiento publicitario, que se lee a través de los servicios de Google Play cuando su app los incluye. Una elección que el usuario guarde después en el banner tiene prioridad.

Leer las cadenas GPP y US Privacy

El SDK también devuelve las cadenas guardadas:

import { getGPPString, getGPPSID, getUSPrivacyString } from 'uniconsent-sdk';

const gppString = await getGPPString();
const gppSid = await getGPPSID();
const usPrivacy = await getUSPrivacyString();

Categorías de cookies

Disponible desde la versión 26.10.0 del SDK. Donde una región usa categorías de cookies en lugar de IAB TCF o las políticas de EE. UU., la CMP muestra un banner con cuatro categorías: Estrictamente necesarias, Rendimiento, Funcionalidad, y Segmentación o publicidad. Se aplica a:

  • LGPD en Brasil, PIPL en China, POPIA en Sudáfrica y PDPD en Vietnam, cuando están activadas en la configuración del proyecto en el panel de UniConsent
  • sus reglas para otros países: una regla para un país y una regla para todos los demás países
  • un proyecto Consent Categories, en sus regiones

Las categorías opt-in empiezan solo con Estrictamente necesarias activada, y UniConsentProvider abre la CMP (consentStatus es pending) hasta que el usuario toma una decisión, y de nuevo después de cambiar la versión de configuración. Las categorías opt-out empiezan con todas las categorías activadas (Segmentación desactivada cuando el seguimiento publicitario está desactivado en el dispositivo en EE. UU.), y la app no pregunta por sí sola: los usuarios las cambian desde su enlace a la configuración de privacidad. Opt-out se aplica a una regla opt-out para otros países y, en apps, a un proyecto Consent Categories en EE. UU.

Abra las pantallas de categorías con CMPStage.CategoriesFirstScreen (banner) y CMPStage.CategoriesSecondScreen (configuración). La prop testRegion también acepta BR, CN, ZA, VN y otros códigos de país, para probar estas regiones.

Finalidades personalizadas y proveedores personalizados

Disponible desde la versión 26.10.0 del SDK. Las finalidades personalizadas y los proveedores personalizados que añada en la configuración del proyecto en el panel de UniConsent se muestran en las pantallas de la CMP: las finalidades personalizadas en la primera capa y la configuración de IAB TCF y en la configuración de categorías de cookies, los proveedores personalizados en la lista de proveedores de IAB TCF. En la configuración de CCPA y US State Privacy solo se listan las finalidades personalizadas sensibles. En la configuración de categorías de cookies los proveedores personalizados siguen la categoría Segmentación o publicidad. Donde IAB TCF no se aplica (categorías de cookies y EE. UU.), los proveedores personalizados se listan en modo de solo lectura en la lista de proveedores del menú, y en la configuración de categorías de cookies en Segmentación o publicidad.

Para iniciar o detener sus propios SDK según ellos, pregunte al SDK si la app puede usar ahora una finalidad personalizada o un proveedor personalizado. La respuesta sigue la política del usuario, con las mismas reglas que la CMP usa para las etiquetas:

  • IAB TCF, IAB TCF Canadá y categorías de cookies opt-in: permitidos solo después de que el usuario acepte
  • EE. UU. y categorías de cookies opt-out: permitidos hasta que el usuario se excluya; las finalidades personalizadas sensibles necesitan la aceptación del usuario, y los proveedores personalizados se desactivan cuando el seguimiento publicitario está desactivado en el dispositivo en EE. UU.
  • sin política: permitidos
import { isCustomPurposeConsented, isCustomVendorConsented, getCustomConsents } from 'uniconsent-sdk';

// dentro de una función async
if (await isCustomPurposeConsented(1)) {
  // inicie el SDK que cubre su finalidad personalizada 1
}
const vendorAllowed = await isCustomVendorConsented(2);
const all = await getCustomConsents(); // { purposes: { '1': true }, vendors: { '2': false } }

Vuelva a llamarlas después de que la CMP se cierre o cambie el consentimiento. Los ID que el proyecto no tiene, y todos los ID antes de que el SDK esté listo, devuelven false.

Divulgación de SDK de terceros

La CMP puede listar los SDK de terceros de su app (redes publicitarias, analítica, atribución y otros) con su empresa, su finalidad y su política de privacidad. Los usuarios los ven en la lista de proveedores, de solo lectura en todas las regiones: no hay interruptores, y su app sigue activando o desactivando cada SDK según las elecciones del usuario para los propósitos o las categorías de cookies.

Para definir la lista, active Enable Third-party SDKs en Step 4: Advanced Features de su proyecto de app, elija sus SDK en la pestaña Third-party SDKs o añada los suyos, y luego guarde y publique. No necesita código en su app.

Notas

  • Acceso a la configuracion de privacidad: Su aplicacion debe proporcionar a los usuarios una forma persistente (por ejemplo, un boton o enlace de "Configuracion de privacidad", generalmente en un menu de ajustes) para acceder y actualizar sus opciones de consentimiento. Este boton debe llamar a la funcion openCMP() obtenida del hook useConsent.
  • Verificacion automatica de consentimiento: El UniConsentProvider verifica automaticamente el estado del consentimiento cuando su aplicacion se inicia, incluyendo si la Global Vendor List (GVL) ha sido actualizada desde la ultima vez que el usuario otorgo su consentimiento. Si la version de la GVL ha cambiado, se solicitara nuevamente el consentimiento al usuario.

Registro de cambios

26.10.0

  • Claves IAB GPP y US Privacy para los SDK de publicidad
  • US State Privacy e IAB TCF Canadá en apps, también con primera capa personalizada
  • Nuevos getGPPString(), getGPPSID() y getUSPrivacyString()
  • Abrir una pantalla concreta con openCMP(stage); nuevas props langCode y logLevel, getGEO() y getGEOState()
  • Abrir la primera capa de CCPA y de US State Privacy con CMPStage.CCPAFirstScreen y CMPStage.USStateFirstScreen; nuevo la prop testRegion para probar la CMP como un usuario de otra región, por ejemplo Canadá
  • Categorías de cookies en apps: LGPD (Brasil), PIPL (China), POPIA (Sudáfrica), PDPD (Vietnam), sus reglas para otros países y los proyectos Consent Categories, con CMPStage.CategoriesFirstScreen y CMPStage.CategoriesSecondScreen
  • Nuevo getPolicy(); agreeAll() y rejectAll() también guardan las categorías de cookies, las finalidades personalizadas y los proveedores personalizados
  • La prop testRegion también acepta BR, CN, ZA, VN y otros códigos de país, y se aplica a getPolicy() y las comprobaciones de consentimiento
  • Nuevos isCustomPurposeConsented(), isCustomVendorConsented() y getCustomConsents(): las finalidades y los proveedores personalizados que la app puede usar ahora según la política del usuario

26.9.0

  • Compatibilidad con IAB TCF 2.4