Info
Contenido

[Aleteo] 1. consentmanager Integración SDK

SDK obsoleto / Actualización a v3: Esta documentación describe la versión 2.x de nuestro SDK. El SDK 2.x está obsoleto y se eliminará a finales de 2025. Actualice a la versión 3.x del SDK. Consulte la sección de ayuda sobre SDK v3 aquí.

En este documento encontrará información general sobre cómo integrar nuestro SDK a su proyecto. Para obtener más detalles, consulte nuestra Referencia de la API Documentación. El SDK está disponible en pub.dev .

1. Instalación

El sistema consentmanager El SDK para aplicaciones de iOS implementa y proporciona funcionalidad para informar al usuario sobre la protección de datos y solicitar y obtener el consentimiento del usuario. Permite a los desarrolladores de aplicaciones integrar fácilmente consentmanager servicio en su aplicación.

Pasos: descripción de alto nivel

  1. Integración y Configuración:

    • Integre el SDK en su aplicación.
    • Configure los ajustes del SDK según sus necesidades.
  2. Creando una instancia:

    • Al iniciar la aplicación, cree una instancia de CMPManager clase. Esta instancia se encargará del proceso de consentimiento.
  3. Inicialización del SDK:
    • Una vez que la instancia está lista, el SDK recupera automáticamente la información necesaria del consentmanager servidores para prepararse para su funcionamiento.
  4. Mostrar la pantalla de consentimiento:

    • El SDK mostrará automáticamente la pantalla de consentimiento si es necesario cuando el CMPManager.initialize()método se llama.
  5. Procesamiento de datos personales:

    • Una vez que se recopilan los consentimientos, la información se almacena y está disponible para consultar a través de diferentes propiedades y métodos expuestos por nuestro SDK. Dispondrás de información sobre consentimientos rechazados o aceptados, proveedores, finalidades, etc.

Al seguir estos pasos, se asegura de que su aplicación cumpla con los requisitos de consentimiento y que el consentimiento del usuario se administre y almacene adecuadamente.

Consent Manager Diagrama de secuencia del SDK del proveedor

Para ilustrar los pasos anteriores, revisemos en el diagrama siguiente tres posibles flujos de secuencia del SDK. 

1. Al crear una instancia usando el inicializar función, hay dos resultados posibles. La primera es cuando la API de consentmanger informa al SDK que el CMP no se abrirá, lo que desencadena el OnCmpNotOpenedDevolución de llamada. El segundo resultado es cuando se abre la capa de consentimiento, lo que permite al usuario interactuar con ella, y esto desencadena la Al abrir devolución de llamada. Una vez que el usuario da su consentimiento y se procesa el consentimiento, el OnCmpCloseDevolución de llamada se llama.

Tenga en cuenta que la Devolución de llamada en error está representado por las líneas de flechas discontinuas rojas para proporcionar ejemplos de cuándo pueden ocurrir errores durante el proceso.

Inicializar-Cmp-Sequence-Diagram.png

2. Creando una instancia y llamando al abrir y comprobar el consentimiento funciones conducirán a un proceso similar. La diferencia es que al desacoplar la creación de la instancia y la verificación de la API de consentmanger, obtiene la capacidad de agregar lógica empresarial e interactuar con la API de las bibliotecas.

3. Creando una instancia y llamando al capa abierta La función abrirá la capa sin verificar el consentmanager, si es necesario. Si ya se ha dado el consentimiento, se mostrarán las opciones y configuraciones al usuario. El flujo del proceso se verá así:

openlayer-Cmp-Secuencia-Diagrama-.png

Para obtener más información sobre nuestra descripción general de la versión del SDK y el registro de cambios, consulte este enlace.

Instalación mediante pub.dev

Ejecute este comando:

Con aleteo:

flutter pub add cmp_sdk

Esto agregará una línea como esta al pubspec.yaml de su paquete (y ejecutará un archivo implícito). flutter pub get):

dependencies:  
	cmp_sdk: 2.5.4

Alternativamente, su editor podría admitir flutter pub get. Consulte los documentos de su editor para obtener más información.

Importar

Ahora en tu código Dart, puedes usar:

import 'package:cmp_sdk/cmp_sdk.dart';

2. Inicializando el SDK

Dentro de la aplicación de inicio, debes crear una instancia de la clase CMPManager que estará disponible a través del patrón singleton para el resto de las clases que accedan a él. initialize() La función obtendrá automáticamente los datos necesarios de nuestro servidor y determinará si es necesario mostrar la pantalla de consentimiento o no en el evento de inicio de la aplicación. De ser así, el SDK mostrará automáticamente la pantalla de consentimiento en este punto, recopilará los datos y se los proporcionará a la aplicación. Luego, la instancia se puede utilizar para obtener detalles de consentimiento del SDK para usarlos en la aplicación.

import 'package:cmp_sdk/cmp_sdk.dart';
import 'package:cmp_sdk/cmp_config.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

const String _cmpId = "Your-Code-ID-goes-here";
const String _cmpDomain = "delivery.consentmanager.net";
const String _cmpAppName = "Test";
const String _cmpLanguage = "EN";

class _MyAppState extends State<MyApp> {
  String _consentStatus = '';
  String _callbackLogs = '';
  String _cmpString = '';
  String _idString = '1';
  ScreenConfig _selectedScreenConfig = ScreenConfig.fullScreen;

  final CmpConfig _cmpConfig = CmpConfig(
      id: _cmpId,
      domain: _cmpDomain,
      appName: _cmpAppName,
      language: _cmpLanguage,
      timeout: 8000,
      screenConfig: ScreenConfig.halfScreenBottom,
      isAutomaticATTRequest: true,
      iosPresentationStyle: IosPresentationStyle.pagesheet,
      androidPresentationStyle: AndroidPresentationStyle.dialog);

  late CmpSdk _cmpSdkPlugin;

  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      initCmp();
    });
  }

  void _updateCmpUiConfig(ScreenConfig screenConfig) async {
    await _cmpSdkPlugin.configureConsentLayer(config: screenConfig);
  }

  Future<void> initCmp() async {
    try {
      _cmpSdkPlugin = CmpSdk.createInstanceWithConfig(_cmpConfig);
      await _cmpSdkPlugin.initialize();
      setEventCallbacks();					// Set like on the example below, on the next topic
    } on PlatformException {
      if (kDebugMode) {
        print("platform not supported");
      }
    }

    if (!mounted) return;
  }

Devoluciones de llamada de eventos

El SDK permite configurar devoluciones de llamada para varios eventos de la capa de consentimiento, como apertura, cierre, errores y clics en botones. Esto es útil para fines de registro o para ejecutar lógica adicional basada en las interacciones del usuario.

_cmpSdkPlugin.setCallbacks(
  onOpen: () => logCallback('Consent layer opened'),
  onClose: () => logCallback('Consent layer closed'),
  onError: (type, message) => logCallback('Error: $type - $message'),
  onButtonClicked: (buttonType) => logCallback('Button clicked: $buttonType'),
);

El SDK proporciona métodos para aceptar o rechazar el consentimiento globalmente, restablecer los datos del consentimiento y abrir la capa de consentimiento para la interacción del usuario.

  • Aceptar todo: await _cmpSdkPlugin.acceptAll();
  • Rechazar todo: await _cmpSdkPlugin.rejectAll();
  • Verificar: await _cmpSdkPlugin.check();
  • Restablecer consentimiento: await _cmpSdkPlugin.reset();
  • Abrir capa de consentimiento: await _cmpSdkPlugin.open();

Exportación e importación de cadenas CMP

La cadena CMP que representa las preferencias de consentimiento del usuario. Puede importarlo al SDK de CMP para aplicar esas preferencias. Esto puede resultar útil para transferir preferencias de consentimiento entre diferentes partes de su aplicación o almacenarlas externamente.

Future<void> importUserConsent(String cmpString) async {
  try {
    final bool success = await CmpSdkPlatform.instance.importCmpString(cmpString);
    if (success) {
      // CMP string was successfully imported
      print("CMP String successfully imported.");
      // The user's consent preferences are now updated according to the imported string
    } else {
      // Handle the case where the import was unsuccessful
      print("Failed to import CMP String.");
    }
  } catch (error) {
    // Handle any errors that occur during import
    print("Error importing CMP String: $error");
  }
}

Future<void> exportUserConsent() async {
  try {
    final String? cmpString = await CmpSdkPlatform.instance.exportCmpString();
    if (cmpString != null) {
      // CMP string successfully retrieved
      print("CMP String: $cmpString");
      // You can now store this string or share it as needed
    } else {
      // Handle the case where CMP string is null
      print("No CMP String available.");
    }
  } catch (error) {
    // Handle any errors that occur during export
    print("Error exporting CMP String: $error");
  }
}

Puede recuperar diversa información relacionada con el consentimiento utilizando los métodos del SDK, como verificar si se requiere consentimiento, obtener el estado actual del consentimiento y obtener el consentimiento para proveedores o propósitos específicos.

Crear un diseño personalizado

await _cmpSdkPlugin.configureConsentLayer(CmpUiConfig(screenConfig: ScreenConfig.fullScreen));
Diseños disponibles
  • pantalla completa
  • media pantalla inferior
  • media pantallaarriba
  • centroPantalla
  • pequeña pantalla central
  • pantalla superior grande
  • pantalla inferior grande

 

Volver