Google Analytics 2027 · Capítulo 19 de 35 · 9 min
Instrumentar a loja do view_item ao refund e conciliar com o financeiro
Cada etapa da compra com o evento certo, o pedido pendente de Pix e boleto tratado com honestidade e três receitas que passam a se explicar.
Este capítulo faz parte do curso gratuito Google Analytics 2027.
Com os públicos montados, a loja da Verde Vivo ainda entrega ao GA4 um purchase que nem sempre corresponde a dinheiro no caixa. O checkout da Shopify dispara o evento na página de obrigado, mas 22 por cento dos pedidos são pagos por Pix ou boleto depois que a sessão terminou, e uma parte deles nunca é paga.
O custo de medir a loja pela metade aparece na reunião de resultado. O financeiro fala de uma receita, a Shopify de outra e o GA4 de uma terceira. Sem saber qual diferença é esperada e qual é defeito, ninguém confia no relatório, e a decisão de mídia volta a ser tomada por intuição.
A referência de eventos de e-commerce do GA4 resolve a primeira parte: cada etapa da compra tem um evento com nome e parâmetros publicados, estável desde 2024. A segunda parte, conciliar três números que nunca serão iguais, é método, e a Verde Vivo o aplicou sobre 1.650 pedidos por mês com ticket médio de R$ 215.
Um plano de mensuração da loja começa pelas perguntas comerciais e só depois escolhe eventos. Qual lista de produtos gera clique? Em que etapa do checkout a pessoa desiste? Qual produto volta como estorno? Cada pergunta exige um evento num ponto do caminho, e a referência oficial cobre da vitrine ao estorno com treze eventos recomendados.
A descoberta usa três deles. view_item_list registra que uma lista apareceu na tela: a categoria de vasos de cerâmica, o resultado da busca interna, a vitrine de recomendados. select_item registra o clique num item dessa lista, e view_item, a página do produto aberta. A comparação entre os três diz qual lista transforma exposição em visita ao produto.
Carrinho é intenção declarada. add_to_cart, remove_from_cart e add_to_wishlist carregam o mesmo array items, e o GA4 soma quantidade e preço sem que o site calcule nada. Um remove_from_cart concentrado logo depois do add_to_cart costuma apontar frete revelado tarde demais, e foi a primeira coisa que Marina olhou na Verde Vivo.
Checkout tem três etapas com nome: begin_checkout quando a pessoa entra, add_shipping_info quando escolhe a entrega e add_payment_info quando escolhe como pagar. É nesta última etapa que Pix, boleto e cartão se separam, antes de qualquer compra, e é dela que sai a taxa de abandono por forma de pagamento.
- Etapa 1 de 7: view_item_list
Categoria, busca interna ou vitrine: a lista que apareceu
- Etapa 2 de 7: select_item e view_item
O clique na lista e a página do produto aberta
- Etapa 3 de 7: add_to_cart
Intenção, com item_id, price e quantity no array items
- Etapa 4 de 7: begin_checkout
Entrada no checkout da Shopify
- Etapa 5 de 7: add_shipping_info e add_payment_info
Entrega escolhida; Pix, boleto ou cartão escolhido
- Etapa 6 de 7: purchase
Página de obrigado, com transaction_id, value e currency
- Etapa 7 de 7: refund
O estorno, com o mesmo transaction_id do pedido
purchase é o evento que vira receita nos relatórios, e transaction_id é obrigatório nele. Esse parâmetro carrega o número do pedido, a chave que liga o evento ao registro da Shopify e à linha do financeiro. value traz o total e currency a moeda, BRL no caso da Verde Vivo; sem os dois, o relatório de receita fica vazio ou mistura moedas.
refund espelha o purchase. Ele leva o mesmo transaction_id e, quando a devolução é parcial, o array items com o que voltou. Loja que nunca envia refund exibe uma receita que só cresce, e a análise de produto passa a recomendar o item mais devolvido como se fosse o mais vendido.
O array items é o coração de todos esses eventos, e ele tem estrutura fixa. item_id e item_name identificam o produto; price e quantity dão o valor; item_category até item_category5 permitem cinco níveis de categoria, como jardim, vasos, cerâmica, médio e esmaltado; item_brand e item_variant separam marca e variação, como cor ou tamanho. Promoções entram por view_promotion e select_promotion, com promotion_id, promotion_name, creative_name e creative_slot.
Os treze eventos de e-commerce da referência do GA4 e a pergunta que cada um responde
| Evento | Momento | Parâmetros que importam | Pergunta comercial |
|---|---|---|---|
| view_item_list | Lista de produtos na tela | items, nome da lista | Qual vitrine gera clique? |
| select_item | Clique num item da lista | items, nome da lista | Qual posição da lista converte? |
| view_item | Página do produto aberta | items com price | Qual produto atrai e não vende? |
| add_to_cart, remove_from_cart, add_to_wishlist | Intenção | items com quantity | Onde a intenção se perde? |
| begin_checkout | Entrada no checkout | value, items | Quantos carrinhos viram checkout? |
| add_shipping_info | Entrega escolhida | value, items | Qual modalidade de entrega afasta? |
| add_payment_info | Pagamento escolhido | value, items | Pix, boleto ou cartão: quem desiste depois? |
| purchase | Página de obrigado | transaction_id (obrigatório), value, currency, items | Quanto foi vendido? |
| refund | Estorno total ou parcial | transaction_id, items | Quanto voltou? |
| view_promotion, select_promotion | Banner exibido e clicado | promotion_id, promotion_name, creative_name, creative_slot | Qual banner move receita? |
A referência não recebeu novidade em 2026; a página oficial continua a fonte para nome e parâmetro.
Fonte: Google Analytics, Recommended events (referência consultada em setembro de 2026)
Pagamento brasileiro quebra a premissa do evento purchase: a página de obrigado aparece antes de o dinheiro existir. No Pix, a confirmação chega em minutos, muitas vezes com a aba já fechada. No boleto, chega dias depois, ou nunca. Um purchase disparado na página de obrigado é, nesses casos, um pedido pendente com nome de venda.
Há duas escolhas honestas, e a Verde Vivo precisou fazer uma. Disparar purchase na página de obrigado, com a forma de pagamento como parâmetro, e aceitar que uma fatia é pedido pendente. Ou disparar purchase só na confirmação, enviado pelo servidor, e aceitar que a sessão de origem já acabou quando o evento chega. O capítulo 31 monta o segundo caminho; este capítulo mede o primeiro.
Compra duplicada é o efeito colateral do pagamento lento. A pessoa gera o boleto, desiste, volta e paga com cartão: a Shopify tem dois pedidos e o financeiro, um pagamento. Como cada pedido tem o próprio transaction_id, o GA4 conta dois purchase, e só o refund do pedido cancelado, ou um filtro pelo status do pedido na exportação, devolve a contagem certa.
Conciliação é comparar três fontes sabendo por que elas diferem. O GA4 perde quem negou consentimento, quem usa bloqueador e quem comprou pelo telefone ou na loja física. A Shopify conta pedidos, pagos ou não. O financeiro conta dinheiro recebido, na data em que entrou, com estorno descontado. Nenhuma das três está errada; cada uma responde a uma pergunta.
Conciliar GA4, Shopify e financeiro: o jeito que gera briga e o jeito que gera decisão
Comparação que não fecha nunca
Evitar
- Receita do GA4 contra receita do financeiro, sem mediar pela Shopify
- Mês do evento contra mês do pagamento confirmado
- purchase com transaction_id novo a cada recarga da página de obrigado
- Estorno registrado só no financeiro, nunca como refund
- Diferença de 30 por cento tratada como defeito da tag, sem separar as causas
Comparação com as diferenças nomeadas
Recomendado
- Shopify como ponte: pedido a pedido, pelo transaction_id, dos dois lados
- Pedido pendente separado de pedido pago, pela forma de pagamento
- Uma linha por pedido no GA4, conferida na exportação do BigQuery
- refund enviado no dia do estorno, com o mesmo transaction_id
- Faixa esperada de diferença escrita no plano: consentimento, bloqueador, canal offline
A exportação para o BigQuery ajuda na conciliação por um motivo publicado pelo Google: os dados brutos não passam por modelagem, não agregam em (other) e não amostram, então a lista de transaction_id do GA4 sai inteira para casar com a Shopify. A interface, ao contrário, pode incluir compras modeladas quando a identidade de relatório é Blended, e esse número não existe pedido a pedido.
Armadilha comum: disparar purchase sem transaction_id, ou com um número gerado na hora em vez do número do pedido. Cada recarga da página de obrigado, cada volta pelo botão do navegador e cada clique no e-mail de confirmação cria uma venda nova no relatório. A loja conclui que a taxa de conversão é 2,6 por cento quando é 1,9, e aumenta o orçamento de uma campanha que não sustenta o aumento.
Na Verde Vivo, Caio reescreveu a tag de purchase da Shopify para enviar o número do pedido como transaction_id, a forma de pagamento como parâmetro e o array items com item_category até o terceiro nível. Marina montou uma consulta no BigQuery que lista todos os transaction_id do mês e uma exportação da Shopify com número, status e data de pagamento.
O mês de teste fechou assim: a Shopify registrou 1.650 pedidos; o GA4 observou 1.310 purchase, porque 21 por cento das sessões negaram o consentimento e uma parte pequena usou bloqueador; 363 dos pedidos, os 22 por cento pagos por Pix ou boleto, receberam confirmação depois da sessão; 96 boletos venceram sem pagamento e 31 pedidos voltaram como estorno. O financeiro fechou com 1.523 pedidos pagos.
O mês de conciliação da Verde Vivo, número a número
1.650
pedidos na Shopify
Pagos ou não; ticket médio R$ 215
1.310
purchase observados no GA4
21 por cento das sessões sem consentimento e bloqueadores explicam a diferença
363
pedidos confirmados depois da sessão
Os 22 por cento em Pix e boleto; 96 boletos venceram sem pagamento
1.523
pedidos pagos no financeiro
Descontados 96 boletos vencidos e 31 estornos
Fonte: Verde Vivo, cenário composto do curso
O que mudou foi a natureza da diferença. Antes, 340 pedidos de distância entre GA4 e Shopify pareciam defeito da tag. Depois, a diferença ficou escrita no plano com as causas nomeadas, e a taxa de conversão do e-commerce passou a ser lida como 1,9 por cento sobre sessões com consentimento, com a ressalva de que o pedido pendente entra como venda até o boleto vencer.
Exporte hoje os pedidos do último mês da sua plataforma e compare com os transaction_id do GA4, pedido a pedido. Se a diferença passar de 30 por cento das linhas sem causa escrita ao lado, a tag de purchase está quebrada, e nenhuma análise de produto vale antes do conserto. O próximo capítulo sai da loja e vai para o orçamento de R$ 42.000 que não tem página de obrigado.
Antes de conciliar pedido a pedido, a Verde Vivo precisou provar que cada evento de compra chega ao GA4 com o array items completo. Caio montou os eventos no Gerenciador de tags a partir da camada de dados da Shopify e só publicou depois de ver um pedido de teste inteiro no DebugView, com item_id, price e quantity em cada item.
Guia prático: do dataLayer de e-commerce ao relatório de monetização
Reserve uma tarde. Faça tudo num contêiner de teste ou num espaço de trabalho separado do Gerenciador de tags antes de publicar.
Passo 1: Limpe o objeto ecommerce antes de cada evento
No site, envie dataLayer.push({ ecommerce: null }) imediatamente antes de cada push de e-commerce. A documentação do Google recomenda o passo para que um evento anterior da mesma página não contamine o seguinte.
Deu certo quando: No modo de visualização do Gerenciador de tags, a aba Camada de dados (Data Layer) de cada evento mostra só os itens daquele evento.
Erro comum: Um add_to_cart que herda os itens do view_item_list anterior e soma produtos que ninguém colocou no carrinho.
Passo 2: Envie o evento com items[] completo
Cada item leva item_id ou item_name (ao menos um dos dois é obrigatório), price e quantity como número, e item_category até o nível que o plano pede. Quando houver value, currency vai no nível do evento, BRL no caso da Verde Vivo. O array aceita até 200 itens por evento.
Deu certo quando: O objeto no console tem value numérico, currency preenchida e um item para cada linha do pedido.
Erro comum: price enviado como texto com vírgula ("215,00"), que o GA4 não soma como receita.
Passo 3: Configure a tag de evento do GA4 no Gerenciador de tags
Crie uma tag Google Analytics: evento do GA4 com o nome exato do evento recomendado. Em Mais configurações > Comércio eletrônico (More Settings > Ecommerce), marque Enviar dados de comércio eletrônico (Send Ecommerce data) e escolha Camada de dados (Data Layer) como fonte.
Deu certo quando: Uma única tag com acionador de evento personalizado cobre view_item, add_to_cart, begin_checkout e purchase, sem parâmetro digitado à mão.
Passo 4: Valide no DebugView com um pedido de teste
Ative o modo de visualização do Gerenciador de tags (ou debug_mode: true na tag do Google) e abra Administrador > Exibição de dados > DebugView. Clique no evento purchase e confira os parâmetros e a lista de itens.
Deu certo quando: purchase aparece na linha do tempo em segundos, com transaction_id igual ao número do pedido na Shopify e os itens com preço e quantidade.
Erro comum: Procurar o evento de teste nos relatórios padrão no mesmo minuto. O DebugView mostra os últimos 30 minutos; os relatórios levam mais tempo.
Passo 5: Confira o relatório de monetização no dia seguinte
Abra Relatórios > Monetização > Compras de e-commerce (coleção Ciclo de vida) e depois o relatório de ID da transação, que mostra uma linha por transaction_id.
Deu certo quando: Os produtos do pedido de teste aparecem pelo nome, sem (not set), e o transaction_id do teste aparece no relatório de ID da transação.
Erro comum: Item com nome (not set) porque o evento saiu sem item_name ou com o nome fora do array items.
No fim você tem: Um pedido de teste rastreável da camada de dados ao relatório, com o mesmo número de pedido nas duas pontas.
Dimensão de item só conversa com métrica de item. Desde janeiro de 2023, uma dimensão como Nome do item combinada com uma métrica de evento, como Compras de e-commerce, deixa de funcionar nos relatórios. Para ver receita por produto, use as métricas de item (Receita do item, Itens comprados) ou o relatório Compras de e-commerce, que já vem montado assim.
Cinco hábitos de quem mede loja sem susto
Todo defeito de e-commerce aparece primeiro na camada de dados; teste ali antes de olhar relatório.
- Benjamin Mangold (Loves Data) compara transaction_id do GA4 com o backend após cada teste.
- Ele trata diferença de receita acima de cerca de 10 por cento como sinal de defeito.
- Eivind Savio publicou uma variável que lê items na versão 1 da camada de dados, sem herança.
- Tag duplicada gera purchase em dobro: confira se só uma tag dispara na página de obrigado.
- Pagamento em plataforma externa que não volta ao site some do GA4: teste com Pix e boleto.
O teste: Faça um pedido de teste por forma de pagamento e ache os três transaction_id no GA4.
alexandrecaramaschi.com/educacao/frontends-com-vibecoding
Antes de publicar o e-commerce da loja
Camada de dados
0/3Validação
0/3Seu caderno neste capítulo
Abrir o caderno completoSelecione um trecho do capítulo para destacar ou anotar. Nos vídeos e áudios, use Anotar este momento. No teclado, selecione com Shift e as setas e use Alt+Shift+D para destacar ou Alt+Shift+N para anotar.
Salvo neste navegador. Entre na sua conta para levar o caderno a outros aparelhos.
Entre na sua conta para compartilhar o que aprendeu e convidar alguém para estudar com você.
Conexões deste capítulo
Veja o que estudar antes e para onde seguir depois, explore os conceitos e compare abordagens em outros cursos. Sugestões marcadas como “sugerido pelo grafo” vêm dos assuntos em comum, não do índice do curso.
Estude antes
- Cobre no relatório os números certos e ignore o restosugerido pelo grafoApresenta os conceitos “Data layer”, “Google Tag Manager” e “BigQuery”, usados em “Instrumentar a loja do view_item ao refund e conciliar com o financeiro”.
- Python no marketing, caso 2: relatório do GA4 por canal com a Data APIsugerido pelo grafoApresenta o conceito “Google Analytics 4”, usado em “Instrumentar a loja do view_item ao refund e conciliar com o financeiro”.
- CursoPython: Programação do Zerosugerido pelo grafo21 capítulos de “Google Analytics 2027” usam conceitos apresentados em “Python: Programação do Zero”.
- CursoGoogle Ads 2027sugerido pelo grafo4 capítulos de “Google Analytics 2027” usam conceitos apresentados em “Google Ads 2027”.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- Meta Ads 2027Vender pelo catálogo com anúncios Advantage+ de catálogo e compra bem medidaExaminar conexões de Vender pelo catálogo com anúncios Advantage+ de catálogo e compra bem medida
- TikTok Ads e Live Commerce 2027Instalar o TikTok Pixel e provar que cada evento dispara uma vezExaminar conexões de Instalar o TikTok Pixel e provar que cada evento dispara uma vez
- Google Ads 2027Instalar Google Tag, GTM e conversões que o lance consegue usarExaminar conexões de Instalar Google Tag, GTM e conversões que o lance consegue usar
- CRO: Otimização de Conversão e ExperimentaçãoFormulários e checkout: onde a conversão morreExaminar conexões de Formulários e checkout: onde a conversão morre
Leve uma ideia para a prática
Escolha uma atividade no painel e volte a este curso quando quiser.
Atividades e evolução ficam reunidas no painel da sua conta.
Capítulos vizinhos em Google Analytics 2027
- 17Medir retenção, ativação e valor por coorte em vez de por mês
- 18Construir públicos que a mídia usa e saber quando o preditivo não existe
- 19Instrumentar a loja do view_item ao refund e conciliar com o financeiro
- 20Ligar o clique ao contrato assinado com eventos de lead e CRM
- 21Medir o aplicativo e a assinatura com Firebase sem perder a pessoa entre plataformas