Esta página é destinada aos desenvolvedores que usam tags do Google em um site e querem integrar o modo de consentimento a ele. Para uma introdução ao modo de consentimento, acesse Visão geral do modo de consentimento.
A forma como você ativa e usa o modo de consentimento depende da sua implementação para obter o consentimento e da plataforma de inclusão de tag usada: o Gerenciador de tags do Google (GTM) ou a tag do Google.
- Plataformas de gestão de consentimento (CMPs) que aceitam o modo de consentimento do Google fornecem:
- Modelos do Gerenciador de tags na Galeria de modelos da comunidade que você deve usar para criar tags e gerenciar o consentimento.
- O código JavaScript para sites que usam a gtag.js ao gerenciar o consentimento.
- Para implementações personalizadas e CMPs sem suporte ao modo de consentimento:
- Se você usa o GTM, recomendamos criar 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 a consulta.
- Se você usa a gtag.js, precisará adicionar manualmente o código de consentimento em cada página como comandos diretos ou em um snippet HTML personalizado.
Neste artigo, descrevemos as práticas recomendadas e damos exemplos de APIs. Consulte os links relacionados para mais informações.
Antes de começar
Considere o seguinte antes de implementar o modo de consentimento:
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 lugares onde esses banners são obrigatórios, e as tags do Google ajustam o comportamento à medida do necessário. 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.
Se você usa uma CMP, os comandos de atualização de consentimento precisam ser configurados para segmentar visitantes das mesmas regiões especificadas no comando de consentimento padrão. Com isso, os usuários vão poder atualizar o estado de consentimento se ele estiver definido como "negado" por padrão.
Se você cria seus próprios modelos ou tags HTML personalizadas, não há garantia de que os comandos executados em chamadas de retorno ou que usam
gtag()
vão estar disponíveis antes do disparo do próximo acionador. Para garantir que as informações de consentimento sejam disponibilizadas o mais rápido possível, use ou crie um modelo de tag que defina os estados de consentimento com as APIs de consentimento do Gerenciador de tags.
Acompanhamento do estado de consentimento
O estado de consentimento padrão deve ser definido imediatamente ao carregar a página de acordo com os padrões da sua organização. A CMP, ou solução personalizada de gerenciamento do consentimento, deve perguntar ao visitante se ele quer aceitar ou rejeitar os tipos de consentimento aplicáveis. Como o modo de consentimento não armazena as escolhas de consentimento, também é fundamental que a solução de gerenciamento de consentimento envie um comando "update" com base nas opções selecionadas pelo usuário assim que possível em todas as páginas, depois que o consentimento é dado.
gtag.js
As seções a seguir mostram exemplos de uso da gtag.js para:
- Definir padrões de consentimento
- Atualizar o estado de consentimento
- Integrar com plataformas assíncronas de gestão de consentimento
Definir padrões de consentimento
Recomendamos definir um valor padrão para cada tipo de consentimento que você usa. Os valores de estado de consentimento neste artigo são apenas exemplos. Você é responsável por garantir que o modo de consentimento esteja definido para cada um dos produtos de medição de acordo com a política da sua organização.
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 automaticamente vários tipos de consentimento, especifique os seguintes parâmetros consent
:
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
Atualizar o estado de consentimento
Quando os usuários especificam o consentimento ou mudam a escolha, atualize o status usando 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 autorização, mantenha a escolha e chame o comando "update" conforme necessário nas páginas seguintes.
No exemplo, apenas o valor ad_storage
mudou. Se analytics_storage
fosse definido como denied
, ele ainda seria negado depois da chamada. 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 permite cookies de publicidade:
<script>
function consentGrantedAdStorage() {
gtag('consent', 'update', {
'ad_storage': 'granted'
});
}
</script>
<!-- Invoke your consent function when a user interacts with your banner -->
<body>
...
<button onclick="consentGrantedAdStorage()">Yes</button>
...
</body>
Integrar com plataformas assíncronas de gestão de consentimento
Se a ferramenta de consentimento carregar de forma assíncrona, talvez ela não seja executada 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
Para implementações do Gerenciador de tags, recomendamos usar um modelo de modo de consentimento da Galeria de modelos da comunidade para gerenciar o consentimento. Leia o artigo Criar um modelo do modo de consentimento para saber como criar seu próprio modelo usando as APIs de consentimento do Gerenciador de tags.
Observações:
As implementações do modo de consentimento em sites que usam o GTM para inclusão de tags precisam utilizar as APIs específicas do GTM para gerenciar os estados
setDefaultConsentState
eupdateConsentState
. A APIgtagSet
pode ser usada para configurar o parâmetroads_data_redaction
e a transferência do URL conforme necessário.O método
gtag('consent','update',...)
não deve ser usado em vez deupdateConsentState
porque ele seria colocado na fila depois de todas as outras mensagens pendentes e talvez não fosse processado antes do início do próximo evento. Para mais detalhes, consulte Como as informações da camada de dados são processadas.
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 informar 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 seguro, o Google está aumentando as restrições da nossa Política de consentimento de usuários da União Europeia.
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. |
Recursos de consentimento avançados
Os recursos de consentimento avançados incluem a capacidade de fazer o seguinte:
- 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 mudar o comportamento padrão das tags para usuários de determinadas regiões, especifique cada região no comando "consent". Quando você informa o valor da região, é possível ajustar os padrões com base na localização geográfica das pessoas. Em IDs geográficos, confira detalhes sobre as regiões de identificaçã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 cliques em anúncios, 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 das conversões, essas informações são geralmente armazenadas em cookies 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 conversões) 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
:
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, acesse Campos a serem definidos:
- Para tags do Google Analytics: configuração do GA4, selecione Configuração da tag > Campos a serem definidos.
- Para tags do Google Analytics: Universal Analytics, use uma variável de configurações do Google Analytics e selecione Configuração da variável > Mais configurações > Campos a serem definidos.
- Quando a seção "Campos a serem definidos" abrir, clique em Adicionar linha.
- Em Nome do campo, insira o valor correto:
- Para tags de Google Analytics: configuração do GA4, insira
url_passthrough
. - Para tags do Google Analytics: Universal Analytics que usam as variáveis de configuração do Google Analytics, insira
urlPassthrough
.
- Para tags de Google Analytics: configuração do GA4, insira
- Para Valor, digite "true".
- Salve e publique a tag.
Como alternativa, você pode definir o parâmetro url_passthrough
como true
em 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:
gclid
dclid
gclsrc
_gl
wbraid
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.
Recursos para configuração de consentimento no Gerenciador de tags do Google
O Gerenciador de tags inclui vários recursos que funcionam em conjunto para ajudar você a gerenciar o comportamento das tags em resposta às configurações de consentimento. Ele tem um acionador de inicialização de consentimento, configurações de tag para gestão de consentimento e uma página "Visão geral do consentimento". Vários provedores de gerenciamento de terceiros criaram integrações com o modo de consentimento nos produtos deles. Saiba mais sobre os recursos de consentimento do Gerenciador de tags.
Verificar configurações de consentimento
Para verificar e depurar a configuração do seu modo de consentimento, recomendamos usar o Assistente de tags. O Assistente de tags mostra se e como o estado de consentimento está sendo definido e atualizado. O Assistente de tags oferece suporte ao seguinte:
- Comandos de consentimento da gtag
- Uma tag criada com base em um modelo de modo de consentimento do Gerenciador de tags
- Estrutura de Transparência e Consentimento (TCF)
Saiba mais sobre a Depuração de modo de consentimento do Assistente de tags.
Se você não usa um modelo de modo de consentimento, pode analisar suas configurações de consentimento com as ferramentas para desenvolvedores do navegador.
Para analisar suas configurações de consentimento:
Na guia Elementos, digite
dataLayer
na barra de pesquisa. Confirme os seguintes dados:- O comando
default
vem antes de todos os outros eventos do Google. - Os estados de consentimento são definidos de acordo com a interação do usuário e com o comando
update
. - As tags são disparadas só quando as configurações de consentimento necessárias são definidas.
- Tanto
ads_data_redaction
quantourl_passthrough
são definidos de acordo com as configurações fornecidas pelo usuário.
- Na guia Rede:
- Confira o parâmetro
gcs=
nos URLs para o estado de consentimento. O parâmetrogcs
tem o seguinte formato:gcs=G1 [ad_storage][analytics_storage]
. - Verifique os valores certos do parâmetro
gcs=
com base no consentimento dado. O valor dead_storage
eanalytics_storage
será um destes:
Valor Significado G100 Consentimento negado para ad_storage
eanalytics_storage
.G110 O consentimento foi dado para ad_storage
e negado paraanalytics_storage
.G101 O consentimento foi negado para ad_storage
e dado paraanalytics_storage
.G111 O consentimento foi dado para ad_storage
eanalytics_storage
.G1-- O site não pediu o consentimento para ad_storage
nemanalytics_storage
.- Confira se os domínios sem cookies (por exemplo, googlesyndication.com) são usados quando
ads_data_redaction
é definido comotrue
. - Verifique se
gclid
/dclid
está anexado aos URLs de saída quandourl_passthrough
está definido comotrue
e se o parâmetro do vinculador_gl
está presente (por exemplo,https://www.example.com/?_gl=1*abcde5*
).
- O comando
Controles de tags legadas
Se você usa tags legadas, como ga.js, analytics.js ou conversion.js, é necessário atualizar 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: