Als je overstapt van een andere cookiebeheeroplossing naar de onze, wil je misschien de toestemmingen die je al hebt verzameld migreren. Dit is handig om ervoor te zorgen dat gebruikers die al toestemming hebben gegeven onder de vorige oplossing niet opnieuw de cookiebanner en het bijbehorende verzoek om toestemming te zien krijgen.
Er zijn twee manieren om dit te doen, afhankelijk van of het “oude” platform een cookie levert(synchrone methode) of een aanroep naar zijn API vereist(asynchrone methode).
Synchrone methode
Voordat je de Privacy Controls and Cookie Solution insluit, moet je een synchrone functie definiëren (bijvoorbeeld isConsentGivenByOtherPlatform
) om de toestemming van het andere platform te krijgen:
<script type="text/javascript"> function readLocalCookie(cookieName) { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var e=cookies[i].split('='); if (e[0] === cookieName) { return e[1]; } } return null; } function isConsentGivenByOtherPlatform() { var otherPlatformCookieName = 'cookie_from_other_platform'; // use the actual cookie name saved by the other platform var prevConsent = readLocalCookie(otherPlatformCookieName); if (prevConsent) { return true; } else { return false; } } </script>
Belangrijk
Kopieer en plak de bovenstaande code niet – het is slechts voorbeeldcode die we hebben geleverd om je te helpen de aanpak te begrijpen.
Voeg vervolgens het Privacy Controls and Cookie Solution knipsel toe, waarbij de onReady
callback wordt aangeroepen:
<script type="text/javascript"> var _iub = _iub || []; _iub.csConfiguration = { "lang": "en", "siteId": XXXXXX, // use your siteId "cookiePolicyId": YYYYYY, // use your cookiePolicyId "banner": { "acceptButtonDisplay": true, "customizeButtonDisplay": true, "position": "float-top-center" }, "callback": { "onReady": function() { if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) { _iub.cs.api.setPreferences({ consent: true, ccpa: true, uspr: { 'all': true, 'sd8': true, 'sd9': true, }, purposes: { '1': true, '2': true, '3': true, '4': true, '5': true, }, tcfv2: { 'all': true, }, gac: { 'all': true, }, }, true); } } } }; </script> <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>
De callback onReady
controleert of er al toestemming is gegeven op een ander platform en slaat deze zo ja op door de methode _iub.cs.api.setPreferences()
aan te roepen.
Toestemming per categorie
_iub.cs.api.storeConsent()
maakt het ook mogelijk om doelen aan te passen in het argument dat {consent: true}
, {consent: false}
of {purposes: {1: true, 2: false, …}}
kan zijn.
Asynchrone methode
Voordat je de Privacy Controls and Cookie Solution code insluit, moet je een functie definiëren die:
- accepteert een callback;
- detecteert de toestemming;
- slaat de toestemming op in een globale variabele; en
- roept de callback achteraf op.
Hier is een voorbeeld:
<script type="text/javascript"> // fetch consent asynchronously from 3rd party function getConsentByOtherPlatform(cb) { $.getJSON('http://otherplatform.com/api/get-consent', function(result) { if (result.given) { window.consentByOtherPlatform = true; } else { window.consentByOtherPlatform = false; } cb(); }); } function isConsentGivenByOtherPlatform() { return !!window.consentByOtherPlatform; } </script>
Belangrijk
Kopieer en plak de bovenstaande code niet – het is slechts voorbeeldcode die we hebben geleverd om je te helpen de aanpak te begrijpen.
Voeg vervolgens de snippet Privacy Controls and Cookie Solution toe, waarbij de callback on
Ready wordt aangeroepen:
<script type="text/javascript"> var _iub = _iub || []; _iub.csConfiguration = { "lang": "en", "siteId": XXXXXX, // use your siteId "cookiePolicyId": YYYYYY, // use your cookiePolicyId "banner": { "acceptButtonDisplay": true, "customizeButtonDisplay": true, "position": "float-top-center" }, "callback": { "onReady": function() { if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) { _iub.cs.api.setPreferences({ consent: true, ccpa: true, uspr: { 'all': true, 'sd8': true, 'sd9': true, }, purposes: { '1': true, '2': true, '3': true, '4': true, '5': true, }, tcfv2: { 'all': true, }, gac: { 'all': true, }, }, true); } } } } }; </script> <script type="text/javascript"> // ask for 3rd party consent before including the CS getConsentByOtherPlatform(function() { var s = document.createElement('script'); s.src = '//cdn.iubenda.com/cs/iubenda_cs.js'; document.head.appendChild(s); }); </script>
De callback onReady
controleert of er al toestemming is gegeven op een ander platform en slaat deze zo ja op door de methode _iub.cs.api.setPreferences()
aan te roepen.
Toestemming per categorie
_iub.cs.api.storeConsent()
maakt het ook mogelijk om doelen aan te passen in het argument dat {consent: true}
, {consent: false}
of {purposes: {1: true, 2: false, …}}
kan zijn.
_iub.cs.api.setPreferences(consentObj, hideBanner)
De methode _iub.cs.api.setPreferences
verwacht twee argumenten: consentObj (vereist) en hideBanner (optioneel).
consentObj
Het is een object met volgvoorkeuren:
- toestemming – vereist – aanvaardt
true
offalse
– het verwijst naar algemene toestemming - ccpa – vereist als CCPA is ingeschakeld – accepteert
true
offalse
– dit verwijst naar privacy in de VS en wordt alleen toegepast als CCPA is ingeschakeld in Cookie Solution - uspr – vereist als USPR is ingeschakeld – accepteert een object met de volgende opties – dit verwijst naar USPR-toestemming en wordt alleen toegepast als USPR is ingeschakeld in Cookie Solution
- all – accepteert
true
offalse
– deze optie stelt dezelfde waarde in voor alle doeleinden
- all – accepteert
uspr: { all: true // or false }
- [purposeId] – accepteert
true
offalse
– deze optie stelt de waarde in voor specifieke ID-doeleinden
uspr: { 's': true, // or false 'sh': false, // or true 'adv': false // or true }
- purposes – verplicht als
perPurposeConsent
is ingeschakeld – accepteert een object met de volgende opties – dit verwijst naar toestemming voor doeleinden en wordt alleen toegepast alsperPurposeConsent
is ingeschakeld in Cookie Solution.- all – accepteert
true
offalse
– deze optie stelt dezelfde waarde in voor alle doeleinden
- all – accepteert
purposes: { all: true // or false }
- [purposeId] – accepteert
true
offalse
– deze optie stelt de waarde in voor specifieke ID-doeleinden
purposes: { '1': true, // or false '2': false, // or true '4': false // or true }
- tcfv2 – vereist als TCF is ingeschakeld – accepteert een object met de volgende opties – het verwijst naar TCF-toestemming en wordt alleen toegepast als TCF is ingeschakeld in Cookie Solution
- all – accepteert
true
offalse
– deze optie stelt dezelfde waarde in voor alle TCF doeleinden
- all – accepteert
tcfv2: { all: true // or false }
- [string] – accepteert een TCF string
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
- gac – vereist als Google Aditional Consent is ingeschakeld – accepteert een object met de volgende opties – het verwijst naar GAC-toestemming en wordt alleen toegepast als GAC is ingeschakeld in Cookie Solution
- all – accepteert
true
offalse
– deze optie stelt dezelfde waarde in voor alle GAC-leveranciers
- all – accepteert
gac: { all: true // or false }
- [string] – accepteert een GAC string
gac: '1~1584.2292.2392'
hideBanner
Het is een booleaans om de banner wel of niet te verbergen na de voorkeursopslag, in dit geval moet het altijd zijn true
_iub.cs.api.setPreferences({ ... }, true); // hide the banner after the preference storage _iub.cs.api.setPreferences({ ... }, false); // keep the banner after the preference storage