Información
Contenido

ConsentManager GDPR / CCPA SDK para Android

La ConsentManager SDK para aplicaciones de Android 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.

Estándares soportados

La ConsentManager GDPR / CCPA SDK para Android es compatible con los siguientes estándares de la industria:

  • IAB TCF v1
  • IAB TCF v2
  • IAB USPrivacy v1
  • ConsentManager vendedores personalizados / propósitos
  • Modo de consentimiento adicional de Google (cadena de CA de Google)

¿Cómo funciona?

  1. Integre el SDK en la aplicación y configure los ajustes del SDK
  2. Una vez que el SDK se integre en una aplicación, el SDK proporcionará funciones para el desarrollador de la aplicación con el fin de recuperar los datos de consentimiento
  3. Tan pronto como se inicie la aplicación, el SDK recuperará automáticamente la información del ConsentManager servidores para preparar el SDK para su uso.
  4. Se recomienda que, al iniciar la aplicación, la aplicación cree una instancia de clase CMPConsentTool. Una vez que se crea esto, el SDK mostrará automáticamente la pantalla de consentimiento si es necesario.
  5. Cuando la aplicación quiere procesar datos personales, debe "preguntar" al SDK si se dio el consentimiento para el propósito específico y el proveedor.

Instalación

Descargue el SDK

Descargue la última versión del SDK aquí: https://plugins.consentmanager.net/Android-SDK.zip

El archivo zip contiene dos carpetas. consentmanager y ConsentManagerTest. La carpeta ConsentManagerTest contiene un proyecto de muestra que ilustra el uso del SDK con Android Studio. La carpeta consentmanager contiene solo los archivos relacionados con el SDK para integrarlo en su propio proyecto.

El SDK está configurado para Android SDK Platform Versión 29 y superior.

Integración

Para integrar el SDK en su proyecto existente, siga estos pasos:

  1. Abra su proyecto existente en Android Studio y haga clic en Menú> Nuevo> Archivo> Importar módulo ...

  2. Haga clic en el icono del navegador y elija el consentmanager carpeta de la ConsentManager SDK y haga clic en Finalizar:

  3. Haga clic en Menú> Archivo> Estructuras del proyecto ..., navegar a Dependencias> aplicación, haga clic en el + icono y elegir Dependencia del módulo:
  4. qué consentmanager como la dependencia que desea agregar y haga clic en OK

  5. In Proyecto Explorer ir Gradle Scripts> build.gradle (Módulo: aplicación) y agregue las siguientes líneas a la android { ... } sección:
    compileOptions 
    {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
    }
  6. Haga clic en Sincronizar ahora para actualizar el proyecto

Permissions

Este SDK requiere los siguientes permisos, asegúrese de agregarlos a su AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

Inicia el SDK

Con el inicio de la aplicación (generalmente su función onCreate) usted debe crear una instancia de clase CMPConsentTool. Esto buscará automáticamente los datos necesarios de nuestro servidor y determinará si la pantalla de consentimiento debe mostrarse o no. Si es así, el SDK mostrará automáticamente la pantalla de consentimiento en este punto, recopilará los datos y los proporcionará a la aplicación. La instancia se puede usar para obtener detalles de consentimiento del SDK para usarla en la aplicación.

public class MainActivity extends AppCompatActivity {
    
    private CMPConsentTool consentTool; //create a CMPConsentTool

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      // ...
      
      // create an instance
      consentTool = CMPConsentTool.createInstance(this, 123456, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "");
      
      // ...
    }
  
    // ...
}

Para crear la instancia de CMPConsentTool necesita configurar la instancia. Deberá proporcionar el ID de CMP, el dominio del servidor, el nombre de una aplicación y un idioma. El ID de CMP y el dominio del servidor se pueden encontrar en su ConsentManager cuenta bajo Menú> Obtener código. El nombre de la aplicación se puede usar para distinguir diferentes aplicaciones en ConsentManager informes Para el idioma, puede usar una cadena vacía ("") para la detección automática o un código de idioma de 2 letras ("EN", "DE", "FR", etc.).

Los valores de configuración se pueden insertar de diferentes maneras:

a) Configuración del SDK a través del manifiesto

Agregue las siguientes líneas a su AndroidManifest.xml en la sección <application ...> ... </application>:

<meta-data android:name="com.consentmanager.sdk.ID" android:value="1234567" />
<meta-data android:name="com.consentmanager.sdk.SERVER_DOMAIN" android:value="consentmanager.mgr.consensu.org" />
<meta-data android:name="com.consentmanager.sdk.APP_NAME" android:value="MyFavouriteApp" />
<meta-data android:name="com.consentmanager.sdk.LANGUAGE" android:value="EN" />

Si utiliza esta forma de configuración, cree una instancia de CMPConsentTool vía:

consentTool = CMPConsentTool.createInstance(this);
b) Configuración del SDK a través de CMPConfig

Agregue las siguientes líneas a su código:

CMPConfig conf = CMPConfig.createInstance(1234567, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "EN");
consentTool = CMPConsentTool.createInstance(this, conf);
c) Configuración del SDK a través de createInstance ()

Agregue la siguiente línea a su código:

consentTool = CMPConsentTool.createInstance(this, 1234567, "consentmanager.mgr.consensu.org", "MyFavouriteApp", "EN");

Usando el SDK

Para verificar si un proveedor o propósito tiene consentimiento, puede usar los dos métodos:

if(consentTool.hasPurposeConsent(this,"52",false))
{
    if(consentTool.hasVendorConsent(this,"s26", false))
    {
        //do something with data
    }
}

Ambos métodos hasPurposeConsent y hasVendorConsent requiere dos parámetros:

  • id: cadena del proveedor o ID de propósito. Tenga en cuenta que las ID de proveedor pueden tener diferentes formatos ("123", "s123" y "c123"), verifique nuevamente con Menú> Proveedores y Menú> Propósitos en su ConsentManager cuenta.
  • isIABVendor / isIABPurpose: si el proveedor o el propósito es un proveedor / propósito que sigue el estándar IAB TCF, deberá establecer un verdadero, de lo contrario, un falso.

Recuerde: Todos los proveedores que no pertenecen al IAB tienen ID que comienzan con una "s" o "c" (por ejemplo, "s123"); Los proveedores que pertenecen a la IAB tienen ID que no comienzan con una "s" o "c".

Reabrir la pantalla de consentimiento

Para permitir que el usuario cambie las opciones, simplemente puede llamar openCmpConsentToolView():

consentTool.openCmpConsentToolView(this);

En algunos casos, una aplicación nativa puede contener vistas web para mostrar ciertas cosas como publicidad o contenido. Para transmitir la información de consentimiento del SDK a la vista web, utilice la función:

String consentData = CMPConsentTool.exportCMPData(this);

Esto exportará la información de consentimiento y todos los datos adicionales que necesita el CMP. Luego puede pasar esta información al CMP que está en su vista web agregándola a la URL que se llama en la vista web:

myWebView.loadURL("https://mywebsite.com/....?cmpimport=" + consentData);

Preferencias compartidas

El SDK establecerá los valores de preferencias compartidas para IAB TCF v1, IAB TCF v2, IAB USPrivacy y Google AC String. Estos valores se pueden leer utilizando el siguiente código:

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);

Se definen las siguientes claves:

IAB TCF v1
IABConsent_CMPPresent Boolean: Se establece en verdadero si un CMP que implementa esta especificación está presente en la aplicación. Idealmente establecido por el editor lo antes posible, pero también puede ser configurado por el CMP alternativamente.
IABConsent_SubjectToGDPR String 1 - (sujeto a GDPR), 0 - (no sujeto a GDPR), Nulo - indeterminado (predeterminado antes de la inicialización). Se alinea con IAB OpenRTB GDPR Advisory. Decidió ser String, tener el estado no inicializado.
IABConsent_ConsentString String: Cadena de consentimiento
IABConsent_ParsedPurposeConsents String (de "0" y "1") donde el carácter en la posición N indica el estado de consentimiento para la ID de propósito N como se define en la Lista global de proveedores. Cadena de consentimiento otorgado para permitir una verificación simple. El primer personaje de la izquierda es el Propósito 1, ...
IABConsent_ParsedVendorConsents String (de "0" y "1") donde el carácter en la posición N indica el estado de consentimiento para la identificación del proveedor N como se define en la Lista global de proveedores. Cadena de consentimiento otorgado para permitir una verificación simple. El primer personaje de la izquierda es el Vendedor 1, ...
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 de CMP SDK
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 GDPR se aplica en el contexto actual

0 - GDPR hace no aplicar en el contexto actual

Desarmado - indeterminado (predeterminado antes de la inicialización)

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

0 - no hay un tratamiento especial para el propósito uno

1 - propósito uno no revelado

Desestablecer predeterminado - 0

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

IABTCF_UseNonStandardStacks Number:

1 - CMP usó una pila no estándar

0 - CMP no usó una pila no estándar

IABTCF_TCString String: Cadena TC codificada completa
IABTCF_VendorConsents Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de consentimiento para la identificación del proveedor n + 1; false y true respectivamente. p.ej. '1' en el índice 0 es consentimiento true para la identificación del proveedor 1
IABTCF_VendorLegitimateInterests Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de interés legítimo para la identificación del proveedor n + 1; false y true respectivamente. p.ej. '1' en el índice 0 se establece un interés legítimo true para la identificación del proveedor 1
IABTCF_PurposeConsents Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de consentimiento para la identificación del propósito n + 1; false y true respectivamente. p.ej. '1' en el índice 0 es consentimiento true para fines de identificación 1
IABTCF_PurposeLegitimateInterests Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de interés legítimo para la identificación del propósito n + 1; false y true respectivamente. p.ej. '1' en el índice 0 se establece un interés legítimo true para fines de identificación 1
IABTCF_SpecialFeaturesOptIns Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de suscripción para ID de función especial n + 1; false y true respectivamente. p.ej. '1' en el índice 0 es opt-in true para ID de función especial 1
IABTCF_PublisherRestrictions{ID} String ['0','1', or '2']: El valor en la posición n - dónde nLa indexación comienza en 0 - indica el tipo de restricción del editor (0-2) para el proveedor n + 1; (consulte Tipos de restricciones de editor). p.ej. '2' en el índice 0 es restrictionType 2 para la identificación del proveedor 1. {ID} se refiere a la identificación del propósito.
IABTCF_PublisherConsent Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de consentimiento del propósito para la identificación del propósito n + 1 para el editor, ya que corresponden a los propósitos de la Lista global de proveedores; false y true respectivamente. p.ej. '1' en el índice 0 es consentimiento true para fines de identificación 1
IABTCF_PublisherLegitimateInterests Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de interés legítimo del propósito para la identificación del propósito n + 1 para el editor, ya que corresponden a los propósitos de la Lista global de proveedores; false y true respectivamente. p.ej. '1' en el índice 0 se establece un interés legítimo true para fines de identificación 1
IABTCF_PublisherCustomPurposesConsents Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de consentimiento del propósito para la ID de propósito personalizado del editor n + 1 para el editor; false y true respectivamente. p.ej. '1' en el índice 0 es consentimiento true para ID de propósito personalizado 1
IABTCF_PublisherCustomPurposesLegitimateInterests Binary String: Los '0' or '1' en la posición n - dónde nLa indexación comienza en 0 - indica el estado de interés legítimo de propósito para la identificación de propósito personalizado del editor n + 1 para el editor; false y true respectivamente. p.ej. '1' en el índice 0 se establece un interés legítimo true para ID de propósito personalizado 1
IAB USPrivacidad
IABUSPrivacy_String String: Se alinea con el IAB OpenRTB CCPA Advisory. La cadena codifica todas las opciones e información.
Cadena AC de Google
IABTCF_AddtlConsent

String: Se alinea con la especificación técnica del Modo de consentimiento adicional de Google.

Volver arriba