Esta página é destinada a desenvolvedores que mantêm a própria solução de consentimento no site e querem integrar o modo de consentimento. Para uma introdução ao modo de consentimento, leia Visão geral do modo de consentimento. Se você usa uma plataforma de gestão de consentimento (CMP) para obter o consentimento do usuário, saiba como configurar o modo de consentimento com uma CMP.
Você pode implementar o modo de consentimento de forma básica ou avançada. Confira as diretrizes da sua empresa para escolher um método de implementação e quais padrões definir. Saiba mais sobre a diferença entre o modo de consentimento básico e o avançado.
Antes de começar
Considere o seguinte antes de implementar o modo de consentimento:
Se você usa o Gerenciador de tags e quer manter seu próprio banner, a abordagem recomendada é carregá-lo pelo contêiner do Gerenciador de tags. Para isso, crie um modelo do modo de consentimento. Se preferir, use um modelo do modo de consentimento da Galeria de modelos da comunidade.
Se você usa a gtag.js, verifique se a tag do Google está instalada em todas as páginas do seu site. O código do modo de consentimento é adicionado a cada página do seu site.
Configurar o modo de consentimento
Para configurar o modo de consentimento, você precisa:- Antes de um usuário conceder consentimento: defina o estado de consentimento padrão.
- Atualizar o estado de consentimento com base na interação do usuário com suas definições de consentimento.
Definir o estado de consentimento padrão
Defina um valor padrão para cada tipo de consentimento que você usa. Por padrão, nenhum valor do modo de consentimento é definido.
Recomendamos definir o escopo das configurações padrão de consentimento como as regiões onde você mostra banners de consentimento para os visitantes. Isso ajuda a preservar a medição em regiões onde os banners de consentimento são obrigatórios e as tags do Google ajustam o comportamento de acordo com a necessidade. Você também evita a perda de medição onde não há banners de consentimento ou onde eles não se aplicam. Consulte Comportamento específico da região.
gtag.js
Para ajustar os recursos de medição padrão, chame o comando gtag('consent',
'default', ...) em todas as páginas do seu site antes de qualquer comando que envie dados de medição (como config ou event).
Por exemplo, para negar o consentimento a todos os parâmetros por padrão:
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
Opcional: integrar com plataformas assíncronas de gestão de consentimento
Se o banner for carregado de forma assíncrona, talvez ele não seja executado antes das suas tags do Google. Para lidar com essas situações, especifique wait_for_update com um valor em milissegundos para controlar quanto tempo é necessário esperar antes do envio dos dados.
Por exemplo, para negar ad_storage em uma página específica, mas permitir que sua CMP atualize o status de consentimento, use wait_for_update: No código a seguir, ad_storage é definido como denied por padrão, e a ferramenta de consentimento tem 500 milissegundos para chamar gtag('consent', 'update', ...) antes que as tags sejam disparadas:
gtag('consent', 'default', {
'ad_storage': 'denied',
'wait_for_update': 500
});
Gerenciador de tags
Ao usar o Gerenciador de tags do Google, crie seu próprio modelo com as APIs de consentimento do Gerenciador de tags. O exemplo a seguir está disponível como um ponto de partida para consulta.
Use as APIs específicas do Gerenciador de tags para gerenciar os estados de consentimento
setDefaultConsentState e updateConsentState. A API gtagSet pode ser usada para configurar o parâmetro ads_data_redaction e a transferência do URL conforme necessário.
Atualizar o estado de consentimento
gtag.js
Para enviar o status de consentimento do usuário, use o comando update. Como o modo de consentimento não salva as escolhas, atualize o status assim que o usuário interagir com sua solução de gestão de consentimento. Depois que o usuário der o consentimento, mantenha a escolha e chame o comando "update" conforme necessário nas páginas seguintes.
Você é responsável por garantir que os valores corretos sejam definidos para todos os tipos de consentimento. Para consultar todos os detalhes sobre os tipos aceitáveis, acesse a Referência da API.
Confira a seguir um exemplo de código que mostra como atualizar o status de consentimento para granted quando o usuário concorda com todas as opções:
<script>
function allConsentGranted() {
gtag('consent', 'update', {
'ad_user_data': 'granted',
'ad_personalization': 'granted',
'ad_storage': 'granted',
'analytics_storage': 'granted'
});
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
...
<button onclick="allConsentGranted()">Yes</button>
...
</body>
Gerenciador de tags
Quando você usa um modelo de modo de consentimento, o consentimento do usuário é atualizado automaticamente quando ele interage com o banner.
Se você criar um modelo do modo de consentimento, use as APIs específicas do Gerenciador de tags para gerenciar os estados de consentimento setDefaultConsentState e updateConsentState. A API gtagSet pode ser usada para configurar o parâmetro ads_data_redaction e a transferência do URL conforme necessário.
Exemplo de implementação
O exemplo a seguir define vários parâmetros do modo de consentimento como denied por padrão. Depois que um usuário indicar as escolhas, os parâmetros relevantes serão atualizados para granted.
gtag.js
A ordem do código é essencial. Quando o código de consentimento é chamado fora de ordem, seus padrões de consentimento não funcionam. Os requisitos variam dependendo de critérios específicos da empresa, mas o código deve ser executado na seguinte ordem:
Carregue a tag do Google. Esse é o código do snippet padrão. O snippet padrão precisa ser atualizado (confira abaixo) e passar a incluir uma chamada para
gtag('consent', 'default', ...).Carregue sua solução de consentimento. Se ela for carregada de maneira assíncrona, consulte Integrar com plataformas assíncronas de gerenciamento de consentimento para saber como garantir que essa ação ocorra na ordem correta.
Se a solução de consentimento não realizar o processamento, chame
gtag('consent', 'update', ...)depois que o usuário decidir sobre o consentimento.
<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=TAG_ID">
</script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'TAG_ID');
</script>
<!-- Create one update function for each consent parameter -->
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage">Yes</button>
...
</body>
Gerenciador de tags
Sites que usam o Gerenciador de tags devem atualizar as opções de consentimento do visitante usando uma CMP. As CMPs têm modelos na Galeria de modelos da comunidade para criar uma tag que gerencie o modo de consentimento.
Se não for possível usar um modelo, atualize o código na sua página seguindo as instruções. A ordem do código é essencial. Quando o código de consentimento é chamado fora de ordem, seus padrões de consentimento não funcionam.
<script>
// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
<!-- Create one update function for each consent parameter -->
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent functions when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage()">Yes</button>
...
</body>
Fazer upgrade para o modo de consentimento v2
Para oferecer um ecossistema de publicidade digital centrado na privacidade, o Google está reforçando a aplicação da nossa Política de consentimento de usuários da União Europeia.
Saiba mais sobre as atualizações no modo de consentimento para tráfego no Espaço Econômico Europeu (EEE).
Os usuários do modo de consentimento precisam enviar dois parâmetros além de ad_storage
e analytics_storage:
| Nome do campo | Valores permitidos | Descrição |
|---|---|---|
ad_user_data
|
'granted' | 'denied'
|
Define o consentimento para enviar ao Google dados do usuário relacionados a publicidade. |
ad_personalization
|
'granted' | 'denied'
|
Define o consentimento para veicular publicidade personalizada. |
Mais recursos do modo de consentimento
Os recursos de consentimento avançados incluem a capacidade de fazer o seguinte:
- Definir com quais Serviços do Google você compartilha dados usando a interface da tag do Google
- Definir o comportamento de uma região geográfica
- Transmitir informações de clique no anúncio, ID do cliente e ID da sessão nos URLs quando os usuários não autorizarem o uso de cookies
- Encobrir completamente (remover) as informações do anúncio quando os usuários negarem o consentimento para o uso de cookies de publicidade
Comportamento específico da região
Para definir estados de consentimento padrão usados com visitantes de áreas específicas, especifique uma região (de acordo com a ISO 3166-2) no comando padrão de consentimento da gtag. Com o uso de valores de região, é possível obedecer às regulamentações regionais.
É possível definir padrões para regiões específicas e um padrão diferente para todas as outras regiões. Um comando gtag consent default sem um parâmetro de região define o padrão para todos os visitantes não cobertos por outro comando específico da região.
gtag.js
O exemplo a seguir define analytics_storage como denied para usuários da Espanha e do Alasca, e ad_storage como denied para todos os usuários.
gtag('consent', 'default', { 'analytics_storage': 'denied', 'region': ['ES', 'US-AK'] }); gtag('consent', 'default', { 'ad_storage': 'denied' });
Gerenciador de tags
Se você estiver usando um modelo para criar sua tag, ele pode ter o controle para definir o comportamento específico da região. Se você estiver criando uma tag de modelo sem ajuda, consulte Criar um modelo do modo de consentimento para mais detalhes sobre a configuração do comportamento específico da região.
O parâmetro mais específico tem prioridade
Se dois comandos de consentimento padrão forem incluídos na mesma página com valores distintos para região e sub-região, o comando que tiver a região mais específica vai ter prioridade. Por exemplo, se ad_storage tiver sido definido como granted para a região US, e ad_storage como denied para a região US-CA, um visitante da Califórnia terá a configuração mais específica US-CA. Nesse exemplo, isso significa que um visitante de US-CA teria ad_storage definido como denied.
| Região | ad_storage |
Comportamento |
|---|---|---|
| Estados Unidos | 'granted' |
Aplica-se a usuários nos EUA que não estão na Califórnia. |
| US-CA | 'denied' |
Utilizado com usuários da região US-CA. |
| Não especificado | 'granted' |
Usa o valor padrão de 'granted'. No exemplo, isso se aplica a visitantes que não estão na região US ou US-CA.
|
Transmitir informações sobre clique no anúncio, IDs de clientes e IDs de sessões em URLs
Quando um usuário acessa seu site depois de clicar em um anúncio, as informações sobre esse anúncio podem ser anexadas aos URLs da página de destino como um parâmetro de consulta. Para melhorar a precisão dos eventos principais, essas informações são geralmente armazenadas em cookies primários no seu domínio.
No entanto, se ad_storage estiver definido como denied, essas informações serão armazenadas localmente. Para melhorar a qualidade da medição de cliques quando ad_storage for denied, você pode transmitir as informações sobre os cliques nos anúncios usando parâmetros de URL nas páginas com a transferência de URL.
Da mesma forma, se analytics_storage for definido como denied, a transferência de URL poderá ser usada para enviar análises baseadas em eventos e sessões (incluindo eventos principais) sem cookies em todas as páginas.
Para usar a transferência de URL, as seguintes condições precisam ser atendidas:
- Sua tag do Google reconhece o consentimento e aparece na página.
- O anunciante habilitou o recurso de transferência de URL.
- O modo de consentimento está implementado na página.
- O link de saída se refere ao mesmo domínio da página atual.
Há um GCLID ou DCLID presente no URL (somente tags do Google Ads e do Floodlight).
gtag.js
Para ativar esse recurso, defina o parâmetro url_passthrough como true.
Adicione o seguinte comando ao snippet padrão antes de qualquer comando config:
gtag('set', 'url_passthrough', true);
Gerenciador de tags
Se você estiver usando um modelo para criar sua tag, ele pode controlar a transmissão do URL. Se estiver criando uma tag de modelo sem ajuda, consulte Criar um modelo do modo de consentimento para saber mais detalhes sobre a configuração da transmissão de URL usando a API de modelo personalizado gtagSet.
Ou você pode usar as opções a seguir para fazer a configuração no Vinculador de conversões e/ou em tags de análise de dados.
Para tags do Google Ads e do Floodlight:
Para ativar esse recurso, use uma tag atual do Vinculador de conversões ou crie uma nova e verifique se a opção Ativar a vinculação em todos os URLs de páginas está marcada. Consulte a configuração básica, que traz instruções sobre como criar uma tag do Vinculador de conversões.
Para tags do Google Analytics:
No Gerenciador de tags, navegue até Campos a serem definidos e selecione **Configuração da tag
Campos a serem definidos".
- Quando a seção "Campos a serem definidos" abrir, clique em Adicionar linha.
- Em Nome do campo, insira
url_passthrough. - Para Valor, digite "true".
- Salve a tag e publique.
Como alternativa, você pode definir o parâmetro
url_passthroughcomotrueem todas as páginas do seu site antes do snippet de instalação do GTM.window.dataLayer = window.dataLayer || []; function gtag(){window.dataLayer.push(arguments);} gtag('set', 'url_passthrough', true);Ao usar a transferência de URL, alguns parâmetros de consulta são anexados aos links à medida que os usuários navegam pelas páginas do site:
gcliddclidgclsrc_glwbraid
Para alcançar melhores resultados, garanta que:
- Os redirecionamentos no seu site transmitirão todos os parâmetros de consulta acima.
- Suas ferramentas de análise vão ignorar esses parâmetros nos URLs da página.
- Esses parâmetros não causarão interferência no comportamento do site.
Editar dados de anúncios
Quando ad_storage for denied, não serão definidos novos cookies para fins de publicidade. Além disso, os cookies de terceiros definidos anteriormente em google.com e doubleclick.net não serão usados, exceto em caso de spam e fraude. Os dados enviados ao Google ainda vão conter o URL completo da página, incluindo as informações de clique no anúncio nos parâmetros de URL.
gtag.js
Para fazer ainda mais edições nos seus dados de anúncios quando ad_storage for denied, defina ads_data_redaction como true.
gtag('set', 'ads_data_redaction', true);
Quando ads_data_redaction for true e ad_storage for denied, os identificadores de cliques nos anúncios enviados nas solicitações de rede pelas tags do Google Ads e do Floodlight serão editados. As solicitações de rede também serão enviadas por um domínio sem cookies.
Gerenciador de tags
Se você estiver usando um modelo para criar sua tag, ele pode controlar a edição dos dados de anúncios. Se você estiver criando uma tag de modelo sem ajuda, consulte Criar um modelo do modo de consentimento para saber mais detalhes sobre como editar os dados dos anúncios.
Problemas comuns
O consentimento não é atualizado em uma página de transição
Ao implementar o modo de consentimento avançado, chame um comando de atualização na página em que o usuário dá o consentimento.
Quando uma página é carregada com consentimento negado e depois recarregada com consentimento concedido após uma mudança, as tags do Google podem perder pontos de dados importantes da página original. Os relatórios subsequentes podem estar incompletos.
Por exemplo, no Google Analytics, muitas sessões com consentimento podem não ter um evento session_start.
Para evitar esse problema, chame o comando de atualização sempre que o estado de consentimento de um usuário mudar.
Consentimento atualizado imediatamente antes da atualização da página
Em alguns casos, quando um tipo de consentimento é atualizado de negado para concedido, as tags do Google podem enviar medições com base nessa atualização. Se o comando de atualização for chamado quando a página for descarregada, o navegador poderá cancelar esse tráfego de rede antes da conclusão. Os relatórios subsequentes podem estar incompletos.
Se possível, verifique se os comandos de atualização são registrados bem antes do descarregamento da página.
Próximas etapas
Controles de tags legadas
Se você usa tags legadas, como ga.js, analytics.js ou conversion.js, atualize para a gtag.js ou o Gerenciador de tags do Google.
Para saber mais sobre os controles de privacidade de outras tags legadas, consulte a seguinte documentação: