Rastreamento no servidor
Rastreamento no servidor é registrar um evento em um servidor que você controla — o seu próprio backend — e enviá-lo de lá para as plataformas de analytics ou de anúncios, em vez de deixar o JavaScript do navegador do visitante mandar. Isso muda quem precisa cooperar para o número existir: um navegador pode recusar a requisição, e o seu próprio servidor não pode recusar a si mesmo. Por si só não deixa os dados mais precisos e não resolve a questão do consentimento — move onde a escrita acontece, e junto com ela o que você ainda enxerga e o que agora precisa carregar sozinho.
O que muda e o que você paga por isso
No rastreamento no navegador, o navegador do visitante manda o evento direto ao fornecedor. No rastreamento no servidor, o navegador avisa o seu backend — ou não avisa nada, porque o seu backend já sabe que aconteceu — e é o seu backend que repassa o evento. Mesmo evento, outro remetente, e o remetente é toda a diferença.
- O que você ganha: uma extensão não derruba uma requisição que nunca sai da máquina do visitante, um envio que falha pode ser repetido, o conteúdo é validado antes de sair e as chaves de API ficam do seu lado do fio.
- O que você perde: tudo o que o navegador sabia e o seu banco não — o referenciador, o tamanho da janela, qual elemento foi clicado, o quanto a página foi rolada e o identificador anônimo que costurava a sessão.
- O que fica mais difícil: o momento e a identidade. O navegador sabia que o evento aconteceu *com um visitante específico, numa página específica, naquele instante*; o seu backend sabe que uma linha mudou. Reconstruir o resto é o trabalho de verdade.
O problema de identidade sobre o qual ninguém avisa
Um evento de navegador chega já carregando contexto: qual página, qual referenciador, qual identificador anônimo, quais rótulos de campanha estavam na URL. Um evento de servidor carrega o que você lembrou de guardar. Esse é o trabalho real de migrar para o servidor, e não é o envio: é decidir, no instante em que alguém chega, o que precisa ser copiado para o seu próprio banco porque daqui a cinco minutos não vai mais existir.
Os parâmetros UTM e os identificadores de clique de anúncio são o caso mais afiado, porque existem em exatamente uma URL, logo no começo. Se o identificador de clique nunca foi guardado junto à conta no cadastro, uma conversão enviada três semanas depois não tem em que se apoiar — você terá protegido com esmero um número que já não responde à pergunta para a qual foi construído. A atribuição de marketing é essa pergunta, e ela se decide na chegada, não na conversão.
O que aprendemos enviando nossas próprias conversões pelo servidor
A AgentCeres — o AI Growth Officer em agentceres.com — envia conversões de leads qualificados a uma plataforma de anúncios a partir do seu próprio banco de dados, e não do navegador de ninguém, usando como chave o identificador de clique capturado quando a pessoa chegou. A surpresa não foi o envio. Foi que uma resposta HTTP bem-sucedida não é um recibo: nossos envios voltavam 200 enquanto as linhas dentro deles estavam sendo rejeitadas, e o resultado real só aparecia numa consulta de status separada, feita depois. O endpoint ao qual recorremos primeiro também estava fechado para novas integrações, algo que o 200 igualmente não mencionava.
O formato se generaliza. No navegador, um evento perdido é barulhento de um jeito específico: o número simplesmente falta, e o buraco aparece. No servidor, a falha é uma requisição que os seus próprios registros anotam como sucesso, então o buraco parece um fato. Tudo que você mover para o servidor precisa de uma etapa de verificação que pergunte ao fornecedor o que ele de fato guardou, em vez de confiar no que ele respondeu na hora. A outra metade desta história, a da recepção — quanto dado de navegador se perde logo de saída, e por que a falta era maior justamente no público que pagávamos para atrair —, está na nossa página sobre o PostHog.
Não é um jeito de contornar o consentimento
O rastreamento no servidor costuma ser vendido por derrotar bloqueadores de anúncio, o que mecanicamente ele faz. Vale ser direto sobre o que isso significa: o bloqueador foi instalado por uma pessoa expressando uma preferência, e mover a escrita para o seu servidor não cria uma base legal que você não tinha, nem torna próprio um dado só porque ele passou pelo seu domínio a caminho de outro lugar.
- O consentimento rege a finalidade, não o transporte. Se um evento precisa de consentimento quando o navegador manda, precisa quando o seu servidor manda.
- Um proxy no seu próprio domínio continua sendo uma transferência quando o destino é um terceiro — descreva assim no seu aviso de privacidade, em vez de reclassificar.
- A versão honesta costuma bastar. Quase tudo de que uma startup pequena realmente precisa no servidor são os próprios dados de produto — cadastros, planos, pagamentos —, que nunca foram do navegador para mandar.
FAQ
- É mais preciso que o rastreamento no navegador?
- Mais completo, não automaticamente mais preciso. Remove uma classe de perda — requisições de navegador bloqueadas, falhas ou abandonadas — e acrescenta outra, porque um evento de servidor só sabe o que você lembrou de guardar. Uma instrumentação ruim no servidor consegue estar confiantemente errada de um jeito que a do navegador não está, justamente porque nada parece faltar.
- Preciso de um gerenciador de tags ou de um pipeline dedicado?
- Para a maioria dos produtos em estágio inicial, não. Se o evento é algo que o seu backend já conhece — um cadastro, um pagamento, uma troca de plano —, o rastreamento no servidor mais simples é uma chamada a partir do código que trata disso. Contêineres de servidor e pipelines de eventos começam a se pagar quando vários destinos precisam do mesmo fluxo, ou quando o volume transforma o encanamento num trabalho próprio.
- Migrar para o servidor quebra a atribuição?
- Quebra se você mover a escrita sem mover os identificadores. Um evento que antes chegava com cookie, referenciador e rótulos de campanha passa a chegar com o que houver no seu banco, então o identificador de clique e o anônimo precisam ser capturados na chegada e guardados junto à conta. Faça isso e a atribuição sobrevive à mudança; pule e você terá conversões limpas e não atribuíveis.
- Vale a pena para uma startup pequena?
- Para um número do qual depende uma decisão, sim — e pode ser um campo em vez de um projeto: escreva onde você já controla a escrita. Para o resto, analytics de navegador serve, porque é bom para o formato do comportamento e esse formato sobrevive a uma porcentagem de eventos perdidos. A regra que adotamos é que tudo em que uma decisão de orçamento se apoia fica registrado do nosso lado, e o resto continua onde está.
An AI growth team that runs this for you
AgentCeres is a managed AI marketing team — you approve what ships. 14-day free trial, from $39/month.