Um relatório de GA4 pode estar bonito e errado ao mesmo tempo. A receita difere 7% da loja, o canal Direct cresce sem campanha que o explique e a taxa de conversão muda sem mudança no site. Ninguém desconfia até a hora de decidir verba.
Auditar o GA4 é verificar, com critério repetível, se cada número tem origem conhecida. Não é revisar relatórios. É revisar o que vem antes: configuração, tags, eventos, atribuição, consentimento e limites do próprio produto.
Este guia traz um checklist em 10 passos, uma nota de 0 a 100 e um método de reconciliação pedido a pedido com a loja. Os fatos sobre o produto vêm da documentação oficial do Google. A nota e as tolerâncias são recomendação da Analytikos, sempre identificadas. Os números dos exemplos são hipotéticos, didáticos. A lógica é a mesma que o Google pede ao conteúdo no framework EEAT: confiança vem de evidência verificável.
Passo 1: configuração da propriedade
Comece por Admin. Dados confiáveis, aqui, significam completos, sem duplicidade, bem atribuídos e reconciliáveis com a loja. Erros de configuração contaminam o histórico inteiro. Fuso e moeda ficam em Property details e exigem papel de Editor, segundo a ajuda do Google Analytics.
Para uma loja brasileira, o esperado é horário de Brasília e BRL. A documentação não descreve o efeito da troca sobre dados antigos. Recomendação da Analytikos: registre a data de qualquer mudança e compare períodos com cautela.
A retenção de dados de usuário e de eventos-chave tem duas opções: 2 ou 14 meses (a versão 360 inclui 26, 38 e 50 para outros eventos). Ela afeta Explorações e funis, não os relatórios padrão. Recomendação: 14 meses.
O Google signals acrescenta dados de usuários logados com personalização de anúncios e a visão entre dispositivos. A identidade de relatório define quem é um usuário: Blended usa User-ID, depois ID do dispositivo, depois modelagem; Observed usa User-ID e depois ID do dispositivo; Device-based usa só o ID do dispositivo. Mais em usuários no GA4.
Filtros de dados valem só dali em diante, e a exclusão é permanente: segundo a documentação de filtros, o dado excluído nunca estará disponível no GA4 nem no BigQuery. O filtro de hostname oferece Exclude e Include only (o mais próximo de uma lista de permissão), com correspondência exata, começa com, termina com e contém. Use o estado Testing, valide em uma exploração com a dimensão Test data filter name e só então ative (24 a 36 horas em cada etapa). Em e-commerce, permita só o domínio da loja e do checkout, e elimine staging e cópias do site.
Se o checkout está em outro domínio, configure a medição entre domínios. Sem ela, cada domínio raiz cria novos cookies e uma pessoa vira dois usuários e duas sessões (veja sessões do GA4). O parâmetro _gl carrega os identificadores, e redirecionamentos que descartam parâmetros podem removê-lo. Para gateways e bancos que devolvem o cliente à loja, use as referências indesejadas (até 50 por fluxo).
| Item | O que verificar | Sinal de problema |
|---|---|---|
| Fuso, moeda, retenção | Brasília, BRL, 14 meses | Receita em USD, retenção de 2 meses |
| Filtros | Interno e desenvolvedor, em Testing e depois Active | Equipe entre as páginas mais vistas |
| Hostname | Include only com loja e checkout | Hostnames de staging nos relatórios |
| Cross-domain e referências | Checkout listado, _gl na URL, gateways excluídos | Gateway como origem de venda |
Passo 2: fluxo de dados e tags duplicadas
Tag duplicada é a causa mais comum de métrica inflada. O Google documenta, para lojas Shopify, que uma ação pode ser contada mais de uma vez com várias tags do Google, ou quando o rastreamento já existia antes do app Google & YouTube. O guia do Merchant Center manda abrir o Tag Assistant e revisar a aba Hits sent. O método vale para qualquer plataforma.
- Liste as tags do Google presentes (GTM, tema, app, plugin).
- Confirme um único ID de medição G- por fluxo, ou justifique cada um.
- Conte quantos
page_viewepurchasesaem por carregamento. - Teste sem bloqueador.
Exemplo hipotético: 100.000 visualizações reais, duas tags ativas. O GA4 registra 100.000 × 2 = 200.000 eventos page_view. Páginas por sessão dobram, e a taxa de engajamento muda sem motivo real.
Se a conversão passa pelo GTM, revise também o fluxo de criação de tags, como no assistente descrito em GTM ganha Guided Setup para conversões do Google Ads.

Passo 3: eventos e e-commerce
O purchase é o centro da auditoria. A documentação para desenvolvedores mostra os parâmetros transaction_id, value, tax, shipping, currency, coupon e items.
transaction_id: único, dinâmico e nunca vazio
Segundo a ajuda sobre e-commerce, o GA4 deduplica purchase com o mesmo transaction_id, só em fluxos web. O ID deve ser único por pedido e nunca vazio: com transaction_id="", todos os eventos são deduplicados em um. Se o mesmo ID vai para transações diferentes, as conversões podem ser muito subcontadas.
Exemplo hipotético: 50 pedidos no dia, todos com ID vazio. O GA4 enxerga 1. A subcontagem é (50 − 1) ÷ 50 = 98%. Confirme no código-fonte da confirmação que o ID é o número do pedido, e não o texto do template.
Valor e moeda
A documentação não diz se frete e imposto entram em value. Defina a regra e documente.
Exemplo hipotético: pedido de R$ 259,90 (produtos R$ 229,90 e frete R$ 30,00). Se o GA4 envia 229,90 e a loja reporta 259,90, a diferença é 30,00 ÷ 259,90 = 11,5% por pedido. Em 200 pedidos iguais, R$ 6.000 de diferença sistemática, sem erro de tag. Alinhe a definição dos dois lados e confira se value bate com a soma de preço × quantidade em items, menos desconto.
Passo 4: eventos-chave
Eventos-chave são eventos marcados como importantes para o negócio. A página de marcação informa que purchase vem marcado por padrão, que propriedades padrão aceitam até 30 (50 no 360) e que a marcação só afeta relatórios dali em diante.
O método de contagem também muda o número: uma vez por evento (recomendado) ou uma vez por sessão (legado). Cinco disparos na sessão contam 5 no primeiro e 1 no segundo. Metas migradas do Universal Analytics podem ter ficado no legado.
Pergunte: os eventos marcados sustentam decisão? As conversões importadas para o Google Ads não duplicam a tag nativa?
Passo 5: UTM, canais e o Direct inflado
O Google manda usar sempre utm_source, utm_medium e utm_campaign, e recomenda utm_id e utm_source_platform. Segundo a página de URLs personalizadas, parâmetros ausentes geram (not set), e os valores diferenciam maiúsculas: Meta e meta são linhas separadas.
Pela definição dos canais padrão, Direct é a sessão com origem exatamente (direct) e meio (not set) ou (none). É o que sobra quando o GA4 não sabe a origem. Causas comuns no Brasil: links de WhatsApp e e-mail sem UTM, redirecionamentos que descartam parâmetros, retorno de gateway sem exclusão e checkout em outro domínio sem cross-domain. Com Google Ads vinculado, o GCLID define a origem, e a ajuda sobre rastreamento explica que, sem ele, o GA4 usa só as UTMs.
Teste de sanidade (Analytikos): some Direct e Unassigned sobre o total de sessões. Hipotético: 18.000 ÷ 60.000 = 30%. Se no mês anterior eram 22% e a mídia não mudou, o salto indica perda de UTM, não marca mais forte.
Passo 6: consent mode e dados modelados
Na LGPD, o consentimento é uma das bases legais, e a decisão jurídica cabe à loja. Para a auditoria, importa o efeito técnico: sem consentimento, parte dos eventos não chega e o GA4 pode estimar o que falta.
A modelagem comportamental exige consent mode em todas as páginas, tags carregando antes da caixa de consentimento, ao menos 1.000 eventos por dia com analytics_storage negado por 7 dias e 1.000 usuários diários com consentimento em 7 dos 28 dias anteriores. Cumprir os números não garante a elegibilidade. A modelagem estima usuários e sessões, não contagens como page_view, e só aparece com identidade Blended.
Hipotético: loja com 300 usuários diários com consentimento fica abaixo de 1.000, e não há modelagem. O número do GA4 é só o observado. E, segundo a ajuda do DebugView, eventos não aparecem sem consentimento, o que parece falha de tag e não é.

Passo 7: cardinalidade, (other), amostragem e thresholds
Cardinalidade é o número de valores únicos de uma dimensão. Pela página de cardinalidade, mais de 500 valores únicos em um dia caracteriza alta cardinalidade e aumenta o risco de o excedente cair na linha (other). Há também um limite de 50.000 valores, a partir do qual o controle é aplicado.
Hipotético: um parâmetro com o número do pedido, 800 pedidos por dia, tem 800 valores únicos. Relatórios com ele passam a exibir (other). Query strings em page_location têm o mesmo efeito. Identificadores únicos pertencem ao BigQuery.
Thresholds são limites do sistema, não ajustáveis, que ocultam dados para evitar identificar usuários. A página de thresholds sugere ampliar o período. O indicador de qualidade de dados mostra se o relatório está sem amostragem, com threshold ou amostrado (o exemplo do Google exibe 8,88% dos dados, e números individuais ficam menos precisos). Registre quais relatórios decisivos têm o aviso.
Passo 8: integrações com Ads, Search Console e BigQuery
No vínculo com o Google Ads, confirme auto-tagging ligado e conversões importadas sem duplicidade. Sem o vínculo, o tráfego aparece como google/cpc, mas fora da atribuição dos canais pagos do Google. Remover o vínculo faz as dimensões novas virarem (not set). Dados do Ads levam até 48 horas para aparecer.
O Search Console exige papel de Editor e propriedade verificada, liga um fluxo web a uma propriedade e não pode ser editado. Os dados chegam com 48 horas de atraso e cobrem até 16 meses.
A exportação para o BigQuery tem limite diário de 1 milhão de eventos em propriedades padrão (20 bilhões no 360). Hipotético: 40.000 sessões × 25 eventos = 1.000.000, exatamente o teto. Acompanhe o volume diário. O Google não exporta dados do Google signals, então contagens por usuário podem divergir.
Passo 9: reconciliação pedido a pedido com a loja
Reconciliar é o teste final. Somar totais esconde erros que se anulam. Procedimento recomendado pela Analytikos:
- Exporte da loja os pedidos pagos, com número, valor, status e meio de pagamento.
- Exporte do GA4 (ou do BigQuery) as transações com
transaction_ide valor. - Cruze pelo número do pedido: nos dois, só na loja, só no GA4.
- Classifique a causa: Pix pago fora da sessão, consentimento negado, bloqueador, cancelamento, teste, duplicidade, valor diferente.
Exemplo hipotético de 30 dias, com a conta explícita:
| Métrica | Loja (pedidos pagos) | GA4 | Diferença |
|---|---|---|---|
| Pedidos | 200 | 190 | 10 (10 ÷ 200 = 5,0%) |
| Receita | R$ 48.000 | R$ 44.650 | R$ 3.350 (3.350 ÷ 48.000 = 7,0%) |
| Ticket médio | R$ 240,00 (48.000 ÷ 200) | R$ 235,00 (44.650 ÷ 190) | R$ 5,00 |
No cruzamento, 186 pedidos estão nos dois lados, 14 só na loja e 4 só no GA4. Conferência: 186 + 14 = 200 e 186 + 4 = 190. Os 14 só na loja costumam ser Pix confirmado depois de o cliente fechar a página, ou cookies negados. Os 4 só no GA4, pedidos de teste ou cancelados depois.
Tolerância (recomendação da Analytikos, não é padrão do Google): diferença estável entre 5% e 10% é comum quando as causas são conhecidas. Acima disso, ou instável, indica falha de coleta. Veja também o impacto da fricção no checkout.
Passo 10: DebugView e Tag Assistant
O DebugView mostra eventos dos últimos 60 segundos e 30 minutos, com parâmetros. Ative pelo Tag Assistant, pelo modo de visualização do GTM ou com debug_mode: true. Para desligar, remova o parâmetro: false não desativa. A atribuição ali é limitada: confirme a origem nos relatórios de aquisição.
- Faça um pedido de teste com UTMs na URL.
- Confirme a sequência
view_item,add_to_cart,begin_checkout,purchase. - Abra o
purchasee confiratransaction_id,value,currencyeitems. - Recarregue a confirmação e verifique que o pedido não conta duas vezes.
Como pontuar a auditoria: nota de 0 a 100
A nota é recomendação da Analytikos, não padrão do Google. O peso maior vai ao e-commerce, porque erro de receita contamina o resto.
Pesos da nota de auditoria de GA4
Pontos máximos por bloco. Soma: 100.
Cálculo: 25 + 15 + 15 + 10 + 10 + 10 + 10 + 5 = 100.
Imagem: Analytikos
O gráfico mostra que a receita vale um quarto da nota. Cada bloco recebe o peso multiplicado pela proporção de itens do checklist que passam. Exemplo hipotético de uma loja:
| Bloco | Peso | Obtido | Aproveitamento |
|---|---|---|---|
| Configuração | 10 | 8 | 80% |
| Coleta e tags | 15 | 12 | 80% |
| E-commerce e receita | 25 | 15 | 60% |
| Eventos-chave | 10 | 10 | 100% |
| UTM e canais | 15 | 9 | 60% |
| Consentimento | 10 | 6 | 60% |
| Limites e relatórios | 5 | 4 | 80% |
| Integrações | 10 | 8 | 80% |
| Total | 100 | 72 | 72% |
Soma: 8 + 12 + 15 + 10 + 9 + 6 + 4 + 8 = 72. A loja tem configuração razoável e dois pontos fracos: receita e atribuição.
| Nota | Leitura |
|---|---|
| 90 a 100 | Confiável: decidir e manter a cadência |
| 75 a 89 | Usável com ressalvas: corrigir blocos abaixo de 80% em 30 dias |
| 60 a 74 | Risco: corrigir antes de redistribuir verba |
| Abaixo de 60 | Não decidir com base no GA4: plano de correção e nova auditoria |
Regra de teto: se o e-commerce ficar abaixo de 70% do peso (menos de 17,5 de 25), a nota não passa de 74. No exemplo, 15 ÷ 25 = 60%, então o teto vale.
Cadência
Recomendação da Analytikos: conferência semanal de pedidos e receita (15 a 30 minutos), reconciliação mensal pedido a pedido, checklist completo por trimestre e novo teste de compra a cada mudança de tema, checkout, app de pagamento, GTM ou banner de cookies. A maioria das quebras acontece depois de uma atualização do site, não por causa do GA4.
Erros comuns na auditoria de GA4
Configuração e coleta
1. transaction_id vazio ou fixo. O template do dataLayer não foi preenchido. O GA4 colapsa os pedidos em um (50 viram 1, subcontagem de 98%). Valide no código-fonte.
2. Duas tags de GA4. Tema, app e GTM carregam o mesmo ID. Eventos dobram (100.000 viram 200.000). Use o Tag Assistant e remova a extra.
3. Filtro de exclusão sem teste. O efeito é permanente e não retroativo. Um hostname errado apaga a coleta da loja real. Use Testing por 24 a 36 horas.
4. Checkout sem cross-domain. O checkout vira outro usuário e a venda vai para o gateway ou para Direct. Liste o domínio e confira o _gl.
Interpretação
5. Comparar só totais com a loja. Erros que se anulam ficam invisíveis. Reconcilie pedido a pedido.
6. Ler Direct como força de marca. Se sobe de 22% para 30% sem mudança de mídia, o provável é perda de UTM. Padronize UTMs e exclua gateways.
7. Ignorar o método de contagem. Meta migrada conta 1 por sessão, evento novo conta por evento. A comparação gera diferença artificial. Documente o método.
8. Decidir com relatório amostrado. Uma exploração com 8,88% dos dados não sustenta decisão fina. Amplie o período ou use o BigQuery.
Operação
9. Dimensão com ID único. Com 800 valores por dia, passa de 500 e gera (other). Mantenha o identificador no BigQuery.
10. UTMs com caixa mista. A campanha se divide em duas linhas, e o ROAS de cada uma usa só parte da receita. Padronize em minúsculas.
11. Ignorar o limite do BigQuery. Em pico de campanha, passa-se do milhão de eventos diários documentado. Monitore o volume e filtre eventos inúteis.
12. Mudar fuso ou moeda sem registro. A comparação entre períodos fica ambígua. Anote a data da mudança.
Checklist de auditoria de GA4
- Brasília, BRL, retenção de 14 meses, identidade de relatório documentada.
- Filtros interno e desenvolvedor ativos após Testing; hostname com loja e checkout.
- Cross-domain com
_glpresente; gateways nas referências indesejadas. - Uma tag de GA4 por fluxo, confirmada no Tag Assistant.
purchasecomtransaction_idreal,value,currencyeitemscorretos; regra de frete documentada.- Eventos-chave úteis e método de contagem conhecido.
- UTMs em minúsculas com os três parâmetros; Direct e Unassigned no patamar histórico.
- Consent mode testado e elegibilidade à modelagem verificada.
- Sem alta cardinalidade; indicador de qualidade verificado.
- Vínculos com Ads, Search Console e BigQuery ativos.
- Reconciliação do último mês dentro da tolerância.
- Teste de compra no DebugView após a última mudança no site.
Perguntas frequentes
Quanto de diferença entre GA4 e a loja é normal?
Não há número oficial do Google. Na prática da Analytikos, uma diferença estável de 5% a 10% é comum quando as causas são conhecidas, como Pix confirmado fora da sessão e consentimento negado. Acima disso, ou instável, investigue a coleta.
O GA4 remove compras duplicadas sozinho?
Em fluxos web, deduplica purchase com o mesmo transaction_id, conforme a ajuda do Google. Não funciona em apps e depende de um ID real: se vier vazio, todos os pedidos são tratados como o mesmo.
Por que o Direct está tão alto?
Direct é o que sobra quando o GA4 não identifica a origem. Links de WhatsApp e e-mail sem UTM, redirecionamentos que perdem parâmetros e retornos de gateway sem exclusão são as causas mais comuns.
Quantos eventos-chave posso ter?
Propriedades padrão aceitam até 30, e as 360 até 50. A marcação vale a partir do momento em que é feita e não altera o histórico.
O consent mode sempre gera dados modelados?
Não. Há requisitos, como 1.000 eventos por dia com analytics_storage negado por 7 dias e 1.000 usuários diários com consentimento. Mesmo cumprindo os números, a elegibilidade não é garantida.
O que é a linha (other)?
É o agrupamento do excedente quando um relatório atinge o limite de linhas, comum em dimensões com mais de 500 valores únicos por dia. Evite IDs únicos como dimensão personalizada.
Com que frequência auditar o GA4?
Conferência semanal rápida, reconciliação mensal, checklist completo por trimestre e novo teste de compra a cada mudança no site, no checkout ou no GTM.



