Google Analytics 2027 · Capítulo 29 de 35 · 12 min
Server-side e Measurement Protocol: medir pagamentos fora do site
O Pix pago depois que a pessoa fecha a aba, a venda no balcão e a etapa do lead no CRM só existem no servidor. O capítulo mostra como encomendar esse envio com consentimento, identificador e proteção contra duplicidade, e o que mudou nas opções do Google em outubro de 2026.
Este capítulo faz parte do curso gratuito Google Analytics 2027.
Em maio de 2026, a Verde Vivo comparou os pedidos pagos da loja com as compras registradas no Analytics, só entre clientes que tinham aceitado a medição, e a conta não fechava. A tag do navegador registrava a compra no clique de finalizar o pedido, pago ou não. Pix expirado e boleto vencido entravam como venda, e o Pix pago vinte minutos depois, pelo aplicativo do banco, ficava com a data e o valor do clique, sem nenhuma confirmação de que o dinheiro entrou.
O prejuízo vai além do relatório incompleto. As campanhas que trazem quem paga com Pix parecem piores do que são, o lance automático do Google Ads aprende com uma parte dos pedidos e a venda da loja física e as etapas do lead no CRM ficam fora de qualquer análise. Esses fatos acontecem no servidor da empresa, e só ele pode contá-los ao Analytics.
Cada evento tem um único remetente
Há três arranjos possíveis. No navegador, a tag do site envia tudo, como a Verde Vivo fazia. No servidor, o sistema da empresa envia os eventos direto ao Analytics. No arranjo misto, o navegador continua enviando o comportamento (páginas, cliques, checkout) e o servidor envia o que só ele sabe (pagamento confirmado, venda offline, mudança de etapa do lead). O misto é o caminho da maioria das lojas, com uma regra: cada evento sai de um lugar só.
Dois nomes costumam confundir a conversa. O Tag Manager de servidor é um contêiner de tags que roda num servidor da empresa e recebe o que o navegador manda antes de repassar ao Google; ele trata e filtra dados. O envio direto do sistema da loja ao Analytics é outra coisa, e não depende do primeiro. Para o Pix confirmado, o que importa é o envio direto, feito pelo Measurement Protocol ou pela Data Manager API.
O Measurement Protocol continua, e a recomendação para o futuro mudou
O Measurement Protocol é a forma antiga e estável de um servidor enviar eventos ao Analytics por uma requisição na internet. A página oficial, atualizada em 22 de outubro de 2026, diz que ele chegou a um estado maduro e finalizado, continua operando e não tem plano de descontinuação. Na mesma faixa, o Google recomenda construir integrações novas de servidor para servidor com a Data Manager API, que chama de infraestrutura central para as próximas novidades de ingestão de dados.

Ver como texto
Faixa amarela no topo da página Send Measurement Protocol events to Google Analytics, dizendo que o protocolo atingiu estado maduro e finalizado, segue operacional sem planos de descontinuação, e recomendando a Data Manager API para integrações de servidor para servidor
O guia de migração do Google, atualizado em 21 de outubro de 2026, compara as duas rotas em cinco linhas. A Data Manager API usa um modelo de dados comum a todos os produtos de anúncios do Google, aceita criptografia, envia para vários destinos na mesma requisição, dispensa o segredo de API e recusa a requisição na hora quando há erro. O Measurement Protocol é específico do Analytics, envia para um fluxo por vez, exige o segredo e só aponta erros quando a requisição vai ao servidor de validação.

Ver como texto
Tabela do guia Upgrade from Measurement Protocol to the Data Manager API comparando modelo de dados, criptografia, destinos, segredo de API e modelo de erros das duas rotas
Para a Verde Vivo, a decisão foi ficar no Measurement Protocol, que já funcionava e não tem data de fim, e registrar a migração como tarefa do plano de melhoria, a ser avaliada quando a loja quiser mandar o mesmo pedido ao Analytics e ao Google Ads numa só chamada. Quem começa hoje uma integração do zero tem razão para olhar primeiro a Data Manager API, que aceita até 2.000 eventos por requisição e 10 destinos, segundo a página de limites atualizada em 22 de outubro.
O pedido do servidor precisa carregar o identificador do navegador
O evento enviado pelo servidor só se liga à visita certa se levar o identificador do navegador da pessoa, o client_id, lido do cookie do Analytics no momento do checkout e guardado junto do pedido. A documentação recomenda enviar também o número da sessão (session_id) para que o evento entre na sessão que trouxe a compra. Com identificador inventado, cada pagamento vira uma pessoa nova, sem origem. Mesmo com os dois, a ligação depende de prazo: a página oficial pede que eventos que serão unidos aos coletados pela tag do site (gtag.js) ou pelo SDK do Firebase cheguem em até 48 horas do evento original.
O exemplo abaixo é a requisição que o sistema da Verde Vivo monta quando o banco confirma um Pix. Para quem não programa: ela diz ao Analytics que o navegador identificado por client_id fez uma compra de R$ 215, com dois itens, no horário em que o pagamento foi confirmado. O valor do pedido é a soma dos itens, e o segredo de API fica fora do código, numa variável do servidor.
POST https://www.google-analytics.com/mp/collect
?measurement_id=G-XXXXXXX&api_secret=<lido do cofre de segredos>
{
"client_id": "1712345678.1694012345",
"user_id": "cliente_88213",
"timestamp_micros": 1790097600000000,
"events": [{
"name": "purchase",
"params": {
"session_id": "1790096400",
"transaction_id": "VV-48213",
"value": 215.00,
"currency": "BRL",
"payment_type": "pix",
"items": [
{ "item_id": "VASO-CER-22", "item_name": "Vaso cerâmica 22 cm", "price": 89.00, "quantity": 1 },
{ "item_id": "KIT-SUC-06", "item_name": "Kit 6 suculentas", "price": 126.00, "quantity": 1 }
]
}
}]
}O carimbo de tempo (timestamp_micros) corresponde a 22 de setembro de 2026, 14h20 em Brasília, hora da confirmação do Pix. O protocolo aceita eventos com até 72 horas de atraso; no comportamento padrão, um evento mais antigo é aceito com a data trocada para 72 horas atrás, e com a validação configurada como ENFORCE_RECOMMENDATIONS é recusado. Uma fila parada por quatro dias perde a data certa dos pedidos.
A prova de recebimento vem do relatório, e a validação só confere o formato
O protocolo não devolve erro quando o evento está malformado: a requisição de produção responde como se tudo estivesse certo. Para conferir o formato, existe um endereço de validação que aponta campos inválidos sem gravar nada. Esse validador não confere o segredo de API nem o identificador do fluxo, e o que ele recebe não aparece nos relatórios. Nos testes, a prova de que o pedido chegou fica no DebugView (a tela de depuração do Analytics), com o parâmetro debug_mode no evento, e no relatório em tempo real. Em produção, a prova de que ele entrou na sessão certa vem do dado processado no dia seguinte e da conciliação.

Ver como texto
Página Validate events do Measurement Protocol com o aviso de que o protocolo não retorna códigos de erro HTTP, o alerta de que o servidor de validação não valida api_secret nem measurement_id e a nota de que eventos de validação não aparecem nos relatórios
Fila e reserva evitam o pedido enviado duas vezes
O sistema não envia o evento no instante em que o banco avisa o pagamento; ele grava o pedido numa fila. Um processo lê a fila, envia, guarda a resposta e marca o pedido como enviado. Se a rede falha, tenta de novo com intervalos crescentes. Três prazos convivem aqui: até 48 horas o evento ainda se une à visita; até 72 horas é aceito com a data original; depois disso, o pedido entra só na conciliação. A parte delicada é a concorrência: dois processos lendo a mesma fila podem achar o mesmo pedido pendente e enviar os dois. A proteção é reservar o pedido numa operação única do banco de dados antes de enviar.
O trecho a seguir mostra essa lógica. Para quem não programa: o primeiro processo que consegue gravar a reserva com o número do pedido é o único autorizado a enviar; os outros recebem “já reservado” e seguem adiante. Dois casos ficam sem resposta automática: o processo que cai no meio do envio, cuja reserva abandonada volta para a fila depois de alguns minutos, e o envio que pode ter chegado sem resposta do servidor, marcado como incerto. A conciliação mensal resolve os incertos comparando com os dados processados.
// Um pedido pago vira no máximo um purchase: a reserva é atômica no banco
async function enviarPurchase(pedido: PedidoPago) {
// INSERT com chave única em transaction_id e estado "enviando":
// só um processo consegue reservar
const reservado = await db.reservarEnvio(pedido.transactionId);
if (!reservado) return; // outro processo já cuida deste pedido
try {
const resposta = await enviarMeasurementProtocol({
clientId: pedido.clientIdDoCookie, // gravado no checkout, nunca inventado
sessionId: pedido.sessionIdDoCookie,
timestampMicros: pedido.pagoEmMicros,
evento: montarPurchase(pedido), // value = soma dos itens
});
await db.marcar(pedido.transactionId, resposta.ok ? "enviado" : "falhou");
} catch (erro) {
// queda de rede sem resposta: não se sabe se chegou
await db.marcar(pedido.transactionId, "incerto"); // vai para a conciliação
}
}
// Um processo à parte devolve à fila as reservas "enviando" abandonadas
// há mais de 15 minutos (processo que caiu no meio do envio).Consentimento vale também no servidor. O sistema confere a escolha que a pessoa fez no banner do site antes de enviar qualquer evento em nome dela, porque o servidor não vê o banner; o registro dessa escolha precisa estar guardado junto do pedido. Nenhum e-mail, telefone ou documento entra como parâmetro. Os fundamentos estão em Consentimento e Consent Mode: respeitar a escolha e ler as lacunas.
- Etapa 1 de 7: Consentimento
A escolha do banner fica gravada no pedido, com client_id e session_id
- Etapa 2 de 7: Pedido
O navegador envia até o pedido criado (pedido_criado); compra e estorno ficam com o servidor
- Etapa 3 de 7: Confirmação
O banco avisa o pagamento ao sistema da loja
- Etapa 4 de 7: Fila e reserva
O pedido é reservado uma única vez pelo número
- Etapa 5 de 7: Envio
Measurement Protocol com o horário da confirmação
- Etapa 6 de 7: Prova
DebugView e tempo real nos testes; registro de cada envio na produção
- Etapa 7 de 7: Conciliação
Todo mês, compras do Analytics contra pedidos pagos da loja
Ver como texto
- Consentimento: A escolha do banner fica gravada no pedido, com client_id e session_id
- Pedido: O navegador envia até o pedido criado (pedido_criado); compra e estorno ficam com o servidor
- Confirmação: O banco avisa o pagamento ao sistema da loja
- Fila e reserva: O pedido é reservado uma única vez pelo número
- Envio: Measurement Protocol com o horário da confirmação
- Prova: DebugView e tempo real nos testes; registro de cada envio na produção
- Conciliação: Todo mês, compras do Analytics contra pedidos pagos da loja
Na Verde Vivo, a compra passou inteira para o servidor
O erro mais comum na migração é manter a compra no navegador, na página de confirmação, e acrescentar a compra do servidor. Quem paga com cartão dispara as duas, e a receita de cartão dobra. Caio, o desenvolvedor da Verde Vivo, evitou isso movendo a compra inteira para o servidor em junho de 2026, para todas as formas de pagamento, no mesmo dia em que a tag do navegador parou de enviá-la.
A compra da Verde Vivo antes e depois do envio pelo servidor (cenário composto)
Antes: só o navegador
Antes
- Compra registrada no clique de finalizar o pedido, paga ou não
- Pix expirado e boleto vencido contados como venda; pagamento confirmado depois da visita sem registro próprio
- Sem distinção entre pedido criado e pagamento confirmado
- Nenhum registro de envio; erro silencioso
Depois: navegador até o pedido criado, servidor no pagamento
Depois
- Compra enviada quando o pagamento é confirmado, uma vez por pedido
- client_id e session_id guardados no pedido
- Agosto: 1.390 compras para 1.650 pedidos pagos; 22% das compras chegaram depois da visita
- Fila com reserva por número de pedido, registro e alerta de acúmulo
A diferença que sobrou em agosto, 260 pedidos pagos sem compra no Analytics, vem sobretudo de quem recusou a medição no banner, escolha que o servidor respeita, e também de pedidos lançados por telefone ou no balcão da loja e de falhas pontuais; cada parcela fica declarada no relatório em vez de ser preenchida. Numa queda de rede de quatro dias em julho, alguns pedidos ficaram presos na fila além das 72 horas e entraram na conciliação com a marca “enviado fora da janela”. Com o Pix contado, a mídia que traz pagadores de Pix subiu na comparação entre campanhas, e o evento principal importado no Google Ads passou a incluir esses pedidos.
Para encomendar o mesmo na sua empresa, escreva para cada evento que acontece fora do navegador três respostas: quem envia, qual número impede o envio repetido e de onde vêm o client_id e o session_id. Peça também onde fica registrado o consentimento e qual relatório prova o recebimento. Sem essas cinco respostas, nenhum envio deve ser ligado em produção.
Seu 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.
Depois, siga para
- CursoGoogle Ads 2027sugerido pelo grafo7 capítulos de “Google Ads 2027” usam conceitos apresentados em “Google Analytics 2027”.
- CursoMeta Ads 2027sugerido pelo grafo5 capítulos de “Meta Ads 2027” usam conceitos apresentados em “Google Analytics 2027”.
- CursoCRO: Otimização de Conversão e Experimentaçãosugerido pelo grafo2 capítulos de “CRO: Otimização de Conversão e Experimentação” usam conceitos apresentados em “Google Analytics 2027”.
- CursoVibecoding para SEOsugerido pelo grafo2 capítulos de “Vibecoding para SEO” usam conceitos apresentados em “Google Analytics 2027”.
Conceitos deste capítulo
O mesmo assunto em outros cursos
- Motor de crescimento para IAMedir antes de gastar o primeiro realExaminar conexões de Medir antes de gastar o primeiro real
- Meta Ads 2027Confirmar cada venda direto do seu sistema, sem contar duas vezesExaminar conexões de Confirmar cada venda direto do seu sistema, sem contar duas vezes
- TikTok Ads e vendas ao vivoConferir se o Pixel registra a compra corretamenteExaminar conexões de Conferir se o Pixel registra a compra corretamente
- GEO para Educação Financeira Sub-18Por que um papel ou um número no celular vale dinheiro?Examinar conexões de Por que um papel ou um número no celular vale dinheiro?
Terminou a leitura?
Você está aqui: capítulo 29 de 35
0 de 35 concluídos
- Próximo · Capítulo 30 de 35 · 11 minExportação para o BigQuery: analisar os eventos brutos fora do GA4Ler o capítulo 30 sem concluir
Marque como concluído para o capítulo contar no seu painel e no certificado.
- Anterior · Capítulo 28 de 35 · 11 minValidação, filtros e qualidade: aprovar a coleta com evidênciasVoltar para o capítulo 28
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
- 27User-ID e vários domínios: limites de identidade entre sites e aplicativos
- 28Validação, filtros e qualidade: aprovar a coleta com evidências
- 29Server-side e Measurement Protocol: medir pagamentos fora do site
- 30Exportação para o BigQuery: analisar os eventos brutos fora do GA4
- 31SQL para Analytics: avaliar consultas que juntam Analytics, loja e CRM