Info
Contenido

Intercambio de consentimiento entre dispositivos

ConsentManager admite el uso compartido de consentimiento entre dispositivos. Para compartir información de consentimiento en múltiples dispositivos, el sitio web / aplicación debe cumplir con los siguientes requisitos:

  • El sitio web / aplicación debe poder identificar al usuario en todos los dispositivos. Esto generalmente se realiza a través de un inicio de sesión en el sitio web o la aplicación: cada vez que el usuario inicia sesión en la cuenta, el (nuevo) dispositivo puede compartir la misma información de consentimiento que todos los demás dispositivos del mismo usuario.
  • Su plataforma (la que almacena el inicio de sesión del usuario) debe poder almacenar la información de consentimiento del usuario en el lado del servidor. La información de consentimiento será una cadena alfanumérica con un tamaño de hasta 8 kb

Configuración general

Para compartir el consentimiento en varios dispositivos, se realizarán los siguientes pasos:

  1. Cuando el usuario visita el sitio web o la aplicación por primera vez, no hay información de consentimiento y se le solicitará el consentimiento.
  2. Una vez que el usuario da su consentimiento, el CMP almacenará la información de consentimiento en el dispositivo del usuario y notificará al sitio web o la aplicación que hay nueva información de consentimiento.
  3. El sitio web o la aplicación recuperarán / exportarán la información de consentimiento del CMP y la almacenarán en su propia base de datos junto con el perfil de los usuarios.
  4. La próxima vez que el usuario visite el sitio web o la aplicación, importará la información de consentimiento existente al CMP.

Webtracking

Para exportar la información de consentimiento, el comando __cmp('exportConsent') puede ser usado. Producirá la información de consentimiento como una cadena segura para web codificada en base64.

Para importar la información existente, el comando __cmp('importConsent','....') puede ser usado. Establecerá la información de consentimiento interno y deshabilitará la pantalla de consentimiento.

Como alternativa, también puede pasar la información de consentimiento a través de la URL utilizando el parámetro ?cmpimport=... or #cmpimport=...

Ten en cuenta que: Para evitar que se muestre la pantalla de consentimiento, se debe llamar al comando importConsent inmediatamente después del código CMP. El CMP pondrá en cola el comando e importará automáticamente la información de consentimiento como primer paso al cargar el CMP.

Aquí hay un código de ejemplo simple que realizará la importación, verificará los cambios y exportará los datos de consentimiento si es necesario:

<script>  
  window.cmp_waitfortimport = 1000; // tell the CMP to wait for max 1 second for incoming import calls
  var userConsentInfo = '... insert consent data from users profile if present, otherwise empty ...';
  function storeConsent(eventname, o)
  {
   var c = __cmp("exportConsent");
   if(c !== userConsentInfo)
   {
    console.log('new consent data: ', c);
    userConsentInfo = c;
     //send new consent info to server in order to store it there
   }
  }
  if(userConsentInfo != "")
  {
   __cmp('importConsent',userConsentInfo);
  }  
  else
  {
   __cmp('cancelwait'); //tell the CMP to no longer wait for import calls
  }
  __cmp('addEventListener', ['consent', storeConsent, false], null);
 </script>

Ejemplo de intercambio de consentimiento entre dominios al hacer clic

<script>
 window.cmp_allowedDomains = [];
 //window.cmp_allowedDomains.push('*');           // use this line to append consent data to all urls ...
 window.cmp_allowedDomains.push('mywebsite.com'); // ... or add your domains here ...
 window.cmp_allowedDomains.push('myotherwebsite.com');
 window.cmp_allowedDomains.push('mythirdwebsite.com');

 window.cmp_appendclick = function (evt)
 {
  try
  {
   evt = evt || window.event;
   if (evt.target && evt.target.nodeName && evt.target.nodeName.toUpperCase() === 'A' && evt.target.hostname && evt.target.hostname != '' && evt.target.hostname != location.hostname)
   {
    var found = false;
    var hn    = evt.target.hostname.toLowerCase();
    for (var i = 0; i < window.cmp_allowedDomains.length; i++)
    {
     var d = window.cmp_allowedDomains[i].toLowerCase();
     var a = ('.' + hn).substr(hn.length - d.length, 9999);
     if (window.cmp_allowedDomains[i] == '*' || a == '.' + d)
     {
      found = true;
      break;
     }
    }
    if (found)
    {
     if ('hash' in evt.target && evt.target.hash == '')
     {
      evt.target.hash = '#' + __cmp('exportConsent');
     }
    }
   }
  }
  catch (e)
  {}
 };
 window.addEventListener('mousedown', window.cmp_appendclick);
</script>

Aplicación

Para las aplicaciones, el procedimiento es el mismo que para la web, solo las funciones / nombres son diferentes.

Android

Para exportar la información de consentimiento, utilice

String consentData = CMPConsentTool.exportCMPData(this);

Para importar la información de consentimiento, utilice

CMPConsentTool.importCMPData(this, "...data...");

iOS

Para importar/exportar la información de consentimiento, utilice (https://help.consentmanager.net/books/cmp/page/consentmanager-sdk-for-ios#bkmrk-import%2Fexport-consen)

// Instanstiate CMPConsentTool()
cmpConsentTool = CMPConsentTool.init(...)

// Importing consent data if you like
cmpConsentTool.importCMPData("${your consentString}");

// ... Your code here ...


// Exporting Consent data 
let consentString : String = CMPConsentTool.exportCMPData()

 

 

Volver