Iubenda logo
Générer dès maintenant

Documentation

Sommaire

Comment migrer les consentements d’un fournisseur précédent vers la solution Privacy Controls and Cookie Solution ?

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 :

  1. accepte un rappel ;
  2. détecte le consentement ;
  3. enregistre le consentement dans une variable globale ; et
  4. 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 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>

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 ou false – Il s’agit d’un consentement général
  • ccpa – obligatoire si la CCPA est activée – accepte true 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.
  • 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 ou false – cette option définit la même valeur pour tous les objectifs.
uspr: {
   all: true // or false
}
  • [purposeId] – accepte 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
}
  • 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 si perPurposeConsent est activé dans Cookie Solution.
    • all – accepte true ou false – cette option définit la même valeur pour tous les objectifs.
purposes: {
   all: true // or false
}
  • [purposeId] – accepte 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
}
  • 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 ou false – cette option définit la même valeur pour tous les objectifs du TCF
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 ou false – cette option définit la même valeur pour tous les fournisseurs de GAC
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

Voir également