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
- 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.
- 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.
- 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.
- La prochaine fois que l'utilisateur visite le site Web ou l'application, il importera les informations de consentement existantes dans le CMP.
Site web
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
Le partage de consentement entre domaines devient plus compliqué en raison de la dépréciation des cookies tiers. Une solution à ce problème peut être d'envoyer les données de consentement via l'URL au lieu de partager un cookie. Afin de le faire automatiquement, vous pouvez utiliser le script suivant sur votre site Web :
<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>
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()