Si vous passez d’une autre solution de gestion des cookies à la nôtre, il se peut que vous souhaitiez migrer les consentements que vous avez déjà recueillis. Cela permet de s’assurer que les utilisateurs qui ont déjà donné leur consentement dans le cadre de la solution précédente ne se voient pas à nouveau présenter la bandeau cookies et la demande de consentement correspondante.
Il y a deux façons de procéder, selon que l'”ancienne” plateforme fournit un cookie(méthode synchrone) ou nécessite un appel à son API(méthode asynchrone).
Avant d’intégrer les Privacy Controls et Cookie Solution, vous devrez définir une fonction synchrone (par exemple, isConsentGivenByOtherPlatform
) pour obtenir le consentement de l’autre plateforme :
<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>
Ne copiez pas et ne collez pas le code ci-dessus – il s’agit simplement d’un exemple de code que nous avons fourni pour vous aider à comprendre l’approche.
Ensuite, ajoutez le snippet Privacy Controls and Cookie Solution, en invoquant le 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>
Le rappel onReady
vérifie si le consentement a déjà été donné sur une autre plateforme et, si c’est le cas, l’enregistre en appelant la méthode _iub.cs.api.setPreferences()
.
_iub.cs.api.storeConsent()
permet également de personnaliser les objectifs dans l’argument qui peut être {consent: true}
, {consent: false}
ou {purposes: {1: true, 2: false, …}}
.
Avant d’intégrer le code des Privacy Controls et de la Cookie Solution, vous devrez définir une fonction qui :
En voici un exemple :
<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>
Ne copiez pas et ne collez pas le code ci-dessus – il s’agit simplement d’un exemple de code que nous avons fourni pour vous aider à comprendre l’approche.
Ensuite, ajoutez le snippet Privacy Controls and Cookie Solution, en invoquant le callback on
Ready :
<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>
Le rappel onReady
vérifie si le consentement a déjà été donné sur une autre plate-forme et, si c’est le cas, l’enregistre en appelant la méthode _iub.cs.api.setPreferences()
.
_iub.cs.api.storeConsent()
permet également de personnaliser les objectifs dans l’argument qui peut être {consent: true}
, {consent: false}
ou {purposes: {1: true, 2: false, …}}
.
La méthode _iub.cs.api.setPreferences
, qui attend deux arguments : consentObj (obligatoire) et hideBanner (facultatif).
Il s’agit d’un objet avec des préférences de suivi :
true
ou false
– Il s’agit d’un consentement généraltrue
ou false
– il s’agit de la protection de la vie privée aux États-Unis et elle ne sera appliquée que si la CCPA est activée dans Cookie Solution.true
ou false
– cette option définit la même valeur pour tous les objectifs.uspr: { all: true // or false }
true
ou false
– cette option définit la valeur à des fins d’identification spécifiques.uspr: { 's': true, // or false 'sh': false, // or true 'adv': false // or true }
perPurposeConsent
est activé – accepte un objet avec les options suivantes – il se réfère au consentement des objectifs et ne sera appliqué que si perPurposeConsent
est activé dans Cookie Solution.
true
ou false
– cette option définit la même valeur pour tous les objectifs.purposes: { all: true // or false }
true
ou false
– cette option définit la valeur à des fins d’identification spécifiques.purposes: { '1': true, // or false '2': false, // or true '4': false // or true }
true
ou false
– cette option définit la même valeur pour tous les objectifs du TCFtcfv2: { all: true // or false }
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
true
ou false
– cette option définit la même valeur pour tous les fournisseurs de GACgac: { all: true // or false }
gac: '1~1584.2292.2392'
Il s’agit d’un booléen qui permet de masquer ou non la bannière après le stockage des préférences. 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