Feito com Chinaski

Integração com Google Tag Manager

O Google Tag Manager é o segundo dos dois slots de análise em Settings → Integrations. Cole o seu container ID, reconstrua o site, e cada página carrega o loader GTM padrão do Google mais um portão de consentimento garantidamente seguro, sem tags rodando antes que o seu visitante realmente tenha interagido (ou consentido, se o seu banner de cookies estiver ligado).

Configurando

  1. No Google Tag Manager, crie o contêiner do tipo web e anote o ID dele; ele parece com GTM-XXXXXXX.
  2. No Chinaski, vá para Settings → Integrations → Analytics, cole o container ID em GTM container ID, salve e reconstrua.

Pronto: a partir do próximo build, o script padrão de bootstrap do GTM (gtm.js?id=<your-container>) faz parte do <head> de cada página construída, inicializado com o dataLayer vazio padrão. Tags, triggers e variáveis vivem todos no contêiner: o CMS apenas o carrega.

Deixe o campo em branco e nada é emitido: a saída do site sem scripts, como entregue, permanece como está (e a dica "Injected into every page at build time" no campo é todo o contrato).

Como o carregamento se comporta

O loader injetado é deliberadamente adiado, por privacidade e velocidade de página:

  • Sem carregamento em visitas ociosas: o script do contêiner é buscado somente quando o visitante faz algo: clica, rola, pressiona uma tecla ou toca na tela. O listener é de uso único; depois da primeira interação tudo prossegue normalmente.
  • Respeita o cookie notice: com o banner de cookies do site ativo, o loader espera por cookie_consent=1 antes de contatar o Google, e também honra um cookie de recusa explícito mesmo quando o banner está desabilitado. Consentimento já dado no carregamento da página inicia o loader imediatamente.
  • Como o loader está no <head>, o dataLayer é criado antes de qualquer script do corpo: tags do contêiner que leem dados empurrados (um nome de idioma, um nome de seção) funcionam como de costume.

Consequência prática que vale conhecer: os hits de "page view" para um trigger de contêiner disparam na primeira interação (ou imediatamente para visitantes recorrentes que consentiram), não no download inicial do HTML. Ajuste as suas expectativas de relatórios GA/GTM para isso.

A relação com o GA4

Um loader de análise por página, sempre:

  • GTM ID preenchido → o GTM é o rastreador. O loader do gtag.js é ignorado mesmo que um ID do GA4 também esteja presente, então a duplicação de rastreamento por dois caminhos não pode acontecer. Gerencie suas tags GA4 dentro do contêiner e deixe o outro campo em branco.
  • Os campos existem como interruptores separados de propósito: o GTM é para equipes que gerenciam tags no contêiner; o GA4 direto é a rota rápida. Ambos em branco = nenhum script do Google.

Do que você não precisa se preocupar

  • Sem ida e volta ao servidor. O tráfego chega ao Google apenas pelo navegador do visitante; o CMS nunca faz proxy, armazena ou valida o payload.
  • Sem escaping necessário do seu lado: o container ID é sanitizado ao ser escrito na página construída, e o loader nunca rastreia ninguém antes de um evento de consentimento aceito.
  • Outras tags ficam fora do loader. Este campo carrega um contêiner; qualquer outra coisa que você queira (Meta, Plausible, JSON personalizado) pertence ao sistema Snippets, que também lida com as regras de ordem de casos e de servidor de privacidade.

Modo air-gap

Em um host isolado este painel desliga com um banner de explicação ("External analytics scripts (GA4, GTM) are disabled and will not be emitted in builds"), o campo fica somente leitura, e o próprio build descarta o container ID da memória para que nenhum build, agendado ou manual, possa chamar o Google, de forma consistente com a garantia de sem saída do CHINASKI_AIRGAP. O ID armazenado permanece nas configurações para quando você reabilitar.

Solução de problemas

  • Sem script GTM na página construída: o campo está em branco, o modo air-gap está ligado, ou você não reconstruiu desde o salvamento. Confira o código-fonte da página por gtm.js?id=.
  • Tags não disparam embora o loader esteja presente: lembre-se de que o loader espera a primeira interação (ou consentimento). Teste clicando em qualquer lugar da página e observando gtm.js na aba de rede.
  • O loader do GA4 carrega mas as análises passam pelo GTM depois: você definiu os dois IDs; pela regra de precedência, o GTM vence. Mova suas tags GA4 para o contêiner, ou limpe o campo GTM e use o campo GA4 direto em vez disso.
  • Container ID com aparência errada: o campo é texto livre. Cole exatamente GTM- + o seu container ID; não há verificação de formato, e a única consequência é uma requisição inofensiva de script ausente.

A versão curta

Cole o container ID em Settings → Integrations, reconstrua, e cada página silenciosamente entrega o bootstrap do GTM: carregado somente após a primeira interação (e após o consentimento, se você usa o banner de cookies), com o campo GA4 ignorado enquanto um contêiner domina o rastreamento, e nada no modo air-gap.

Leia este site em