Pular para o conteúdo principal
8 min de leitura

Modelos de atribuição

Cada visitante no Zenovay carrega duas fotografias de atribuição: seu canal de first-touch (como ele descobriu você) e seu canal de last-touch (canal da sessão que converteu ou da mais recente). Ambas são armazenadas independentemente — o first-touch é fixado na primeira observação e nunca é sobrescrito.

Por que dois snapshots

A atribuição de marketing é uma questão de crédito. Se um visitante chega primeiro via busca orgânica do Google, retorna três semanas depois por um anúncio pago do LinkedIn e converte em uma visita direta:

  • Last-touch dá crédito a direct. (Subestima marketing com frequência.)
  • First-touch dá crédito a organic search. (Superestima SEO com frequência.)
  • Os modelos linear / position-based / time-decay dividem o crédito entre cada canal da jornada do visitante — selecionáveis na aba Revenue (veja abaixo).

O Zenovay começa simples: tanto first-touch quanto last-touch são armazenados, e o painel permite alternar.

O que o first-touch captura

Na primeira observação de um visitante, o Zenovay popula estas colunas:

ColunaSignificado
first_touch_channelCanal — organic, direct, referral, social, email, paid, ai
first_touch_utm_sourceUTM source, se presente
first_touch_utm_mediumUTM medium
first_touch_utm_campaignUTM campaign
first_touch_utm_contentUTM content
first_touch_utm_termUTM term
first_touch_referrerURL do referenciador
first_touch_landing_pagePrimeira URL de pouso
first_touch_atTimestamp da primeira observação

Nunca são sobrescritas em sessões posteriores. As colunas sem prefixo (channel, utm_*, referrer, landing_page) são atualizadas a cada sessão e representam last-touch.

Visitantes observados antes de 30/04/2026 têm valores first-touch NULL. O histórico não foi preenchido retroativamente.

Classificação de canais

Os canais são classificados nesta ordem de prioridade:

  1. Click IDs (gclid, fbclid, ttclid, msclkid) — sempre paid.
  2. utm_mediumcpc/ppc/paid/display/banner/cpmpaid; emailemail; socialsocial; referral/affiliatereferral; organicorganic.
  3. utm_source comparado contra listas curadas.
  4. Hostname do referenciador — buscadores → organic; plataformas sociais → social; webmail → email; outros → referral.
  5. Detecção de navegador in-app (Discord, Facebook, Instagram, ...) — social.
  6. Sem referenciador + sem UTMdirect.

Visitantes marcados como bot pela heurística de IA do Zenovay têm o canal forçado para ai independente do UTM.

Tráfego de e-mail — a correção do referenciador vazio

Links em e-mails geralmente não têm header Referer. Sem UTMs, esse tráfego era classificado erroneamente como direct.

O Zenovay captura isso de duas formas:

  1. utm_medium=email → canal é email, independente do referenciador.
  2. Sem referenciador + utm_source casando com ESP conhecido (Mailchimp, Klaviyo, HubSpot, ActiveCampaign, Brevo, ConvertKit, MailerLite, Beehiiv, Customer.io, GetResponse, Omnisend, Substack, Drip, Intercom, Postscript, Attentive, Iterable, Braze, Resend, Loops, Marketo, Pardot, etc.) → canal é email.

A lista completa de ESPs vive em api-zenovay/src/constants/domains.ts (EMAIL_UTM_SOURCES). Para garantir classificação correta:

<!-- Convenção UTM recomendada para todos os links de e-mail -->
<a href="https://seu-site.com/?utm_source=mailchimp&utm_medium=email&utm_campaign=launch">
  Leia mais
</a>

utm_medium=email OU um utm_source reconhecido é suficiente — não precisa de ambos.

Lendo atribuição no painel

A aba Sources e o painel de detalhe do visitante agora permitem alternar entre first-touch e last-touch diretamente na UI — não precisa mais consultar o banco para comparar os dois.

Aba Sources

O card Sources do painel de analytics tem um alternador First touch | Last touch no cabeçalho. A seleção é persistida na URL (?attribution=first ou ?attribution=last), então recarregar e a navegação voltar/avançar preservam a escolha. Padrão: last-touch (comportamento anterior).

O card tem quatro visões de nível superior:

AbaAtribuição padrãoO que mostra
ChannelAcompanha o alternadorVisitantes divididos em 9 baldes: Direct, Organic Search, Organic Social, Referral, Paid Search, Paid Social, Email, Affiliate, Display
ReferrerAcompanha o alternadorDomínios referenciadores principais com favicons; navegadores in-app (ChatGPT, Snapchat etc.) classificados via utm_source
UTMsAcompanha o alternadorCinco sub-abas: Source, Medium, Campaign, Content, Term. Um balde (none) conta visitantes sem essa dimensão
KeywordSempre last-touchVem da sua conexão com o Google Search Console; o alternador não se aplica

Ao alternar para First touch, as visões Channel / Referrer / UTM passam para os valores primeiros observados do visitante. Analytics importados (importações CSV do Plausible) são apenas last-touch — essas linhas são puladas na visão first-touch para manter o modelo coerente.

Painéis públicos sempre mostram atribuição last-touch. O alternador é apenas para o owner em V1; um padrão server-side por compartilhamento virá em sequência.

Card de detalhe do visitante

Ao clicar em um perfil de visitante, a barra lateral mostra um painel compacto de Atribuição: first-touch (channel + utm_source + landing page + data primeira vista) à esquerda, last-touch (channel + utm_source + referrer + landing page) à direita. O painel se oculta para visitantes anteriores ao FND-B (≈2% do histórico) para evitar uma linha de traços.

Aba Revenue

O card Atribuição da aba Revenue tem um seletor de cinco modelos — Last-Touch (padrão), First-Touch, Linear, Position-Based e Time-Decay. A escolha é persistida na URL (?model=), então recarregar e a navegação voltar/avançar mantêm o modelo escolhido. Padrão: last-touch.

Os cinco modelos de atribuição

Cada modelo responde de forma diferente à pergunta "qual canal recebe o crédito desta conversão?":

ModeloO que creditaQuando usar
Last-Touch100% ao último canal antes de converterVocê quer saber o que fecha as vendas
First-Touch100% ao canal que trouxe o visitante primeiroVocê quer saber o que impulsiona a descoberta
LinearDividido igualmente entre cada canal da jornadaVocê quer uma visão equilibrada e neutra
Position-Based40% primeiro, 40% último, 20% dividido no meioVocê quer recompensar descoberta E fechamento
Time-DecayMais crédito aos canais próximos da conversãoVocê tem ciclos de venda mais curtos

O Time-Decay usa uma meia-vida de 7 dias: uma interação 7 dias antes da conversão recebe metade do peso de uma interação no momento da conversão, e a ponderação continua sendo dividida pela metade a cada 7 dias adicionais.

Uma nota sobre o histórico de dados

Se a maioria das conversões de um período veio de uma única sessão, os modelos multi-touch (Linear, Position-Based, Time-Decay) parecerão muito semelhantes ao Last-Touch — há apenas um canal para distribuir o crédito. Isso é esperado, não um bug, e se resolve sozinho à medida que mais jornadas multi-sessão se acumulam.

Como cada modelo lê seus dados

Os cinco modelos não leem todos da mesma fonte:

  • Last-Touch e First-Touch usam cada um um único snapshot. Last-Touch credita o canal registrado na sessão de conversão; First-Touch credita o canal da primeira sessão registrada do visitante. Nenhuma reconstrução de jornada é necessária.
  • Linear, Position-Based e Time-Decay reconstroem a jornada multi-sessão completa do visitante, recuperando cada visita registrada antes da conversão e distribuindo o crédito entre as sessões encontradas.

Uma consequência dessa diferença: sobre os mesmos dados brutos, os modelos podem concordar completamente ou divergir visivelmente, dependendo de quantas sessões e canais distintos um visitante percorreu antes de converter. Um visitante com uma jornada de única sessão dará a mesma resposta a todos os modelos. Um visitante com cinco sessões em três canais produzirá resultados mensuralmente diferentes em cada modelo.

Por que seus modelos podem parecer quase idênticos

Quando você alterna entre modelos de atribuição e o detalhamento de canais mal se altera, os dados estão se comportando corretamente — não é um problema de exibição.

Se a maioria das suas conversões veio de visitantes que tiveram apenas uma sessão (ou que utilizaram consistentemente um único canal antes de converter), cada modelo atribui matematicamente 100% do crédito a esse canal. Last-Touch, First-Touch, Linear, Position-Based e Time-Decay chegam todos ao mesmo resultado porque não há nada a distribuir de forma diferente. À medida que seu público cresce e mais visitantes tocam múltiplos canais em múltiplas sessões antes de converter, os modelos divergirão e a comparação se tornará mais informativa.

Alguns pontos adicionais a ter em mente ao comparar modelos:

  • O tráfego de IA é sempre creditado ao canal dedicado ai sob qualquer modelo de atribuição. A detecção de IA tem prioridade sobre o caminho de toques, portanto a linha de IA permanece constante quando você muda de modelo.
  • Uma conversão sem valor monetário ainda conta para a atribuição de conversões. Comparações ponderadas por receita exigem que um valor monetário esteja vinculado à meta — sem ele, essas conversões aparecem nas contagens, mas não contribuem para os totais de receita exibidos por cada modelo.

Dimensões UTM vazias

A maioria dos visitantes não carrega todos os parâmetros UTM. Em dados reais do Zenovay hoje, utm_term é ≈100% nulo e utm_content ≈99.99% nulo. A aba Sources mostra um empty-state com uma dica copiável (?utm_term=...) em vez de uma barra única em 100% de (none).

Relacionado

Esta página foi útil?