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

Este site está registrado em wpml.org como um site de desenvolvimento. Você pode mudar para uma chave de site de produção para remove this banner.