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).
Méthode synchrone
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>
Important
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()
.
Consentement par catégorie
_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, …}}
.
Méthode asynchrone
Avant d’intégrer le code des Privacy Controls et de la Cookie Solution, vous devrez définir une fonction qui :
- accepte un rappel ;
- détecte le consentement ;
- enregistre le consentement dans une variable globale ; et
- invoque le rappel par la suite.
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>
Important
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()
.
Consentement par catégorie
_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, …}}
.
_iub.cs.api.setPreferences(consentObj, hideBanner)
La méthode _iub.cs.api.setPreferences
, qui attend deux arguments : consentObj (obligatoire) et hideBanner (facultatif).
consentObj
Il s’agit d’un objet avec des préférences de suivi :
- consentement – requis – accepte
true
oufalse
– Il s’agit d’un consentement général - ccpa – obligatoire si la CCPA est activée – accepte
true
oufalse
– 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. - uspr – obligatoire si l’USPR est activé – accepte un objet avec les options suivantes – il se réfère au consentement USPR et ne sera appliqué que si l’USPR est activé dans Cookie Solution.
- all – accepte
true
oufalse
– cette option définit la même valeur pour tous les objectifs.
- all – accepte
uspr: { all: true // or false }
- [purposeId] – accepte
true
oufalse
– 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 }
- purposes – obligatoire si
perPurposeConsent
est activé – accepte un objet avec les options suivantes – il se réfère au consentement des objectifs et ne sera appliqué que siperPurposeConsent
est activé dans Cookie Solution.- all – accepte
true
oufalse
– cette option définit la même valeur pour tous les objectifs.
- all – accepte
purposes: { all: true // or false }
- [purposeId] – accepte
true
oufalse
– 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 }
- tcfv2 – requis si le TCF est activé – accepte un objet avec les options suivantes – il fait référence au consentement TCF et ne sera appliqué que si le TCF est activé dans Cookie Solution
- all – accepte
true
oufalse
– cette option définit la même valeur pour tous les objectifs du TCF
- all – accepte
tcfv2: { all: true // or false }
- [string] – accepte une chaîne TCF
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
- gac – obligatoire si le consentement additionnel de Google est activé – accepte un objet avec les options suivantes – il se réfère au consentement GAC et ne sera appliqué que si le GAC est activé dans Cookie Solution.
- all – accepte
true
oufalse
– cette option définit la même valeur pour tous les fournisseurs de GAC
- all – accepte
gac: { all: true // or false }
- [string] – accepte une chaîne GAC
gac: '1~1584.2292.2392'
hideBanner
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