3 min de leitura

Como medimos atribuição de conversão sem banner de cookies

Como encaminhamos eventos de contato e afiliados pro GA4 por cima do Vercel Analytics, sem exigir banner de cookies pra medir o uso do produto.

atribuicaoanalyticsga4privacidadeutm

Vercel Analytics é a base de medição do site desde o início: zero-config, sem exigir banner de consentimento de cookies, porque não usa cookie de rastreamento. Essa decisão resolve telemetria básica de produto sem fricção. Mas marketing precisa de mais: entender de qual campanha veio um lead, e como um clique num link de afiliado vira contrato. Essa é a camada que construímos por cima, sem abrir mão da base zero-cookie.

A base não muda: Vercel Analytics continua sem cookie

A escolha por Vercel Analytics em vez de Plausible ou Google Analytics puro já era uma decisão de arquitetura documentada: zero-config e sem exigir banner de cookies, porque não depende de cookie de rastreamento pra funcionar. Essa base continua igual. O que adicionamos não a substitui, encaminha eventos específicos do funil de contato e do programa de afiliados pra fora, pro Google Analytics 4 (GA4), nos ambientes onde essa integração faz sentido.

Encaminhar pro GA4 sem quebrar nada onde não faz sentido

GA4, a tag do Google Ads (que reusa o mesmo gtag do GA4) e o Meta Pixel são três integrações opcionais. Cada uma depende de uma variável de ambiente configurada. Se a variável não existe, o pixel ou script correspondente simplesmente não carrega: nada quebra, nenhuma dependência sem resolver. Isso importa na prática porque em desenvolvimento local nenhuma dessas integrações faz sentido, e o site continua funcionando exatamente igual sem elas.

UTM capturado na primeira página, não só no /contato

Antes, a captura de parâmetros de campanha (utm_source, utm_medium, utm_campaign) acontecia só na página de contato. Movemos isso pro primeiro pageview de qualquer rota do site, em qualquer idioma. A razão principal é o programa de afiliados: um visitante que chega por um link de indicação (/r/[code]), navega pra home, e só depois vai pra /contato, ainda assim preserva a origem correta da campanha, porque ela foi capturada no instante em que ele pisou no site, não no formulário. Junto com essa mudança, utm_medium e utm_campaign passaram a ser persistidos no banco de dados (antes só parte das colunas de UTM existia).

Vale uma distinção: o cookie cl_ref do programa de afiliados (que guarda qual indicação trouxe o visitante) é um cookie funcional, necessário pro programa de afiliados operar, e não faz parte do banner de consentimento de analytics/marketing. Consentimento aqui é sobre rastreamento de terceiros pra métricas, não sobre saber quem indicou quem.

Por que a taxa de aceite do cookie banner nunca chega no GA4

Existe um evento de telemetria chamado consent_choice, que mede a taxa de aceite do banner de cookies do site. O banner em si é sobre um cookie de conveniência separado, não sobre o Vercel Analytics (que não depende de aceite pra funcionar). Esse evento vai só pro Vercel Analytics, de propósito, e nunca é encaminhado pro GA4. O motivo é estatístico: GA4 e o resto do rastreamento de terceiros só carregam depois que o visitante aceita o banner. Se consent_choice fosse encaminhado pro GA4, o GA4 só teria registro de quem já tinha aceitado, e a métrica de "taxa de aceite" mediria só quem aceitou, nunca quem recusou. Enviesada a ponto de virar inútil.

O que essa camada resolve

O resultado prático: continuamos sem banner de consentimento pra medir uso básico do produto, e ganhamos atribuição de conversão completa (funil de contato e afiliados) nas integrações que optamos por ligar, sem que a ausência delas quebre nada em outro ambiente. É arquitetura de medição, decisão de engenharia sobre onde cada evento deve viver e por quê, não parecer de conformidade legal.

Essa camada de atribuição serve diretamente o programa de afiliados, onde rastrear a origem certa de um referral decide se a comissão cai pro afiliado certo. Se o seu funil de marketing também precisa de atribuição que sobrevive a uma navegação de várias páginas antes da conversão, conta pra gente o contexto.

Tem ideia validada, processo pra automatizar ou produto pra construir?

Enviar projeto