Información
Mi contenido

Integración de la API de CMP para aplicaciones

En algunos casos, los SDK existentes no se pueden utilizar y son necesarias las intervenciones personalizadas. En este caso, los desarrolladores de aplicaciones pueden utilizar la API de CMP para aplicaciones para integrar manualmente CMP en su aplicación.

Flujo de Trabajo

La API de CMP para aplicaciones se utiliza en el siguiente orden:

  1. La aplicación consultará el consentmanager servidor una vez al día (primer inicio de la aplicación en este día). Enviará la información de consentimiento existente y le pedirá al consentmanager servidor, ya sea que el usuario deba solicitar su consentimiento (nuevamente).
  2. Dependiendo de la respuesta del consentmanager servidor, la aplicación mostrará la capa de consentimiento en una vista web. El usuario puede informarse y tomar sus decisiones.
  3. Cuando el usuario haya terminado, la vista web se lo comunicará a la aplicación. La aplicación cerrará la vista web y procesará la información de consentimiento.
  4. Luego, la aplicación puede usar la información de consentimiento para su propio procesamiento de datos.

1. Consultando el consentmanager servidor

Como primer paso, la aplicación enviará una solicitud HTTP a:

https://[consentmanager-server]/delivery/appjson.php?id=[CMP-ID]&l=[Language]&idfa=[IDFA]&appname=[Appname]&consent=[Consent-Info]

Donde las siguientes macros deben ser reemplazadas por la aplicación antes de enviar:

  • [consentmanager-server] - Dominio del servidor (consulte Menú> Obtener código> Configuración del SDK de la aplicación)
  • [CMP-ID]: ID del CMP (consulte Menú> Obtener código> Configuración del SDK de la aplicación)
  • [Idioma]: código de idioma para mostrar el mensaje (por ejemplo, EN, FR, DE, ...)
  • [IDFA]: opcional. IDFA de la aplicación
  • [Nombre de la aplicación]: opcional. Nombre de la aplicación para fines de informes
  • [Información de consentimiento]: información de consentimiento recibida de la vista web (versión codificada en base64 de los datos de consentimiento)

URL de ejemplo:

https://consentmanager.mgr.consensu.org/delivery/appjson.php?id=123456&l=FR&appname=my%20App&consent=Qxc2j2J8aN....

La respuesta a esta solicitud es un texto JSON como el siguiente:

{
 "status":1, 
 "regulation":1, 
 "message":"", 
 "url":"https://consentmanager.mgr.consensu.org/delivery/appcmp.php?id=123456&consent=&appname=my%20App&l=FR"
 }

Los campos de la respuesta son los siguientes:

Campo Detalles
status

0 = No se requiere consentimiento, no se debe mostrar la vista web

1 = Se requiere consentimiento, URL del campo url debería mostrarse en la vista web

2 = Ocurrió un error, consulte message

regulation 0 = sin ajustes de regulación, 1 = se aplica GDPR, 2 = se aplica CCPA, 3 = se aplica LGPD, ...
message Mensaje de error que se mostrará al desarrollador.
url URL que se mostrará en una vista web

2. Visualización de la vista web

Si la llamada a /delivery/appjson.php (ver Paso 1) resultó en status = 1, la aplicación debe usar el valor del campo url y ábralo en una vista web (ventana del navegador incrustada en la aplicación). La URL mostrará una página HTML mínima que contiene la versión web del Código CMP. La página también incluye un enlace "Skipp" para evitar problemas con la compatibilidad de JavaScript.

Para mostrar el CMP con todas las funciones, la vista web debe proporcionar las siguientes características mínimas:

  • Soporte HTML 5
  • Soporte CSS 3
  • Soporte JavaScript 1.2
  • Soporte DOM 3
  • Resolución mínima de 300x300 píxeles (preferiblemente ancho completo y mínimo 80% de altura en modo vertical)
  • Abra / navegue a URL a través del protocolo https: (por ejemplo, políticas de privacidad) abriendo una nueva ventana del navegador
  • Capture cuando la vista web intenta navegar a una URN que comienza con el protocolo "consentimiento: //"

La aplicación no debe permitir que el usuario salte la vista web de ninguna otra manera (por ejemplo, desactivando el botón "Atrás" o funciones similares).

3. Procesamiento de los datos de consentimiento

Una vez que el usuario hizo sus elecciones, el CMP llamará a un URN con el prefijo de protocolo consentimiento: // seguido de la información de consentimiento en forma codificada base64-websafe. Ejemplo:

consent://Q083NU1KN084QXBEOEFmWlhDREVBOUNzQVBfQUFIX0FBQWlnR2t0Zl9YX2ZiMnZqLV81OTlfdDBlWTFmOV82M3Ytd3pqaGVOcy04TnlkX1hfTDRYdjJNeXZCMzZwcTRLdVI0a3UzYkJBUWR0SE9uY1RRbVJ3SWxWcVRMc2IwMk1yN05LSjdMRW1sc2JlMmRZR0g5dm45WFRfWktaNzBfX19fXzdfM19fX19fXzc3Xy1iXzRHa3RmX1hfZmIydmotXzU5OV90MGVZMWY5XzYzdi13empoZU5zLThOeWRfWF9MNFh2Mk15dkIzNnBxNEt1UjRrdTNiQkFRZHRIT25jVFFtUndJbFZxVExzYjAyTXI3TktKN0xFbWxzYmUyZFlHSDl2bjlYVF9aS1o3MF9fX19fN18zX19fX19fNzdfLWJfNENnS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRURBQWdMYUNRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFnb0FFQmJRYUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUhBQWdMYUVRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFoSUFFQmJRcUFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRUxBQWdMYUdRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFob0FFQmJRNkFZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVBBQWdMYUlRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpSUFFQmJSS0FZQUNFQVhJQkFBQ2JBR3lBT29BcGdCWFlDLWdHSUFNakFhRVRBQWdMYUtRREFBUWdDNUFJQUFUWUEyUUIxQUZNQUs3QVgwQXhBQmtZRFFpb0FFQmJRI18xXzE5XyNfczIxOF9jNTk3NV9zMjNfYzUxNDdfczdfYzUxNjNfczFfczI2X3MxMzVfczExMDRfczE0MDlfczkwNV9zMTRfYzQ0OTlfYzUxMzZfYzY5MjVfYzUzMzVfYzUzMzRfYzUxNThfYzUyMjNfYzUxMzVfczM0X3MzMF9VXyMxLS0tIzF-My4yOTUzLjI4NTguMTk4Ni4xMS4yMzYuMTUuMjg2Ni4xMjMyLjI3MTAuMjIuMjg5Mi4xNDk2LjI0NDEuMjE3Ni4zNS4xOTYwLjI0NjcuMTMzNi44MjcuMTUxNC4xNjQyLjI3MDIuMzU5LjI2MzIuMjgwMy44NS4yMjE0LjIyNzYuOTMyLjEyNDguNTcuMjE0MS4yMjcxLjE1MTcuMjY2Mi4xNDA5LjE0NTEuNTg3Ljk5MS4xODM0LjE1NDcuMTg1OC4xNzQxLjExNjcuMTk4Ny4xNzc2LjEwNjMuMjY5OS4yOTU3LjI2NjMuMjk3MS4yMDYyLjI3ODYuMjQ1My45ODcuMjkzNi4yMTYuNTk1LjI5MTAuNjIuMjYyMi4xNTMuMTU0LjIzMjAuMTY1LjE3OC4xMjI1LjI4NDcuMzE3Ljc3Ni4xODguNzk3LjUzNy4xMzI5LjMxNi4xOTUuNDkyLjg5LjIwOS4xMTAwLjI3MjcuMjAxNi45NTUuMjIxLjE3MDUuMTI5OC4yMjkuMjI5LjI1ODYuMjc3OS4yNTA2LjEyNzUuMTczNS4yNzA1LjEyNi4yNjM5LjExNzIuMjU1LjIyNTEuMjU5Ny40OC4yMjk1LjI3MS4xNzYwLjYyMS4yNzQuMjgwOC4xNjc0LjI2NjYuMTg4My4xNTk4LjE1NDIuMTczOS4yNjg5LjYwOS4xNDIzLjEyLjE1MDMuMjk3Mi4xNzMzLjI5NC4xOTA1LjI0MTMuNzIzLjExOTkuMzEzLjcyNS4xMDUyLjU5MC4xNzgwLjMxMC4zMDMuMTM0NC4zMzYuMjQ2NC4yMTIxLjEwNDcuMjI0Ny40MzIuMzQ4LjE4ODIuMTIxMi4yNzA0LjIyOTAuMjQzNy4zNjMuMjI5OS4yNzc4LjEwNjIuMjA3OS4zNzAuMTg5Mi4yODQzLjExNzEuMzg0LjEzNC4yODY4LjI3ODAuMTAyOC4yODMyLjM5OC43ODIuMzQwLjE3OTEuMjQxMC4yMDU5LjE2MS4yMTcwLjE1MjAuMjgxMC4yNjQ5Ljk3Ni4yMzExLjE0MTkuNDM4LjMxNC4yNzA5LjE2NTIuNDQzLjIzODIuMTA3Mi4yODcyLjIwMTIuMjkyOC4yNzA2LjQ1OS4yMjc4LjE4MDEuNjI0LjEzMTMuMjgwMi4yMzQ2Ljg2LjIxOTIuMTk4NS4xODc1LjE2ODQuMTkxMS4yMDc4LjE3OTQuMTI1LjE3MTYuMTIzNi44MTQuMTAyOS40NzkuMTI0MS4xOTU4LjkzMy4xOTQ1LjE2MjYuNTAzLjUxMC4xODMxLjI0ODEuMjc3Ny4yNTkuMjkwNS4yNTEyLjUyOC4xNTA5LjI2MjQuMTg3Mi4xNzIwLjgwLjI3NTguMjQyMi4yODI5

La aplicación capturará el evento de navegación, cerrará la vista web y procesará los datos de la siguiente manera:

  1. Realice una decodificación base64 segura para la web:
    1. reemplazar todo + con espacio
    2. reemplazar todo _ con /
    3. reemplazar todo - con +
    4. agregar = hasta el final de la cuerda para que la longitud de la cuerda se pueda dividir en 4
    5.Haz una decodificación base64
    La cadena de ejemplo anterior dará como resultado la siguiente cadena decodificada:
    CO75MJ7O8ApD8AfZXCDEA9CsAP_AAH_AAAigGktf_X_fb2vj-_599_t0eY1f9_63v-wzjheNs-8Nyd_X_L4Xv2MyvB36pq4KuR4ku3bBAQdtHOncTQmRwIlVqTLsb02Mr7NKJ7LEmlsbe2dYGH9vn9XT_ZKZ70_____7_3______77_-b_4Gktf_X_fb2vj-_599_t0eY1f9_63v-wzjheNs-8Nyd_X_L4Xv2MyvB36pq4KuR4ku3bBAQdtHOncTQmRwIlVqTLsb02Mr7NKJ7LEmlsbe2dYGH9vn9XT_ZKZ70_____7_3______77_-b_4CgKAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEDAAgLaCQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQgoAEBbQaAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEHAAgLaEQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQhIAEBbQqAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaELAAgLaGQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQhoAEBbQ6AYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaEPAAgLaIQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQiIAEBbRKAYACEAXIBAACbAGyAOoApgBXYC-gGIAMjAaETAAgLaKQDAAQgC5AIAATYA2QB1AFMAK7AX0AxABkYDQioAEBbQ#_1_19_#_s218_c5975_s23_c5147_s7_c5163_s1_s26_s135_s1104_s1409_s905_s14_c4499_c5136_c6925_c5335_c5334_c5158_c5223_c5135_s34_s30_U_#1---#1~3.2953.2858.1986.11.236.15.2866.1232.2710.22.2892.1496.2441.2176.35.1960.2467.1336.827.1514.1642.2702.359.2632.2803.85.2214.2276.932.1248.57.2141.2271.1517.2662.1409.1451.587.991.1834.1547.1858.1741.1167.1987.1776.1063.2699.2957.2663.2971.2062.2786.2453.987.2936.216.595.2910.62.2622.153.154.2320.165.178.1225.2847.317.776.188.797.537.1329.316.195.492.89.209.1100.2727.2016.955.221.1705.1298.229.229.2586.2779.2506.1275.1735.2705.126.2639.1172.255.2251.2597.48.2295.271.1760.621.274.2808.1674.2666.1883.1598.1542.1739.2689.609.1423.12.1503.2972.1733.294.1905.2413.723.1199.313.725.1052.590.1780.310.303.1344.336.2464.2121.1047.2247.432.348.1882.1212.2704.2290.2437.363.2299.2778.1062.2079.370.1892.2843.1171.384.134.2868.2780.1028.2832.398.782.340.1791.2410.2059.161.2170.1520.2810.2649.976.2311.1419.438.314.2709.1652.443.2382.1072.2872.2012.2928.2706.459.2278.1801.624.1313.2802.2346.86.2192.1985.1875.1684.1911.2078.1794.125.1716.1236.814.1029.479.1241.1958.933.1945.1626.503.510.1831.2481.2777.259.2905.2512.528.1509.2624.1872.1720.80.2758.2422.2829
  2. Divida los datos por #, recibirá 4 o más partes:
    1. Parte: IAB TCF ConsentString (ver https://iabeurope.eu/transparency-consent-framework/)
    2. Parte: identificaciones de propósitos (consentimiento; lista de identificaciones de propósitos separados por _)
    3. Parte: ID de proveedores (consentimiento; lista de ID de proveedores separados por _)
    4. Parte: cadena de consentimiento adicional de Google (consulte https://support.google.com/admanager/answer/9681920)
    5. Parte: Cadena de privacidad de IAB USP (consulte https://iabtechlab.com/standards/ccpa/)
    6. Parte: ID de propósitos (interés legítimo; Lista de ID de propósitos separados por _)
    7. Parte: ID de proveedores (interés legítimo; Lista de ID de propósito separados por _)
    8. Parte: formato de ID personalizado comprimido (consulte Formato de ID personalizado comprimido)

  3. Decodifique cada parte según el formato de datos de cada parte.

Tenga en cuenta: La información de consentimiento, algunas o todas las partes pueden estar vacías (por ejemplo, si el usuario presiona el enlace de omisión o dependiendo de la configuración de CMP).

No olvide almacenar la información de consentimiento (versión codificada en base64 segura para web que se envió desde la vista web a la aplicación). Es necesario en el paso 1 al consultar el consentmanager servidor.

Volver arriba