Se stai passando da un’altra soluzione di gestione dei cookie alla nostra, potresti voler migrare i consensi che hai già raccolto. Questo è utile per garantire che gli utenti che hanno già dato il loro consenso con la soluzione precedente non ricevano nuovamente il cookie banner e la relativa richiesta di consenso.
Ci sono due modi per farlo, a seconda che la “vecchia” piattaforma fornisca un cookie (metodo sincrono) o richieda una chiamata alla sua API (metodo asincrono).
Metodo sincrono
Prima di incorporare Privacy Controls and Cookie Solution dovrai definire una funzione sincrona (ad esempio isConsentGivenByOtherPlatform) per ottenere il consenso dall’altra piattaforma:
<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>
Importante
Non copiare e incollare il codice mostrato qui sopra: è solo un esempio di codice che ti abbiamo fornito per aiutarti a capire l’approccio.
Successivamente, aggiungi il frammento Privacy Controls and Cookie Solution, richiamando il callback onReady:
<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>
Il callback onReady controlla se il consenso è già stato dato su un’altra piattaforma e, in caso affermativo, lo memorizza chiamando il metodo _iub.cs.api.setPreferences().
Consenso per categoria
_iub.cs.api.storeConsent() permette di personalizzare anche gli scopi nell’argomento che può essere {consent: true}, {consent: false} o {purposes: {1: true, 2: false, …}}.
Metodo asincrono
Prima di incorporare il codice di Privacy Controls and Cookie Solution dovrai definire una funzione che:
- accetta un callback;
- rileva il consenso;
- salva il consenso in una variabile globale; e
- invoca il callback in seguito.
Ecco un esempio:
<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>
Importante
Non copiare e incollare il codice mostrato qui sopra: è solo un esempio di codice che ti abbiamo fornito per aiutarti a capire l’approccio.
Successivamente, aggiungi il frammento Privacy Controls and Cookie Solution, richiamando il callback onReady:
<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>
Il callback onReady controlla se il consenso è già stato dato su un’altra piattaforma e, in caso affermativo, lo memorizza chiamando il metodo _iub.cs.api.setPreferences().
Consenso per categoria
_iub.cs.api.storeConsent() permette di personalizzare anche gli scopi nell’argomento che può essere {consent: true}, {consent: false} o {purposes: {1: true, 2: false, …}}.
_iub.cs.api.setPreferences(consentObj, hideBanner)
Il metodo _iub.cs.api.setPreferences prevede due argomenti: consentObj (obbligatorio) e hideBanner (opzionale).
consentObj
Si tratta di un oggetto con le seguenti preferenze:
- consenso – richiesto – accetta
trueofalse– Si riferisce al consenso generale - ccpa – richiesto se il CCPA è abilitato – accetta
trueofalse– si riferisce alla privacy degli Stati Uniti e sarà applicato solo se il CCPA è abilitato in Cookie Solution - uspr – richiesto se USPR è abilitato – accetta un oggetto con le seguenti opzioni – si riferisce al consenso USPR e sarà applicato solo se USPR è abilitato nella Cookie Solution
- all – accetta
trueofalse– questa opzione imposta lo stesso valore per tutti gli scopi
- all – accetta
uspr: {
all: true // or false
}
- [purposeId] – accetta
trueofalse– questa opzione imposta il valore per scopi specifici dell’ID
uspr: {
's': true, // or false
'sh': false, // or true
'adv': false // or true
}
- scopi – richiesto se
perPurposeConsentè abilitato – accetta un oggetto con le seguenti opzioni – si riferisce al consenso per gli scopi e sarà applicato solo seperPurposeConsentè abilitato nella Cookie Solution- all – accetta
trueofalse– questa opzione imposta lo stesso valore per tutti gli scopi
- all – accetta
purposes: {
all: true // or false
}
- [purposeId] – accetta
trueofalse– questa opzione imposta il valore per scopi specifici dell’ID
purposes: {
'1': true, // or false
'2': false, // or true
'4': false // or true
}
- tcfv2 – richiesto se il TCF è abilitato – accetta un oggetto con le seguenti opzioni – si riferisce al consenso TCF e sarà applicato solo se il TCF è abilitato nella Cookie Solution
- all – accetta
trueofalse– questa opzione imposta lo stesso valore per tutti gli scopi TCF
- all – accetta
tcfv2: {
all: true // or false
}
- [stringa] – accetta una stringa di TCF
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
- gac – richiesto se il consenso aggiuntivo di Google è abilitato – accetta un oggetto con le seguenti opzioni – si riferisce al consenso GAC e sarà applicato solo se GAC è abilitato in Cookie Solution
- all – accetta
trueofalse– questa opzione imposta lo stesso valore per tutti i fornitori GAC
- all – accetta
gac: {
all: true // or false
}
- [stringa] – accetta una stringa GAC
gac: '1~1584.2292.2392'
hideBanner
È un booleano che permette di nascondere o meno il banner dopo la memorizzazione delle preferenze. 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