Info
Contenu

Partage de consentement entre appareils

ConsentManager prend en charge le partage de consentement entre appareils. Afin de partager les informations de consentement sur plusieurs appareils, le site Web / l'application doit répondre aux exigences suivantes:

  • Le site Web / l'application doit pouvoir identifier l'utilisateur sur tous les appareils. Cela se fait généralement via une connexion sur le site Web ou l'application: chaque fois que l'utilisateur se connecte au compte, le (nouvel) appareil peut partager les mêmes informations de consentement que tous les autres appareils du même utilisateur.
  • Votre plateforme (celle qui stocke la connexion de l'utilisateur) doit pouvoir stocker les informations de consentement de l'utilisateur côté serveur. Les informations de consentement seront une chaîne alphanumérique d'une taille maximale de 8 Ko

Configuration générale

Afin de partager le consentement sur plusieurs appareils, les étapes suivantes seront effectuées:

  1. Lorsque l'utilisateur visite le site Web ou l'application pour la première fois, aucune information de consentement n'est présente et l'utilisateur sera invité à donner son consentement.
  2. Une fois que l'utilisateur donne son consentement, le CMP stocke les informations de consentement sur l'appareil de l'utilisateur et informe le site Web ou l'application que de nouvelles informations de consentement sont présentes.
  3. Le site Web ou l'application récupérera / exportera les informations de consentement du CMP et les stockera dans sa propre base de données avec le profil de l'utilisateur.
  4. La prochaine fois que l'utilisateur visite le site Web ou l'application, il importera les informations de consentement existantes dans le CMP.

DÉVELOPPEMENT

Pour exporter les informations de consentement, la commande __cmp('exportConsent') peut être utilisé. Il affichera les informations de consentement sous la forme d'une chaîne Websafe encodée en base64.

Afin d'importer les informations existantes, la commande __cmp('importConsent','....') peut être utilisé. Il définira les informations de consentement interne et désactivera l'écran de consentement.

Comme alternative, vous pouvez également transmettre les informations de consentement via l'URL en utilisant le paramètre ?cmpimport=... or #cmpimport=...

Veuillez noter : Afin d'éviter que l'écran de consentement ne s'affiche, la commande importConsent doit être appelée immédiatement après le code CMP. Le CMP mettra la commande en file d'attente et importera automatiquement les informations de consentement dans un premier temps lors du chargement du CMP.

Voici un exemple de code simple qui effectuera l'importation, vérifiera les modifications et exportera les données de consentement si nécessaire:

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

Exemple de partage de consentement entre domaines en un 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>

L'Application

Pour les applications, la procédure est la même que pour le Web, seules les fonctions / noms sont différents.

Android

Afin d'exporter les informations de consentement, veuillez utiliser

String consentData = CMPConsentTool.exportCMPData(this);

Afin d'importer les informations de consentement, veuillez utiliser

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

iOS

Pour importer/exporter les informations de consentement, veuillez utiliser (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()

 

 

Retour en haut de la page