Analytics

Como Rastrear Eventos de Teste A/B no GA4 (Passo a Passo)

Aprenda a rastrear teste A/B no GA4: evento customizado, dimensões, Google Tag Manager, relatório de Exploração e os erros que distorcem os dados.

Ilustração abstrata de nós geométricos interconectados e fluxos de dados convergindo para um funil, representando rastreamento de eventos

Rastrear um teste A/B no GA4 não é um relatório pronto: é uma estrutura que você precisa montar, porque o GA4 não nasceu como ferramenta de experimentação (isso é assunto do guia completo de GA4 e teste A/B). Este guia mostra o passo a passo prático: o evento customizado que registra a variação vista, como transformar isso em dimensão dentro do GA4, como disparar tudo via Google Tag Manager e como montar um relatório de Exploração que compara conversão por variação sem se enganar.

Por que rastrear teste A/B no GA4 exige uma estrutura própria

O Google Optimize (descontinuado desde setembro de 2023) tinha experimento como conceito nativo: braço de controle, variações, divisão de tráfego e leitura de significância, tudo dentro da própria ferramenta. O GA4 não tem nada disso. Ele é uma ferramenta de análise de comportamento, não de experimentação: mede o que aconteceu, mas não decide quem vê o quê nem calcula vencedor sozinho.

Isso significa que, para usar o GA4 como fonte de dados de um teste A/B, três responsabilidades ficam separadas:

A estrutura recomendada: um evento customizado de “visualização de variação”

O ponto de partida é um evento customizado disparado no exato momento em que o usuário a variação, nunca depois de ele já ter interagido com a página (mais sobre esse erro adiante). Um nome comum na prática é experiment_impression (ou ab_test_view), carregando dois parâmetros fixos:

Do snippet ao relatório: o caminho do evento de teste A/B no GA4O snippet de teste atribui a variação e empurra um evento para a dataLayer; o Gerenciador de Tags dispara uma tag de evento do GA4; o GA4 registra o evento com os parâmetros; as dimensões customizadas expõem esses parâmetros no relatório de Exploração.Snippet doteste A/Batribui a variaçãodataLayer.push()evento + parâmetrosGerenciadorde Tagstrigger + tag GA4GA4experiment_impression+ dimensõesRelatório de Exploraçãoconversão por variação, lado a lado
O nome do experimento e o nome (ou id) da variação viajam como parâmetros do evento até virarem colunas no relatório de Exploração.

Uma tabela ajuda a fixar a estrutura antes de implementar:

Elemento Nome sugerido Onde vive
Evento de impressão experiment_impression Disparado no momento em que a variação aparece na tela
Parâmetro: experimento experiment_name Valor fixo por teste (ex.: checkout_frete_gratis)
Parâmetro: variação variation_name Valor por braço (ex.: controle, variacao_b)
Dimensão customizada 1 Nome do experimento Admin > Custom definitions, escopo de evento
Dimensão customizada 2 Nome da variação Admin > Custom definitions, escopo de evento (ou usuário)

Um detalhe que passa despercebido e derruba a análise: uma dimensão customizada com escopo de evento só aparece nas linhas do evento específico que carregou o parâmetro (o experiment_impression em si), não nos eventos posteriores, como uma compra. Se você quer comparar a taxa de conversão por variação num relatório de Exploração, tem duas saídas: repetir o parâmetro da variação em todo evento de conversão relevante, ou registrar a dimensão com escopo de usuário (via propriedade de usuário), para que o valor “grude” no usuário e apareça em todos os eventos subsequentes dele, inclusive a conversão.

Como registrar as dimensões customizadas no GA4

Enviar o parâmetro no evento não é suficiente: o GA4 só transforma um parâmetro em coluna de relatório depois que você registra a dimensão customizada correspondente. O caminho, segundo a documentação oficial do Google:

  1. Abra Admin, na propriedade correta.
  2. Em Definições personalizadas (Custom definitions), clique em Criar dimensões personalizadas.
  3. Escolha um nome de exibição (o que você vai ver nos relatórios, ex.: “Variação do teste”).
  4. Selecione o escopo: evento (padrão para este caso) ou usuário (se quiser que o valor persista, como explicado acima).
  5. Em Parâmetro do evento, digite exatamente o nome técnico do parâmetro que o seu evento envia (ex.: variation_name), sem espaços nem acentos.
  6. Salve. Repita para o parâmetro do nome do experimento.

Duas pegadinhas a considerar: a dimensão só começa a contar dados a partir do momento em que foi criada (não há retroatividade, então crie antes de ativar a tag em produção), e, segundo a documentação oficial do Google, pode levar de 24 a 48 horas até a dimensão aparecer disponível para uso nos relatórios depois do primeiro dado chegar. Segundo a documentação de limites do GA4, uma propriedade padrão permite até 50 dimensões customizadas com escopo de evento e 25 com escopo de usuário (125 e 100 em propriedades GA4 360); como cada teste reaproveita as mesmas duas dimensões, esse teto raramente é um problema.

Google Tag Manager como camada de disparo

Na prática, a maioria das implementações não escreve gtag() direto no código: usa o Google Tag Manager (GTM) como intermediário, porque isso separa “o que disparar” de “onde a lógica de negócio mora”. A peça central é o próprio dataLayer, o array global que o GTM e o gtag.js leem para receber eventos e variáveis. O seu snippet de teste A/B (ou a ferramenta que você usa) deve empurrar algo como:

dataLayer.push({ event: ‘experiment_impression’, experiment_name: ‘checkout_frete_gratis’, variation_name: ‘variacao_b’ })

A partir daí, a configuração dentro do GTM segue três peças que se encaixam:

Anatomia da configuração no Google Tag ManagerUm gatilho de evento customizado escuta o evento experiment_impression na dataLayer; duas variáveis de camada de dados leem os parâmetros experiment_name e variation_name; a tag de evento do GA4 usa o gatilho e envia os valores das variáveis como parâmetros do evento.Gatilhoevento customizado = experiment_impressionVariáveis de dataLayerexperiment_namevariation_nameTag: GA4 Eventnome + parâmetros do eventoPropriedade GA4evento registrado com parâmetros
O gatilho decide quando disparar; as variáveis leem o que veio na dataLayer; a tag GA4 Event junta os dois e envia.
  1. Gatilho (trigger) de evento customizado, configurado para escutar exatamente o nome experiment_impression que chega na dataLayer.
  2. Variáveis de camada de dados (Data Layer Variable), uma para experiment_name e outra para variation_name, que leem os valores empurrados no dataLayer.push.
  3. Tag do tipo “Google Analytics: Evento do GA4”, configurada com o nome do evento e os dois parâmetros acima (usando as variáveis criadas), disparada pelo gatilho do passo 1.

Esse é o padrão documentado pelo Google Tag Manager para eventos personalizados: um gatilho do tipo “Evento personalizado” escutando o nome enviado via dataLayer.push, com variáveis de camada de dados lendo os parâmetros. Se você já usa uma variável de “Configurações de evento” (Event Settings) para reaproveitar parâmetros entre várias tags, os dois parâmetros deste teste podem entrar ali também, evitando repetição.

Montando o relatório de Exploração para comparar variações

Com o evento chegando e as dimensões registradas, o relatório que compara conversão por variação vive em Explorar. Os relatórios prontos até aceitam uma dimensão customizada como dimensão secundária, mas não montam a tabela lado a lado (variação nas linhas, métricas nas colunas) que você precisa para essa comparação, então na prática o Explorar é o caminho:

  1. Em Explorar, crie uma exploração em branco (Formato livre, ou “Tabela dinâmica” simples).
  2. Em Dimensões, importe a dimensão customizada de variação (e a de experimento, se você acumula vários testes na mesma propriedade).
  3. Em Métricas, importe conversões (a que representa a sua métrica primária) e usuários ativos ou visualizações do evento de impressão.
  4. Arraste a dimensão de variação para Linhas e as métricas para Valores. Se você acumula vários experimentos, arraste a dimensão de experimento para um filtro fixo, selecionando o teste que quer analisar.
  5. Adicione uma métrica calculada (ou divida manualmente) para ver a taxa de conversão lado a lado entre as variações, não só o volume bruto.
Coluna no relatório De onde vem
Variação do teste Dimensão customizada variation_name
Usuários (impressões) Contagem do evento experiment_impression
Conversões Evento de conversão (ex.: purchase), filtrado ou já carregando a dimensão
Taxa de conversão Conversões ÷ usuários, calculada na própria tabela

O resultado é uma tabela simples: cada linha uma variação, com volume e taxa de conversão lado a lado, pronta para comparar visualmente antes de levar os números para uma calculadora de significância.

A limitação real: amostragem em volume alto

Aqui mora uma armadilha que só aparece em sites de tráfego alto. Segundo a documentação oficial do Google sobre amostragem de dados, relatórios de Exploração em propriedades GA4 padrão passam a estimar por amostra quando a consulta ultrapassa 10 milhões de eventos no período selecionado (em propriedades GA4 360 o teto sobe para cerca de 1 bilhão). Os relatórios prontos (fora do Explorar) nunca são amostrados, mas eles também não deixam você cruzar uma dimensão customizada específica como a variação de um teste, então a comparação por variação praticamente sempre passa pelo Explorar.

Na prática: se o seu teste roda numa página de alto volume e o período de análise acumula dezenas de milhões de eventos, o número de conversões por variação que você vê no Explorar pode ser uma estimativa, não uma contagem exata, o que é perigoso justamente na hora de decidir um vencedor apertado. A saída documentada pelo Google é o BigQuery Export: ele exporta cada evento bruto da propriedade para um data warehouse, sem amostragem e sem o teto de retenção de 14 meses da interface, e a exportação em modo streaming não tem limite de eventos (o modo diário tem um teto de 1 milhão de eventos por propriedade padrão). Uma vez no BigQuery, a mesma comparação por variação vira uma consulta SQL exata, o dado bruto que alimenta a análise mais rigorosa do guia completo de GA4 e teste A/B.

Erros comuns que distorcem a leitura no GA4

Um exemplo trabalhado, com os números exportados do relatório

Suponha que você montou o relatório de Exploração como descrito acima e exportou os seguintes números, agrupados pela dimensão de variação: a variação controle (A) teve 9.000 usuários com o evento de impressão e 360 conversões (evento purchase); a variação B teve 9.000 usuários e 410 conversões.

Com valor-p de 0,066 (acima do corte de 0,05) e o intervalo de confiança de 95% da diferença variando de aproximadamente −0,04 a +1,15 pontos percentuais (cruzando o zero), o resultado não é estatisticamente significativo, mesmo com um lift relativo de quase 14% no número cru. É exatamente o cenário em que declarar um vencedor cedo, só porque a tabela do GA4 “parece boa”, vira o erro mais comum da lista acima. A leitura honesta aqui é: continue coletando, ou aceite que, com essa amostra, a diferença observada ainda pode ser ruído. Confira a mesma conta na calculadora abaixo, colando os números exportados do seu relatório:

Calculadora de significância estatística
Controle (A)
Variação (B)
Controle (A) · Taxa-
Variação (B) · Taxa-
Melhora relativa-
valor-p-
IC 95% da diferença-

Teste z bilateral de duas proporções. "Sem significância" quase sempre quer dizer que falta amostra, não que as versões são iguais.

Faça isso automático na Donnu

O trabalho que este guia cobriu (desenhar o evento, registrar dimensões, configurar o GTM, montar o Explorar e não se enganar com amostragem ou peeking) é real, e o GA4 sozinho não faz nada disso por você. A Donnu cuida da outra metade do problema: a divisão de tráfego 50/50 estável e o cálculo de significância honesto acontecem automaticamente dentro da própria ferramenta, sem precisar montar evento customizado nem relatório de Exploração para saber quem está vencendo. O GA4 continua sendo útil como fonte complementar de comportamento e receita, mas a decisão do teste não depende dele.

Comece um teste grátis na Donnu e deixe a divisão de tráfego e a significância por conta da ferramenta, enquanto o GA4 fica livre para o que faz de melhor: contar a história do comportamento do seu usuário. Para o panorama completo de como GA4 e teste A/B se encaixam, veja o guia completo de GA4 e teste A/B.

Referências

Perguntas frequentes

O GA4 tem um recurso nativo para rodar teste A/B, como o Google Optimize tinha?
Não. O GA4 é uma ferramenta de análise, não uma ferramenta de experimentação: ele não tem o conceito nativo de "experimento" com braço de controle e variação, nem divide tráfego sozinho. Para rastrear um teste A/B no GA4 você precisa modelar isso manualmente com um evento customizado que carrega o nome do experimento e da variação como parâmetros, e a divisão de tráfego continua sendo responsabilidade da sua ferramenta de teste (ou de um snippet próprio).
Qual nome de evento devo usar para rastrear a variação vista pelo usuário?
Não existe um nome exigido pelo GA4. O comum é um evento customizado como experiment_impression ou ab_test_view, disparado no momento em que o usuário efetivamente vê a variação, com parâmetros como experiment_name e variation_name (ou variation_id). O importante é manter o mesmo nome de evento e de parâmetros em todos os testes, para os relatórios ficarem comparáveis ao longo do tempo.
Quantas dimensões customizadas eu posso criar no GA4 para rastrear testes A/B?
Segundo a documentação oficial do Google, uma propriedade GA4 padrão permite até 50 dimensões customizadas com escopo de evento (event-scoped) e 25 com escopo de usuário. Em propriedades GA4 360 esses limites sobem para 125 e 100. Cada teste A/B costuma consumir só duas dimensões (nome do experimento e nome da variação), reutilizadas por todos os testes seguintes.
Por que meu relatório de Exploração no GA4 mostra números diferentes do esperado?
Um motivo comum é amostragem: segundo o Google, relatórios de Exploração em propriedades GA4 padrão passam a estimar por amostra quando a consulta ultrapassa 10 milhões de eventos no período selecionado, enquanto os relatórios prontos (fora do Explorar) nunca são amostrados. Se o seu teste roda num site de alto tráfego, isso pode distorcer a comparação entre variações, e a saída recomendada é exportar os dados brutos via BigQuery Export.
O Consent Mode pode atrapalhar a leitura de um teste A/B no GA4?
Sim, de forma indireta. O Consent Mode em si não altera a divisão de tráfego do seu teste, mas se a implementação do banner de consentimento não for idêntica nas duas variações (por exemplo, uma delas atrasa o carregamento do banner ou do gtag), a contagem de eventos registrada no GA4 pode ficar desproporcional entre A e B mesmo que a divisão real de visitantes tenha sido 50/50. Isso se parece com um Sample Ratio Mismatch (SRM), só que morando na camada de mensuração, não na de sorteio.