Como Implementar o Google Consent Mode v2

Chamadas gtag() exatas, estado padrão negado, triggers de atualização e mapeamento de categorias LGPD para sinais GCM v2 — com snippets prontos para sites brasileiros.

Como implementar o Google Consent Mode v2 no Brasil?

Dispare a chamada padrão de forma síncrona antes de qualquer tag do Google carregar. Coloque gtag('consent', 'default', {...}) como o primeiro script no <head> — antes do GTM, antes do GA4, antes de qualquer tag do Google. Defina todos os sinais como 'denied' por padrão. Em seguida, após o visitante aceitar via banner de consentimento, chame gtag('consent', 'update', {...}) apenas com os sinais autorizados.

Pela LGPD, o consentimento para analytics e marketing é opt-in — o estado padrão negado não é opcional. Visitantes brasileiros que recusam não devem ser rastreados. O parâmetro wait_for_update instrui as tags do Google a aguardarem até 500ms para que o consentimento armazenado de um visitante recorrente carregue antes de disparar em modo restrito.

Snippet padrão pronto para copiar

Cole este código antes da sua tag GTM ou GA4 — não depois, não dentro do GTM. Este código deve ser síncrono, não assíncrono.

<!-- Passo 1: inicialização do dataLayer — deve ser o PRIMEIRO -->
<script>
    window.dataLayer = window.dataLayer || [];
    function gtag() { dataLayer.push(arguments); }

    // Padrão: tudo negado — LGPD exige opt-in
    gtag('consent', 'default', {
        ad_storage:              'denied',
        analytics_storage:       'denied',
        ad_user_data:            'denied',
        ad_personalization:      'denied',
        functionality_storage:   'denied',
        personalization_storage: 'denied',
        security_storage:        'granted', // sempre granted (Essencial)
        wait_for_update:         500          // ms para aguardar consentimento de visitante recorrente
    });
</script>

<!-- Passo 2: CookieFácil — dispara o update após o banner -->
<script data-cfasync="false"
        src="https://cdn.cookiefacil.com.br/cdn/cf-banner.min.js?site=SEU_SITE_ID"></script>

<!-- Passo 3: GTM — carregado após o gerenciador de consentimento -->
<script async src="https://www.googletagmanager.com/gtm.js?id=GTM-XXXXX"></script>

O CookieFácil dispara a chamada update automaticamente após o visitante aceitar. Você não precisa escrever a chamada de atualização manualmente.

Mapeamento: categorias LGPD → sinais GCM v2

Quando um visitante consente com uma categoria no banner, esses sinais são atualizados para 'granted'.

Categoria LGPD Sinal(is) Google Consent Mode v2 Estado padrão
Essencial security_storage Sempre granted
Analytics analytics_storage denied até opt-in
Marketing ad_storage, ad_user_data, ad_personalization denied até opt-in
Funcional functionality_storage, personalization_storage denied até opt-in

A chamada de atualização (implementação manual)

Se você não estiver usando o CookieFácil, dispare este código após o visitante aceitar.

// Dispare após o visitante aceitar — o CookieFácil faz isso automaticamente
document.addEventListener('cf:consent', function(e) {
    const { analytics, marketing, functional } = e.detail;

    gtag('consent', 'update', {
        analytics_storage:       analytics  ? 'granted' : 'denied',
        ad_storage:              marketing  ? 'granted' : 'denied',
        ad_user_data:            marketing  ? 'granted' : 'denied',
        ad_personalization:      marketing  ? 'granted' : 'denied',
        functionality_storage:   functional ? 'granted' : 'denied',
        personalization_storage: functional ? 'granted' : 'denied',
    });
});

O CookieFácil dispara essa chamada de atualização automaticamente. A versão manual acima é para equipes que constroem sua própria interface de consentimento e querem integrar com o GCM v2.

Configuração no Google Tag Manager

O erro mais comum: usar All Pages como trigger para a tag da CMP. Use sempre Inicialização de consentimento.

✓ Correto — Inicialização de consentimento

No GTM, vá em Acionadores → Novo → Tipo: Inicialização de consentimento. Nomeie como Consent Initialization – All Pages. Use este trigger exclusivamente para a tag da CMP.

Este trigger dispara durante o evento gtm.init_consent, antes de qualquer outra tag. Garante que gtag('consent','default') seja definido antes que as tags de rastreamento sejam avaliadas.

✗ Incorreto — All Pages

O trigger All Pages dispara no evento gtm.js, após a fase de inicialização de consentimento. A API setDefaultConsentState só funciona durante gtm.init_consent.

Usar All Pages resulta em uma exceção silenciosa e as tags de rastreamento disparam sem aguardar o consentimento — violando a LGPD e perdendo os benefícios do GCM v2.

Escolha o plano certo para o seu site

Comece gratuitamente e escale conforme o seu volume de consentimentos. Faturado em BRL — sem cartão de crédito para começar.

Grátis

Para começar a recolher consentimentos


  • 1 site · 1.000 visitantes/mês

  • Banner de cookies — RGPD + LGPD incluído

  • Relatórios básicos de consentimento

Começar grátis
Mais popular

Básico

Para empresas em crescimento


  • 2 sites · 5.000 visitantes/mês

  • Exportação CSV de registos de consentimento

  • Remover marca CookieFácil

Começar agora

Profissional

Para múltiplos sites e agências


  • 5 sites · 50.000 visitantes/mês

  • CSV + PDF + relatórios avançados

  • CSS personalizado e regras geográficas

Começar agora

Perguntas frequentes

  • Como implementar o Google Consent Mode v2 no Brasil?

    Cole gtag('consent', 'default', {...}) de forma síncrona antes de qualquer tag do Google, com todos os sinais como 'denied'. Após o visitante aceitar via banner, chame gtag('consent', 'update', {...}) com os sinais autorizados. Use wait_for_update: 500 para que o consentimento armazenado de visitantes recorrentes carregue antes de as tags dispararem.

  • O Google Consent Mode v2 é obrigatório pela LGPD?

    A LGPD não exige o GCM v2 diretamente, mas sem ele o Google Ads e o GA4 operam em modo restrito após o bloqueio de cookies — perdendo até 40% dos dados de conversão. O GCM v2 usa modelagem estatística para estimar conversões de usuários que recusaram, preservando a utilidade das campanhas sem violar a privacidade.

  • O que é wait_for_update no Google Consent Mode v2?

    wait_for_update instrui as tags do Google a aguardarem até N milissegundos por uma atualização de consentimento antes de disparar em modo restrito. Configure como 500ms — tempo suficiente para o banner carregar e enviar o sinal de atualização se um visitante recorrente já tem uma decisão armazenada.

  • Quais sinais GCM v2 correspondem a quais categorias LGPD?

    analytics_storage → categoria Analytics. ad_storage + ad_user_data + ad_personalization → categoria Marketing. functionality_storage + personalization_storage → categoria Funcional. security_storage → sempre granted (Essencial).

  • Como verificar se o Google Consent Mode v2 está funcionando?

    Use a extensão Tag Assistant do Google Chrome. As tags de rastreamento devem aparecer como "Aguardando consentimento" antes da interação e "Concluída" após aceitar. Você também pode usar a ferramenta gratuita de verificação para checar qualquer site em segundos.

  • Qual a diferença entre modo Basic e Advanced do GCM v2?

    No modo Basic, as tags do Google só disparam após o consentimento. No modo Advanced, as tags disparam sem cookies quando o consentimento é negado, enviando pings anônimos para modelagem estatística. O modo Advanced preserva mais dados de marketing sem comprometer a privacidade. O CookieFácil implementa o modo Advanced por padrão.