Delen van toestemming tussen apparaten
ConsentManager ondersteunt het delen van toestemmingen op verschillende apparaten. Om toestemmingsinformatie over meerdere apparaten te delen, moet de website / app aan de volgende vereisten voldoen:
- De website / app moet de gebruiker op verschillende apparaten kunnen identificeren. Dit gebeurt meestal via een login op de website of app: elke keer dat de gebruiker inlogt op het account, kan het (nieuwe) apparaat dezelfde toestemmingsinformatie delen als alle andere apparaten van dezelfde gebruiker.
- Uw platform (het platform dat de login van de gebruiker opslaat) moet de toestemmingsinformatie van de gebruiker aan de serverzijde kunnen opslaan. De toestemmingsinformatie is een alfanumerieke reeks met een grootte van maximaal 8 kb
Algemene instellingen
- Wanneer de gebruiker de website of app voor het eerst bezoekt, is er geen toestemmingsinformatie aanwezig en wordt de gebruiker om toestemming gevraagd.
- Zodra de gebruiker toestemming geeft, slaat de CMP de toestemmingsinformatie op het apparaat van de gebruiker op en laat de website of app weten dat er nieuwe toestemmingsinformatie aanwezig is.
- De website of app haalt de toestemmingsinformatie op uit de CMP / exporteert deze en slaat deze samen met het gebruikersprofiel op in zijn eigen database.
- De volgende keer dat de gebruiker de website of app bezoekt, importeert hij de bestaande toestemmingsinformatie in de CMP.
Web
Om de toestemmingsinformatie te exporteren, de opdracht __cmp('exportConsent')
kan worden gebruikt. Het zal de toestemmingsinformatie uitvoeren als een met base64 gecodeerde webveilige string.
Om de bestaande informatie te importeren, de opdracht __cmp('importConsent','....')
kan worden gebruikt. Het zal de interne toestemmingsinformatie instellen en het toestemmingsscherm uitschakelen.
Als alternatief kunt u de toestemmingsinformatie ook via de URL doorgeven met parameter ?cmpimport=...
or #cmpimport=...
Houd er rekening mee dat: Om te voorkomen dat het toestemmingsscherm wordt weergegeven, moet de opdracht importConsent onmiddellijk na de CMP-code worden aangeroepen. De CMP zet de opdracht in de wachtrij en importeert automatisch de toestemmingsinformatie als een eerste stap bij het laden van de CMP.
Hier is een eenvoudige voorbeeldcode die de import uitvoert, controleert op wijzigingen en de toestemmingsgegevens exporteert indien nodig:
<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>
Voorbeeld van het delen van toestemming tussen domeinen bij klikken
Het delen van toestemming tussen domeinen wordt ingewikkelder vanwege de beëindiging van cookies van derden. Een manier om dit probleem te omzeilen kan zijn om toestemmingsgegevens via de URL te verzenden in plaats van een cookie te delen. Om dit automatisch te doen, kunt u het volgende script op uw website gebruiken:
<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>
app
Voor apps is de procedure hetzelfde als voor web, alleen zijn de functies / namen verschillend.
Android
Gebruik om de toestemmingsinformatie te exporteren
String consentData = CMPConsentTool.exportCMPData(this);
Gebruik om de toestemmingsinformatie te importeren
CMPConsentTool.importCMPData(this, "...data...");
iOS
Om de toestemmingsinformatie te importeren/exporteren, gebruikt u (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()