Iubenda logo
Crie Agora

Documentação

Tabela de conteúdos

Como migrar consentimentos de um provedor anterior para a Privacy Controls and Cookie Solution

Se o senhor estiver mudando de outra solução de gerenciamento de cookies para a nossa, talvez queira migrar os consentimentos que já coletou. Isso é útil para garantir que os usuários que já deram seu consentimento na solução anterior não recebam novamente o banner de cookies e a respectiva solicitação de consentimento.

Há duas maneiras de fazer isso, dependendo do fato de a plataforma “antiga” fornecer um cookie(método síncrono) ou exigir uma chamada para sua API(método assíncrono).

Método síncrono

Antes de incorporar o Privacy Controls and Cookie Solution, o senhor precisará definir uma função síncrona (por exemplo, isConsentGivenByOtherPlatform) para obter o consentimento da outra plataforma:

<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

Não copie e cole o código mostrado acima – é apenas um exemplo de código que fornecemos para ajudá-lo a entender a abordagem.

Em seguida, adicione o snippet Privacy Controls and Cookie Solution, invocando o retorno de chamada 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>

O retorno de chamada onReady verifica se o consentimento já foi dado em outra plataforma e, em caso afirmativo, armazena-o chamando o método _iub.cs.api.setPreferences().

Consentimento por categoria

_iub.cs.api.storeConsent() permite personalizar as finalidades também no argumento, que pode ser {consent: true}, {consent: false} ou {purposes: {1: true, 2: false, …}}.

Método assíncrono

Antes de incorporar o código do Privacy Controls and Cookie Solution, o senhor precisará definir uma função que:

  1. aceita um retorno de chamada;
  2. detecta o consentimento;
  3. salva o consentimento em uma variável global; e
  4. invoca o retorno de chamada posteriormente.

Aqui está um exemplo:

<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

Não copie e cole o código mostrado acima – é apenas um exemplo de código que fornecemos para ajudá-lo a entender a abordagem.

Em seguida, adicione o snippet Privacy Controls and Cookie Solution, invocando o 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>

O retorno de chamada onReady verificará se o consentimento já foi dado em outra plataforma e, em caso afirmativo, o armazenará chamando o método _iub.cs.api.setPreferences().

Consentimento por categoria

_iub.cs.api.storeConsent() permite personalizar as finalidades também no argumento, que pode ser {consent: true}, {consent: false} ou {purposes: {1: true, 2: false, …}}.

_iub.cs.api.setPreferences(consentObj, hideBanner)

O método _iub.cs.api.setPreferences espera dois argumentos: consentObj (obrigatório) e hideBanner (opcional)

consentObj

É um objeto com itens de preferências de acompanhamento:

  • consentimento – necessário – aceita true ou false – Refere-se ao consentimento geral
  • ccpa – obrigatório se a CCPA estiver ativada – aceita true ou false – refere-se à privacidade dos EUA e será aplicada somente se a CCPA estiver ativada na Cookie Solution
  • uspr – obrigatório se a USPR estiver ativada – aceita um objeto com as seguintes opções – refere-se ao consentimento da USPR e será aplicado somente se a USPR estiver ativada na Cookie Solution
    • all – aceita true ou false – essa opção define o mesmo valor para todos os fins
uspr: {
   all: true // or false
}
  • [purposeId] – aceita true ou false – essa opção define o valor para fins de ID específicos
uspr: {
   's': true, // or false
   'sh': false, // or true
   'adv': false // or true
}
  • purposes – obrigatório se perPurposeConsent estiver ativado – aceita um objeto com as seguintes opções – refere-se ao consentimento para fins e será aplicado somente se perPurposeConsent estiver ativado na Cookie Solution
    • all – aceita true ou false – essa opção define o mesmo valor para todos os fins
purposes: {
   all: true // or false
}
  • [purposeId] – aceita true ou false – essa opção define o valor para fins de ID específicos
purposes: {
   '1': true, // or false
   '2': false, // or true
   '4': false // or true
}
  • tcfv2 – obrigatório se o TCF estiver ativado – aceita um objeto com as seguintes opções – refere-se ao consentimento do TCF e será aplicado somente se o TCF estiver ativado na Cookie Solution
    • all – aceita true ou false – essa opção define o mesmo valor para todas as finalidades do TCF
tcfv2: {
   all: true // or false
}
  • [string] – aceita uma string TCF
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
  • gac – obrigatório se o Google Aditional Consent estiver ativado – aceita um objeto com as seguintes opções – refere-se ao consentimento do GAC e será aplicado somente se o GAC estiver ativado na Cookie Solution
    • all – aceita true ou false – essa opção define o mesmo valor para todos os fornecedores de GAC
gac: {
   all: true // or false
}
  • [string] – aceita uma string GAC
gac: '1~1584.2292.2392'

hideBanner

É um booleano para ocultar ou não o banner após o armazenamento de preferências; nesse caso, ele deve ser sempre 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

Veja também