Gerenciar configurações de consentimento (Web)

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.

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:

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'
});

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 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.

  • O método gtag('consent','update',...) não deve ser usado em vez de updateConsentState 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:

  1. 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', ...).

  2. 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.

  3. 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>

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.

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:

  1. No Gerenciador de tags, acesse Campos a serem definidos:
  2. Quando a seção "Campos a serem definidos" abrir, clique em Adicionar linha.
  3. 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.
  4. Para Valor, digite "true".
  5. 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:

  1. Os redirecionamentos no seu site transmitirão todos os parâmetros de consulta acima.
  2. Suas ferramentas de análise vão ignorar esses parâmetros nos URLs da página.
  3. 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.

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.

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:

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:

  1. 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 quanto url_passthrough são definidos de acordo com as configurações fornecidas pelo usuário.
    1. Na guia Rede:
    • Confira o parâmetro gcs= nos URLs para o estado de consentimento. O parâmetro gcs 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 de ad_storage e analytics_storage será um destes:
    Valor Significado
    G100 Consentimento negado para ad_storage e analytics_storage.
    G110 O consentimento foi dado para ad_storage e negado para analytics_storage.
    G101 O consentimento foi negado para ad_storage e dado para analytics_storage.
    G111 O consentimento foi dado para ad_storage e analytics_storage.
    G1-- O site não pediu o consentimento para ad_storage nem analytics_storage.
    • Confira se os domínios sem cookies (por exemplo, googlesyndication.com) são usados quando ads_data_redaction é definido como true.
    • Verifique se gclid/dclid está anexado aos URLs de saída quando url_passthrough está definido como true e se o parâmetro do vinculador _gl está presente (por exemplo, https://www.example.com/?_gl=1*abcde5*).

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: