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

Se estiver a mudar de outra solução de gestão de cookies para a nossa, poderá querer migrar os consentimentos que já recolheu. Isto é útil para garantir que os utilizadores que já deram o seu consentimento ao abrigo da solução anterior não sejam apresentados novamente com o banner de cookies e o respetivo pedido de consentimento.

Existem duas formas de o fazer, consoante a plataforma “antiga” forneça um cookie(método síncrono) ou exija uma chamada à sua API(método assíncrono).

Método síncrono

Antes de incorporar o Privacy Controls and Cookie Solution, terá de 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 o ajudar a compreender a abordagem.

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

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

Consentimento por categoria

_iub.cs.api.storeConsent() permite personalizar os objectivos 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, terá de definir uma função que:

  1. aceita uma chamada de retorno;
  2. detecta o consentimento;
  3. guarda o consentimento numa variável global; e
  4. invoca a chamada de retorno posteriormente.

Aqui tem 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 o ajudar a compreender a abordagem.

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

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

Consentimento por categoria

_iub.cs.api.storeConsent() permite personalizar os objectivos 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, que espera dois argumentos: consentObj (obrigatório) e hideBanner (opcional)

consentObj

Trata-se de um objeto com itens de preferências a seguir:

  • consentimento – necessário – aceita true ou false – Refere-se ao consentimento geral
  • ccpa – necessário se a CCPA estiver activada – aceita true ou false – refere-se à privacidade dos EUA e só será aplicada se a CCPA estiver activada na Solução de Cookies
  • uspr – obrigatório se a USPR estiver activada – aceita um objeto com as seguintes opções – refere-se ao consentimento da USPR e só será aplicado se a USPR estiver activada na Solução de Cookies
    • all – aceita true ou false – esta opção define o mesmo valor para todos os efeitos
uspr: {
   all: true // or false
}
  • [purposeId] – aceita true ou false – esta 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 só será aplicado se perPurposeConsent estiver ativado na Solução de Cookies
    • all – aceita true ou false – esta opção define o mesmo valor para todos os efeitos
purposes: {
   all: true // or false
}
  • [purposeId] – aceita true ou false – esta 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 só será aplicado se o TCF estiver ativado na Solução de Cookies
    • todos – aceita true ou false – esta opção define o mesmo valor para todos os efeitos do TCF
tcfv2: {
   all: true // or false
}
  • [string] – aceita uma cadeia TCF
tcfv2: 'CP9rVEAP9rVEAB7FGCENAyEgAAAAAAAAAAAAAAAUHgJAA4AM-AjwBKoDfAHbAO5AgoBIgCSgEowJaATHAmSBNICfYFBAKDgAAAAA'
  • gac – obrigatório se o Consentimento Adicional do Google estiver ativado – aceita um objeto com as seguintes opções – refere-se ao consentimento do GAC e só será aplicado se o GAC estiver ativado na Solução de Cookies
    • all – aceita true ou false – esta 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 ocultar o banner após o armazenamento de preferências, neste caso, 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 ainda

Este site está registado em wpml.org como um site de desenvolvimento. Mude para uma chave de site de produção para remove this banner.