Iubenda logo
Générer dès maintenant

Documentation

Sommaire

Comment migrer les consentements depuis un ancien prestataire vers Privacy Controls and Cookie Solution

Si vous passez d’une autre solution de gestion des cookies à la nôtre, vous souhaitez peut-être migrer les consentements déjà recueillis. La migration permet de vous assurer que les utilisateurs qui ont déjà donné leur consentement à l’aide de la solution précédente ne voient pas s’afficher de nouveau le bandeau cookies et la demande de consentement dont il s’accompagne.

Vous avez 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 Privacy Controls and Cookie Solution, vous devrez créer une fonction synchrone (p.ex. isConsentGivenByOtherPlatform) pour récupérer le consentement à partir de l’ancienne 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-collez pas le code ci-dessus : il s’agit d’un simple exemple de code donné pour vous aider à comprendre cette approche.

Ensuite, ajoutez le code de Privacy Controls and Cookie Solution en appelant la fonction de rappel onBeforePreload :

<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": {
            onBeforePreload: function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.storeConsent();
                }
            }
        }
    };
</script>
<script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

La fonction de rappel onBeforePreload vérifie si le consentement a déjà été donné sur une autre plateforme et, le cas échéant, stocke ce consentement en appelant la méthode _iub.cs.api.storeConsent().

Consentement par catégorie

_iub.cs.api.storeConsent() vous permet également de définir des finalités et accepte un argument optionnel qui peut être {consent: true}, {consent: false} ou {purposes: {1: true, 2: false, …}}. Si vous ne lui affectez aucun argument, son comportement sera le même que si vous lui aviez affecté {consent: true}.

Méthode asynchrone

Avant d’intégrer le code de Privacy Controls and Cookie Solution, vous devrez créer une fonction qui :

  1. accepte une fonction de rappel ;
  2. détecte le consentement ;
  3. enregistre le consentement dans une variable globale ; et
  4. appelle ensuite la fonction de rappel.

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-collez pas le code ci-dessus : il s’agit d’un simple exemple de code donné pour vous aider à comprendre cette approche.

Ensuite, ajoutez le code de Privacy Controls and Cookie Solution en appelant la fonction de rappel onBeforePreload :

<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": {
            onBeforePreload: function() {
                if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
                    _iub.cs.api.storeConsent();
                }
            }
        }
    };
</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>

La fonction de rappel onBeforePreload vérifie si le consentement a déjà été donné sur une autre plateforme et, le cas échéant, stocke ce consentement en appelant la méthode _iub.cs.api.storeConsent().

Consentement par catégorie

_iub.cs.api.storeConsent() vous permet également de définir des finalités et accepte un argument optionnel qui peut être {consent: true}, {consent: false} ou {purposes: {1: true, 2: false, …}}. Si vous ne lui affectez aucun argument, son comportement sera le même que si vous lui aviez affecté {consent: true}.

Voir aussi