Iubenda logo
Crie Agora

Documentação

ou
Tabela de conteúdos

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

Se você estiver mudando de outra solução de gerenciamento de cookies para a nossa, convém migrar os consentimentos que você 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 solicitação de consentimento relativa.

Existem duas maneiras de realizar esta migração, dependendo se a plataforma “antiga” fornece um cookie (método síncrono) ou requer uma chamada para a sua API (método assíncrono).

Método síncrono

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

  1. <script type="text/javascript">
  2. function readLocalCookie(cookieName) {
  3. var cookies = document.cookie.split(';');
  4. for (var i = 0; i < cookies.length; i++) {
  5. var e=cookies[i].split('=');
  6. if (e[0] === cookieName) {
  7. return e[1];
  8. }
  9. }
  10. return null;
  11. }
  12. function isConsentGivenByOtherPlatform() {
  13. var otherPlatformCookieName = 'cookie_from_other_platform'; // use the actual cookie name saved by the other platform
  14. var prevConsent = readLocalCookie(otherPlatformCookieName);
  15. if (prevConsent) {
  16. return true;
  17. } else {
  18. return false;
  19. }
  20. }
  21. </script>
Importante

Não copie e cole o código apresentado acima, pois trata-se de um código de amostra que fornecemos para ajudá-lo a entender a abordagem.

Em seguida, adicione o snippet do Privacy Controls and Cookie Solution, chamando o callback onBeforePreload:

  1. <script type="text/javascript">
  2. var _iub = _iub || [];
  3. _iub.csConfiguration = {
  4. "lang": "en",
  5. "siteId": XXXXXX, // use your siteId
  6. "cookiePolicyId": YYYYYY, // use your cookiePolicyId
  7. "banner": {
  8. "acceptButtonDisplay": true,
  9. "customizeButtonDisplay": true,
  10. "position": "float-top-center"
  11. },
  12. "callback": {
  13. onBeforePreload: function() {
  14. if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
  15. _iub.cs.api.storeConsent();
  16. }
  17. }
  18. }
  19. };
  20. </script>
  21. <script type="text/javascript" src="//cdn.iubenda.com/cs/iubenda_cs.js" charset="UTF-8" async></script>

O callback onBeforePreload verifica se o consentimento já foi dado em outra plataforma e, em caso afirmativo, o armazenará chamando o método _iub.cs.api.storeConsent().

Consentimento por categoria

_iub.cs.api.storeConsent() também permite definir finalidades e aceita um argumento opcional que pode ser {consent: true}, {consent: false} ou {purposes: {1: true, 2: false, …}}. Se nenhum argumento for especificado, ele age como se {consent: true} tivesse sido aprovado.

Método assíncrono

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

  1. aceite um callback;
  2. detecte o consentimento;
  3. salve o consentimento em uma variável global; e
  4. chame o callback posteriormente.

Veja abaixo um exemplo:

  1. <script type="text/javascript">
  2. // fetch consent asynchronously from 3rd party
  3. function getConsentByOtherPlatform(cb) {
  4. $.getJSON('http://otherplatform.com/api/get-consent', function(result) {
  5. if (result.given) {
  6. window.consentByOtherPlatform = true;
  7. } else {
  8. window.consentByOtherPlatform = false;
  9. }
  10. cb();
  11. });
  12. }
  13. function isConsentGivenByOtherPlatform() {
  14. return !!window.consentByOtherPlatform;
  15. }
  16. </script>
Importante

Não copie e cole o código apresentado acima, pois trata-se de um código de amostra que fornecemos para ajudá-lo a entender a abordagem.

Em seguida, adicione o snippet do Privacy Controls and Cookie Solution, chamando o callback onBeforePreload:

  1. <script type="text/javascript">
  2. var _iub = _iub || [];
  3. _iub.csConfiguration = {
  4. "lang": "en",
  5. "siteId": XXXXXX, // use your siteId
  6. "cookiePolicyId": YYYYYY, // use your cookiePolicyId
  7. "banner": {
  8. "acceptButtonDisplay": true,
  9. "customizeButtonDisplay": true,
  10. "position": "float-top-center"
  11. },
  12. "callback": {
  13. onBeforePreload: function() {
  14. if (typeof window.isConsentGivenByOtherPlatform === 'function' && isConsentGivenByOtherPlatform()) {
  15. _iub.cs.api.storeConsent();
  16. }
  17. }
  18. }
  19. };
  20. </script>
  21. <script type="text/javascript">
  22. // ask for 3rd party consent before including the CS
  23. getConsentByOtherPlatform(function() {
  24. var s = document.createElement('script');
  25. s.src = '//cdn.iubenda.com/cs/iubenda_cs.js';
  26. document.head.appendChild(s);
  27. });
  28. </script>

O callback onBeforePreload verificará se o consentimento já foi dado em outra plataforma e, em caso afirmativo, o armazenará chamando o método _iub.cs.api.storeConsent().

Consentimento por categoria

_iub.cs.api.storeConsent() também permite definir finalidades e aceita um argumento opcional que pode ser {consent: true}, {consent: false} ou {purposes: {1: true, 2: false, …}}. Se nenhum argumento for especificado, ele age como se {consent: true} tivesse sido aprovado.

Veja também