Agências de marketing · E-commerce

E-commerce do cliente

Pedidos pagos, receita líquida, ticket e conversão da loja de cada cliente num fato diário que bate com o painel da loja, com o funil do GA4 ao lado e sem contar Pix vencido como venda.

UsoEspecífico
EsforçoMédio
Para quemAgências que fazem mídia, CRM ou gestão de loja para clientes de e-commerce.
Fonte

Pedidos da loja e marketplaces, GA4 e mídia

Regra

Pedido pago pelo status financeiro, dia no fuso da loja

Resultado

Fato diário com receita líquida, CVR, AOV e funil

Ativação

Dashboard, relatório recorrente e alertas

O que resolve

  • A receita do relatório bate com o painel da loja e não inclui pedido expirado, pendente ou de teste.
  • Conversão e ticket médio calculados do mesmo jeito para todas as lojas da carteira.
  • O funil do site mostra onde o cliente perdeu venda, com a cobertura do GA4 declarada.

Perguntas de negócio que responde

Faça estas perguntas ao seu agente quando o caso estiver pronto.

Por que a receita caiu esta semana?
Qual a taxa de conversão do checkout neste mês?
Quanto foi reembolsado no mês e em quais dias?
Quanto vendemos no site e quanto em cada marketplace?
Qual o ticket médio por canal de origem?
Quantos pedidos ficaram pendentes ou expiraram no Pix e no boleto?

O que você precisa

  • A loja e os marketplaces do cliente conectados na Nekt
  • O GA4 da loja conectado (relatórios diários e eventos)
  • O fuso e a moeda da loja, e o funil de eventos combinados com o cliente

O que você recebe

  • Um fato diário por loja e canal com pedidos pagos, receita bruta, líquida e reembolsos
  • Funil view_item, add_to_cart, begin_checkout e purchase com taxas por etapa
  • Dashboard com CVR, AOV e RPV recalculados para qualquer período
  • Alerta de queda de receita e de buraco de carga do GA4

Onde ativar

Dashboard do cliente

Receita, pedidos, CVR, AOV e funil por dia e canal, com a cobertura do GA4 ao lado.

Relatório recorrente

Receita = sessões x conversão x ticket, para explicar a variação da semana pelo fator que mudou.

Alertas

Queda de receita contra a média das últimas semanas e purchase do GA4 desalinhado com os pedidos.

Quer construir?

As regras são fechadas e o pacote se replica por loja. O esforço está em cada marketplace, que tem status e grão próprios, e no funil personalizado de cada site. O detalhado traz as regras de negócio, as armadilhas e o teste de aceitação. Ou mande tudo direto para o seu agente com o MCP da Nekt.

Ver detalhado
O problema

A loja grava o pedido assim que o carrinho é fechado, pago ou não, em UTC, com o reembolso escondido numa lista de transações. O GA4 conta eventos, não pedidos, e às vezes conta o mesmo purchase duas vezes. Quem soma os pedidos da loja sem filtro conta Pix vencido e pedido de teste; quem corta o dia em UTC joga a venda da noite para o dia seguinte; quem tira média das conversões diárias entrega uma taxa que ninguém reproduz.

Como costuma ser feito, e a regra

Cada linha é um erro que já aconteceu na prática.

O jeito comumA regra
01
Somar todos os pedidos da loja com valor no carrinho.
Pedido pago pelo status financeiro

Receita é só de pedido com displayFinancialStatus PAID ou PARTIALLY_REFUNDED, cancelledAt vazio e test = false. PENDING e AUTHORIZED ainda não são venda; EXPIRED (Pix ou boleto vencido) e VOIDED nunca serão. Mantenha cada status como linha própria no fato, para o cliente ver quanto ficou pendente ou expirou.

02
Usar o total do pedido como receita, com frete, imposto e sem reembolso.
Receita líquida desconta o reembolso real

Receita bruta = subtotal + descontos. Receita líquida = subtotal - reembolsos. Reembolso é a soma das transações do pedido com kind = REFUND e status = SUCCESS. Frete e imposto ficam fora da receita de produto e entram só no total. Declare se o reembolso fica no dia do pedido ou no dia em que aconteceu, e não mude.

03
Cortar o dia em UTC e jogar a venda da noite para o dia seguinte.
O dia é o dia da loja

Converta a data do pedido (processedAt ou createdAt, uma só, declarada) para o fuso da loja antes de cortar o dia: America/Sao_Paulo no Brasil, o fuso local em lojas no exterior. A data do GA4 já vem no fuso da propriedade.

04
Calcular conversão com sessões da loja e pedidos do GA4.
Sessão vem do GA4; pedido e receita vêm da loja

O painel de sessões da loja conta robôs que raspam preço e catálogo, com picos de países sem relação com o público. Sessões, usuários e funil vêm do GA4. Pedidos e receita vêm sempre da loja; o purchase do GA4 serve para conferência. CVR = pedidos pagos da loja / sessões do GA4.

05
Média das conversões diárias para o mês.
Taxa se recalcula no período

CVR, AOV e RPV são razões de somas no período escolhido: pedidos / sessões, receita / pedidos, receita / sessões. Nunca média de taxas diárias. O fato diário guarda os numeradores e denominadores; a taxa é calculada na leitura.

06
Montar o funil com os eventos que aparecem no relatório, mudando de mês a mês.
Funil por eventos fixos, declarados por cliente

O funil padrão é view_item, add_to_cart, begin_checkout e purchase, pelo eventCount de cada evento, com taxa de cada etapa sobre a anterior. Sites com jornada própria (escolher rota, assento e forma de pagamento) declaram os nomes dos eventos como dado no contexto do cliente. Contagem de evento não é contagem de pessoas.

07
Reportar receita do GA4 quando ela passa da receita da loja.
Purchase do GA4 maior que a loja é duplicação

Vários contêineres do Google Tag Manager ou duas propriedades disparando purchase dobram o evento. Compare purchase do GA4 com pedidos pagos da loja por dia; diferença sistemática para cima é rastreamento duplicado. Na tabela de transações do GA4, fique com uma linha por transactionId e descarte '(not set)'.

08
Somar todas as extrações do mesmo dia.
Relatório do GA4 fica com a última extração

Relatórios do GA4 são extraídos de novo e o mesmo dia aparece mais de uma vez. Fique com a linha da extração mais recente de cada loja e dia. A data pode vir como YYYYMMDD ou YYYY-MM-DD na mesma série: aceite os dois formatos.

09
Comparar um mês com dois dias carregados contra um mês completo.
Mês com buraco de carga não se compara

Antes de comparar sessões entre meses, conte os dias carregados de cada mês. Mês com menos de 80% dos dias fica sem número (no mês corrente, contra os dias já decorridos). Todo número de tráfego vem com a cobertura ao lado.

10
Abrir os itens do pedido no cruzamento e somar o valor do pedido por item.
Cada marketplace com a sua regra, sem multiplicar pedido

Cada marketplace tem status e grão próprios: na Amazon o relatório é por item e o pedido aprovado é o enviado; na Shopee o grão é o pedido e ficam fora CANCELLED e UNPAID. Conte itens numa subconsulta por pedido, nunca abrindo a lista de itens no cruzamento, que repete o valor do pedido. Loja em outra moeda não soma com real.

Status do pedido no fato diário

Pelo displayFinancialStatus e pelas marcas do pedido na loja.

PAIDReceitacancelledAt IS NULL AND test = false
PARTIALLY_REFUNDEDReceita, menos o reembolsotransactions.kind = REFUND, status = SUCCESS
REFUNDEDReembolso, linha à parte
PENDING, AUTHORIZED, PARTIALLY_PAIDAinda não é venda, linha à parte
EXPIRED, VOIDEDPix ou boleto vencido, anulado: fora
cancelledAt preenchidoCancelado, linha à parte
test = truePedido de teste: fora

Definições

Pedido pago
pedido com displayFinancialStatus PAID ou PARTIALLY_REFUNDED, sem cancelamento e fora de teste, no dia da loja
Receita bruta
soma de subtotal + descontos dos pedidos pagos do dia
Receita líquida
soma de subtotal - reembolsos dos pedidos pagos do dia, sem frete e sem imposto
Reembolso
soma das transações kind = REFUND com status = SUCCESS do pedido
CVR
pedidos pagos da loja / sessões do GA4 no período
AOV (ticket médio)
receita líquida / pedidos pagos no período
RPV
receita líquida / sessões do GA4 no período
Taxa da etapa
eventCount da etapa / eventCount da etapa anterior no período
Cobertura do GA4
dias com carga no período / dias do período (ou dias decorridos no mês corrente)

Armadilhas que já aconteceram

Receita de Pix vencido

Pedidos com Pix ou boleto que venceu sem pagamento continuavam na loja com valor no carrinho e entravam na receita.

Filtre pelo status financeiro e mostre os expirados à parte.

Venda no dia errado

Lojas no exterior tinham o dia cortado em UTC e a venda da noite caía no dia seguinte, sem bater com o painel da loja.

Converta para o fuso da loja antes de agrupar por dia.

Sessões de robôs

O painel nativo da loja mostrava picos de sessões de países sem nenhuma relação com o público. Eram robôs raspando catálogo.

Sessões só do GA4; pedidos só da loja.

Purchase em dobro

Um cliente com vários contêineres de tag e várias propriedades do GA4 tinha o evento purchase disparando duas vezes.

Compare purchase com pedidos pagos e deduplique por transactionId.

Alta de milhares de por cento

Um mês com dois dias de GA4 carregados foi comparado com um mês com oito, e a variação de sessões parecia gigantesca.

Conte os dias carregados e anule o mês com menos de 80%.

Pedido multiplicado pelos itens

Abrir a lista de itens no cruzamento repetia o valor do pedido em cada item e inflava a receita dos pedidos com mais de um produto.

Conte itens numa subconsulta por pedido.

Teste de aceitação

O caso está pronto quando todos os itens passam.

Pacote para o agente

Cole no Claude, ChatGPT ou outro cliente com o MCP da Nekt conectado.

Markdown completo
E-commerce do cliente
- Pedido pago: displayFinancialStatus PAID ou PARTIALLY_REFUNDED, cancelledAt vazio e test = false. PENDING, AUTHORIZED, EXPIRED e VOIDED não são receita.
- Receita líquida = subtotal - reembolsos (transações kind = REFUND e status = SUCCESS). Frete e imposto fora.
- O dia é o dia da loja: converta a data do pedido para o fuso <fuso da loja> antes de agrupar.
- Sessões, usuários e funil vêm do GA4. Pedidos e receita vêm da loja. Não use sessões da loja: contam robôs.
- CVR, AOV e RPV se recalculam como razão de somas no período. Nunca média de taxas.
- Funil padrão: view_item, add_to_cart, begin_checkout, purchase (eventCount).
- Mês com menos de 80% dos dias de GA4 carregados não é comparado. Informe a cobertura.
- Marketplaces têm regras próprias e não somam moedas diferentes.
Exceções por cliente:
- <cliente>: funil próprio com os eventos <evento 1>, <evento 2>, <evento 3> e purchase.
- <cliente>: loja em <moeda>, fuso <fuso>; não somar com lojas em real.

Variações

ROAS real

Junte o investimento da tabela de mídia da carteira à receita paga da loja no mesmo dia e loja, em vez de usar o valor de conversão da plataforma.

Atribuição pela jornada da loja

Use a última sessão externa do pedido (ignorando o retorno do próprio checkout) e, ao lado, a primeira visita paga em até 30 dias, nunca uma no lugar da outra.

Cliente recorrente

Cliente com 2 ou mais pedidos pagos, sem limite de tempo; pedidos expirados e pendentes não contam.