Além de exibir um banner de cookies, você também precisa bloquear os cookies antes do consentimento. A codificação manual é uma das opções disponíveis.
Com uma pequena alteração no código dos scripts que podem instalar cookies, você permite que nosso Privacy Controls and Cookie Solution impeça a instalação onde ainda não há consentimento.
O Privacy Controls and Cookie Solution da iubenda permite a gestão de todos os detalhes para o cumprimento da Lei dos Cookies: um banner de cookies para notificar seus usuários, uma política de cookies para informação complementar e o salvamento de preferências, e bloqueio de scripts antes da concessão do consentimento do usuário e provas das preferências dos usuários.
Você sabia que existe uma opção mais simples para o bloqueio prévio de cookies e rastreadores? Nosso recurso de bloqueio automático automatiza o processo, economizando tempo e esforço.
Se você preferir marcar manualmente seus scripts que instalam ou podem instalar cookies, você ainda pode seguir o guia abaixo para obter instruções passo a passo e exemplos práticos. No entanto, é altamente recomendável considerar o recurso de bloqueio automático para uma abordagem mais simplificada.
👉 Clique aqui para saber mais sobre o bloqueio automático e como isso pode simplificar seu processo de bloqueio de cookies
Para obter o manual de instalação, consulte nossa introdução ao Privacy Controls and Cookie Solution. Para o WordPress, leia nosso post exclusivo para o WordPress, que ensina como usar o plugin do Privacy Controls and Cookie Solution da iubenda no WordPress a fim de automatizar o bloqueio de scripts.
Isso depende da jurisdição competente aplicável ao seu site. Na Europa, você é legalmente obrigado a bloquear scripts de cookies até que o consentimento do usuário seja obtido. Todos os cookies devem ser bloqueados, no entanto, há exceções, os chamados cookies estritamente necessários.
Na Itália, a categoria de cookies isentos de consentimento são:
Na Itália, o anonimato do IP é a condição para que o Google Analytics esteja apto a ser “sem consentimento prévio necessário” – no entanto, na França, o Google Analytics não parece estar suscetível a exceções, ainda que o uso do Matomo/Piwik seja recomendado – é a anonimização do IP do usuário que permite que a análise seja realizada de forma discriminada.
Para ajudar os anunciantes a gerenciar cookies para finalidades estatísticas e de publicidade, o Google introduziu o Modo de consentimento, um recurso que permite evitar o bloqueio prévio do Google Analytics e do Google Ads (incluindo o Google Ads Conversion Tracking and Remarketing).
Saiba como implementá-lo no nosso Privacy Controls and Cookie Solution.
É importante observar que, nos casos em que o GDPR se aplica, o uso pretendido considera a necessidade ou não de consentimento, dado que até os dados estatísticos podem ser classificados como “perfilamento” ou “monitoramento”, dependendo de como os dados estão sendo usados.
Para proceder:
Caso outras ferramentas de terceiros assegurem o não uso de cookies, possivelmente pelo fornecimento de opções de configuração específicas, elas também podem ser consideradas isentas de bloqueio prévio.
É o caso do YouTube, que disponibiliza um recurso específico para evitar que o usuário seja rastreado através de cookies.
O Google Tag Manager é uma ferramenta gratuita que ajuda a simplificar a aplicação dos regulamentos de cookies. É compatível com o Privacy Controls and Cookie Solution da iubenda. Você pode consultar nosso manual do Google Tag Manager aqui.
O Google Tag Manager evita a codificação de scripts, conforme descrito abaixo, embora isso seja limitado a uma determinada categoria de scripts – scripts que não possuem parâmetro posiciona/não definem uma posição. Portanto, ele não lida com scripts incorporados, como aqueles relacionados a banners publicitários, widgets de vídeo do YouTube, botões de curtidas do Facebook, etc. Embora esse método não seja a solução absoluta, é recomendável que você o utilize.
Para todos os outros scripts que instalam ou podem instalar cookies, você precisa dar prosseguimento às alterações no código para implementar o recurso de bloqueio.
Para ativar o bloqueio de scripts que podem instalar cookies, você precisa alterar esses scripts para que o Privacy Controls and Cookie Solution da iubenda possa impedir sua execução quando consentimento ainda não tiver sido dado.
Para tanto,
_iub_cs_activate
às tags script
.text/javascript
para . text/plain
<script class="_iub_cs_activate" type="text/plain" src="code-source.js"> …. </script>
O src
pode permanecer inalterado, mas é aconselhável substituí-lo por data-suppressedsrc
(não disponível no antigo canal atual/beta/estável) ou por suppressedsrc
. A substituição do src
é necessária em alguns casos, pois o navegador, ainda que o script esteja bloqueado, pode baixar e/ou decodificar o recurso e, consequentemente, instalar cookies.
// use of data-suppressedsrc <script data-suppressedsrc="LINK-TO-SOURCE.js" class="_iub_cs_activate" type="text/plain"> </script> // OR suppressedsrc <script suppressedsrc="LINK-TO-SOURCE.js" class="_iub_cs_activate" type="text/plain"> </script>
Observação: para a reativação do script, o Privacy Controls and Cookie Solution da iubenda opera a reativação do src
por meio do controle dos atributos descritos anteriormente na seguinte ordem: data-suppressedsrc
(não disponível no antigo canal atual/beta/estável), suppressedsrc
e src
(caso não tenha sido alterado).
Para ativar a tag inline JavaScript, você deve aplicar a classe_iub_cs_activate-inline
.
<script class="_iub_cs_activate-inline" type="text/plain"> …. </script>
Observação: a classe _iub_cs_activate-inline
precisa ser aplicada a todos os objetos document.write
ou document.writeln
.
Graças aos atributos personalizados suppressedtype
e data-iub-type
, nosso Privacy Controls and Cookie Solution também pode bloquear/ativar outros scripts além de text/javascript
(por exemplomodule
):
<script type="module">
console.log('this is a module, e.g. "this" is undefined:', this);
</script>
Para bloqueá-lo:
<script suppressedtype="module" type="text/plain" class="_iub_cs_activate">
console.log('this is a module, e.g. "this" is undefined:', this);
</script>
ou (alternativa equivalente):
<script data-iub-type="module" type="text/plain" class="_iub_cs_activate">
console.log('this is a module, e.g. "this" is undefined:', this);
</script>
Se você ativou o recurso de consentimento por categoria, será necessário especificar as categorias dos scripts/iframes com atributo especial data-iub-purposes
separado por vírgulas, por exemplo, data-iub-purposes="2"
ou data-iub-purposes="2, 3"
(é raro, mas um único ativador pode servir a diferentes finalidades).
Lembre-se de que as finalidades são agrupadas em 5 categorias (necessários, funcionalidades, experiência, medição, marketing), cada uma com um id (1, 2, 3, 4, 5):
1
). Finalidades incluídas:
2
). Finalidades incluídas:
3
). Finalidades incluídas:
4
). Finalidades incluídas:
5
). Finalidades incluídas:
Vejamos o botão de seguir do Twitter como exemplo:
<a href="https://twitter.com/iubenda" class="twitter-follow-button" data-show-count="false">Follow @iubenda</a>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
Como o botão para seguir no Twitter faz parte da finalidade “Interação com redes sociais e plataformas externas” incluído na categoria “Otimização da experiência” (3
), o código será:
<a href="https://twitter.com/iubenda" class="twitter-follow-button" data-show-count="false">Follow @iubenda</a>
<script async type="text/plain" class="_iub_cs_activate" data-iub-purposes="3" data-suppressedsrc="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
Com exceção dos cookies estritamente necessários (que não precisam de consentimento), você precisa adicionar o atributo data-iub-purposes
a todos os seus scripts, caso use o consentimento por categoria, a fim de que o Privacy Controls and Cookie Solution possa identificar corretamente os scripts para liberação. Quando o recurso por categoria estiver ativado, os scripts/iframes sem o atributo data-iub-purposes
, ou com pelo menos uma finalidade rejeitada, permanecerão bloqueados, portanto, certifique-se de adicioná-lo em cada instância.
Alternativamente, caso os cookies estejam ativados por partes do código JavaScript, é possível prosseguir via callback para a instância csConfiguration
.
// onConsentGiven is still active but deprecated: if both are declarated only onConsentRead will be executed. _iub.csConfiguration = { callback: { onConsentRead: function(){ yourFunctionForRegisterCookie() ;} } }
Observação: o onConsentGiven
, acima especificado, ainda está disponível em razão da compatibilidade com versões anteriores. No entanto, seu valor será substituído pelo onConsentRead
, caso este último seja usado.
Em alguns casos, para reativar adequadamente uma tag bloqueada, é necessário aguardar a disponibilidade de uma variável ou de um objeto JavaScript. Para gerenciar corretamente as dependências, você localizará o atributo data-iub-cs-wait-for
(não disponível no antigo canal atual/beta/estável).
<script suppressedsrc="//download.helloworldvariable.js" class="_iub_cs_activate"> </script> <script data-iub-cs-wait-for="helloWord" class="_iub_cs_activate-inline"> console.log('print hello world' + helloWorld); </script>
Diversas tags img
e iframe
também podem instalar cookies. Nestes casos, é necessário adicionar a classe _iub_cs_activate
(assim como para as tags de script
descritas acima), atribuir o valor original da tag src
a um novo atributo chamado data-suppressedsrc
ou suppressedsrc
e atribuir o valor "about:blank"
ao src
(veja o exemplo abaixo para visualizar essas regras).
<iframe id="player" class="_iub_cs_activate" width="640" height="390" frameborder="0" suppressedsrc="https://www.youtube.com/embed/erVv_Gm7CC4" src="about:blank"></iframe>
Observação: o valor data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+
indicado anteriormente neste manual (é a versão base64 codificada do: Suppressed
, que será exibido pela maioria dos navegadores antes do consentimento, em vez da saída real do script) não afeta o bloqueio correto e a ativação subsequente da tag, mas seu uso pode resultar em erros na exibição de algumas visualizações da web no Android.
Neste endereço você encontrará uma ferramenta de código/codificação para gerar qualquer outra versão base64 de qualquer outra string.
Atualmente, a tag noscript, que pode instalar cookies quando o usuário desabilitar o JavaScript em seu navegador, está em fase de implementação. Para estar preparado também para estes casos, sugerimos remover as tags noscript
do documento ou, em vez disso, utilizar soluções de backend que podem, após descobrir a presença do cookie _iub_cs-local
, incluir ou excluir seletivamente as tags noscript
dos documentos.
Abaixo você pode encontrar exemplos de scripts comumente usados e orientações sobre como modificá-los de acordo com a lei dos cookies.
Depois:
1. defina o callBack para o onConsentGiven
na instância _iub.csConfiguration
onConsentGiven: function () { $('.4wNET.hidden').removeClass('hidden'); }
2. inclua todo o script que carrega o banner em um div com “display: none” definido – Exemplo
Botão:
A Altervista e seus provedores de anúncios aderem e apoiam a Estrutura de Transparência e Consentimento (TCF). Mais informações no Altervista Wiki.
src
da tag do script
.Observação: os snippets devem ser bloqueados em uma ordem específica, caso haja mais conversões por página no Ads
_iub_cs_activate-inline
classe_iub_cs_activate
classeDessa forma, o primeiro snippet de conversão será:
<script class="_iub_cs_activate-inline" type="text/plain"> /* <![CDATA[ */ var google_conversion_id =CONVERSION_ID; var google_conversion_label = "CONVERSION-LABEL"; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */ </script> <script class="_iub_cs_activate-inline" type="text/plain" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1036022355/?value=0&label=-KpbCO3v1QQQ0-SB7gM&guid=ON&script=0"/> </div> </noscript>
E os snippets de conversão serão:
<script class="_iub_cs_activate" type="text/plain"> /* <![CDATA[ */ var google_conversion_id =CONVERSION_ID; var google_conversion_label = "CONVERSION-LABEL"; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */ </script> <script class="_iub_cs_activate" type="text/plain" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" type="text/plain" class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1036022355/?value=0&label=-KpbCO3v1QQQ0-SB7gM&guid=ON&script=0"/> </div> </noscript>
Todos os snippets na página podem ser bloqueados com a classe _iub_cs_activate
. Por exemplo:
<script class="_iub_cs_activate" type="text/plain"> /* <![CDATA[ */ var google_conversion_id =CONVERSION_ID; var google_conversion_label = "CONVERSION-LABEL"; var google_custom_params = window.google_tag_params; var google_remarketing_only = true; /* ]]> */ </script> <script class="_iub_cs_activate" type="text/plain" src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" type="text/plain" class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1036022355/?value=0&label=-KpbCO3v1QQQ0-SB7gM&guid=ON&script=0"/> </div> </noscript>
O disposto abaixo é implementado apenas quando são utilizados os recursos do Google Analytics que permitem o rastreamento de um utilizador único. Em todos os outros casos, sugere-se anonimizar o IP.
Observação: se você veicular anúncios personalizados usando os serviços do Google, é necessário se certificar de que o consentimento explícito para a personalização de anúncios seja coletado antes da exibição dos anúncios personalizados para usuários finais, com base no EAA. Mais informações aqui.
Observação: se houver muitos banners OpenX na página, você pode agilizar a ativação usando a opção inlineDelay
(para mais informações, consulte o manual de Instalação e Customização da iubenda). Recomendamos evitar valores menores que 200
milésimos de segundo.
Observação: use tags assíncronas (AJAX).
Antes:
<div id="DIV-ID" class="CLASS-DIV"> <ul id="UL-ID" class="CLASS-UL"> <li id="LI-ID" class="CLASS-LI"> <a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"/></a> </li> </ul> </div> <script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"></script>
Depois:
1. Adicione à configuração básica do script da iubenda o reloadOnConsent
, conforme exposto abaixo:
<script> _iub.csConfiguration ? _iub.csConfiguration : _iub.csConfiguration = {} _iub.csConfiguration.reloadOnConsent = true; </script> //insert it into <head> tag after iubenda configuration
2. Defina isConsentGiven
para controlar os cookies:
<script type='text/javascript'> function isConsentGiven() { if('consentIsGiven' in window && (consentIsGiven === true || consentIsGiven === false)) return consentIsGiven; if(!('_iub' in window && 'csConfiguration' in _iub)) return false; var siteId = _iub.csConfiguration.siteId || ''; var cookiePolicyId = _iub.csConfiguration.cookiePolicyId || ''; var cs = document.cookie.split(';'); var consentIsGiven = false; for (var i = 0; i < cs.length; i++) { while (cs[i].charAt(0) == ' ') cs[i] = cs[i].substring(1); if(cs[i].indexOf('_iub_cs-s'+ siteId) == 0||cs[i].indexOf('_iub_cs-'+ cookiePolicyId) == 0) { consentIsGiven = true; break; } } window.consentIsGiven = consentIsGiven; return consentIsGiven; } </script>
3. Substitua o elemento TripAdvisor original por este recurso:
<script> if(isConsentGiven()){ //per ogni elemento di TripAdvisor document.write('<div id="DIV-ID" class="CLASS-DIV"><ul id="UL-ID" class="CLASS-UL"><li id="LI-ID" class="CLASS-LI"><a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"\/><\/a><\/li><\/ul><\/div>'); document.write('<script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"><\/script>'); } </script>
Antes:
<div id="DIV-ID" class="CLASS-DIV"> <ul id="UL-ID" class="CLASS-UL"> <li id="LI-ID" class="CLASS-LI"> <a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"/></a> </li> </ul> </div> <script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"></script>
Depois:
1. Adicione à configuração básica do script da iubenda o reloadOnConsent
, conforme exposto abaixo:
<script> _iub.csConfiguration ? _iub.csConfiguration : _iub.csConfiguration = {} _iub.csConfiguration.reloadOnConsent = true; </script> //insert it into <head> tag after iubenda configuration
2. Defina isConsentGiven
para controlar os cookies:
<script type='text/javascript'> function isConsentGiven() { if('consentIsGiven' in window && (consentIsGiven === true || consentIsGiven === false)) return consentIsGiven; if(!('_iub' in window && 'csConfiguration' in _iub)) return false; var siteId = _iub.csConfiguration.siteId || ''; var cookiePolicyId = _iub.csConfiguration.cookiePolicyId || ''; var cs = document.cookie.split(';'); var consentIsGiven = false; for (var i = 0; i < cs.length; i++) { while (cs[i].charAt(0) == ' ') cs[i] = cs[i].substring(1); if(cs[i].indexOf('_iub_cs-s'+ siteId) == 0||cs[i].indexOf('_iub_cs-'+ cookiePolicyId) == 0) { consentIsGiven = true; break; } } window.consentIsGiven = consentIsGiven; return consentIsGiven; } </script>
3. Substitua o elemento TripAdvisor original por este recurso:
<script> if(isConsentGiven()){ //per ogni elemento di TripAdvisor document.write('<div id="DIV-ID" class="CLASS-DIV"><ul id="UL-ID" class="CLASS-UL"><li id="LI-ID" class="CLASS-LI"><a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"\/><\/a><\/li><\/ul><\/div>'); document.write('<script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"><\/script>'); } </script>
Antes:
<div id="DIV-ID" class="CLASS-DIV"> <ul id="UL-ID" class="CLASS-UL"> <li id="LI-ID" class="CLASS-LI"> <a target="_blank" href="http://www.tripadvisor.co.uk/"><img src="http://www.tripadvisor.co.uk/img/cdsi/partner/tripadvisor_logo_DIMENSIONS.png" alt="TripAdvisor"/></a> </li> </ul> </div> <script src="http://www.jscache.com/wejs?wtype=TYPE&uniq=UNIQ&locationId=LocationId&icon=knifeAndFork&lang=en_UK&display_version=2"></script>
Depois:
1. Adicione à configuração básica do script da iubenda o reloadOnConsent
, conforme exposto abaixo:
<script> _iub.csConfiguration ? _iub.csConfiguration : _iub.csConfiguration = {} _iub.csConfiguration.reloadOnConsent = true; </script> //insert it into <head> tag after iubenda configuration
2. Defina isConsentGiven
para controlar os cookies:
<script type='text/javascript'> function isConsentGiven() { if('consentIsGiven' in window && (consentIsGiven === true || consentIsGiven === false)) return consentIsGiven; if(!('_iub' in window && 'csConfiguration' in _iub)) return false; var siteId = _iub.csConfiguration.siteId || ''; var cookiePolicyId = _iub.csConfiguration.cookiePolicyId || ''; var cs = document.cookie.split(';'); var consentIsGiven = false; for (var i = 0; i < cs.length; i++) { while (cs[i].charAt(0) == ' ') cs[i] = cs[i].substring(1); if(cs[i].indexOf('_iub_cs-s'+ siteId) == 0||cs[i].indexOf('_iub_cs-'+ cookiePolicyId) == 0) { consentIsGiven = true; break; } } window.consentIsGiven = consentIsGiven; return consentIsGiven; } </script>
3. Substitua o elemento TripAdvisor original por este recurso:
<script> if(isConsentGiven()){ document.write('<div id="DIV-ID" class="CLASS-DIV"><ul id="UL-ID" class="CLASS-UL"><li id="LI-ID" class="CLASS-LI"><a target="_blank" href="http://www.tripadvisor.co.uk/"><img class="_iub_cs_activate" src="data:text/html;base64,PGh0bWw+PGJvZHk+U3VwcHJlc3NlZDwvYm9keT48L2h0bWw+" suppressedsrc="http://www.tripadvisor.co.uk/img/cdsi/img2/branding/150_logo-11900-2.png" alt="TripAdvisor"\/><\/a><\/li><\/ul><\/div>'); document.write('<script src="http://www.jscache.com/wejs?wtype=cdswritereviewlg&uniq=YOUR-UNIQ&locationId=YOUR-LOCATION&lang=en_UK&border=false&langversion=2"><\/script>'); } </script>
O disposto abaixo se aplica apenas aos casos em que você não usa a opção que permite incluir vídeos do YouTube sem instalar cookies para os visitantes do site.