Rastreamento de conversões
O Revolink pode rastrear o que os visitantes fazem depois de clicar no seu link: cadastros, compras, leads, visualizações de página e qualquer evento personalizado que você definir. Os resultados são exibidos por link, regra de roteamento e variante A/B, para você saber exatamente qual variação gera mais resultados.
Este guia cobre: configurar o rastreamento, instalar o SDK, rastrear eventos e ler os dados.
Como funciona
Quando um visitante clica no seu link do Revolink, o SDK detecta que a visita veio do seu link e inicia uma sessão. Todos os eventos disparados durante essa sessão são atribuídos ao link (e à regra de roteamento ou variante A/B específica com a qual o visitante correspondeu).
A atribuição começa pelo link
O SDK só rastreia eventos de visitantes que chegaram por um link do Revolink. Se alguém abrir o seu site diretamente, sem clicar em um link do Revolink, os eventos dessa pessoa não são contados. Isso mantém seus dados limpos e a atribuição precisa.
Passo 1 — Gere a chave do seu espaço de trabalho
Vá em Configurações do workspace → Rastreamento de conversões.

Clique em Gerar chave. O Revolink gera uma chave exclusiva para o seu espaço de trabalho e mostra o trecho de instalação.

Passo 2 — Instale o script
Copie o trecho do script e cole-o no <head> de cada página que você quer rastrear, normalmente no arquivo de layout global.
<script src="https://cdn.revolink.link/sdk/conversion.js"
data-workspace-key="YOUR_KEY"></script>
Substitua YOUR_KEY pela sua chave real (ela já vem preenchida no trecho das suas configurações).
Uma chave por espaço de trabalho
A chave pertence ao espaço de trabalho. Se você usa vários espaços de trabalho, cada um tem a sua própria chave: use a correta para cada site.
O que o SDK rastreia automaticamente
Depois de instalado, o SDK rastreia estes eventos sem nenhum código extra, mas apenas para visitantes que chegaram por um link do Revolink:
page_view
Disparado assim que o visitante abre a página. É o primeiro evento de qualquer sessão: confirma que a atribuição foi captada corretamente. Enviado por fetch para que o SDK possa detectar uma chave de espaço de trabalho inválida e suprimir o rastreamento seguinte, se necessário.
scroll_depth
Disparado quando o visitante sai da página (a aba fica oculta ou o navegador fecha). Captura o percentual máximo de rolagem alcançado durante a sessão, agrupado em 25, 50, 75 ou 100. Apenas valores diferentes de zero são enviados.
Usa upsert: se o visitante voltar à mesma página na mesma sessão, o valor é atualizado em vez de inserir um novo registro.
time_on_page
Disparado junto com scroll_depth quando a página é ocultada. Conta só o tempo em que a aba esteve de fato visível: trocar para outra aba pausa o cronômetro. O valor é em segundos.
Também usa upsert, então ir e voltar entre abas se acumula em um único registro por página e por sessão.
outbound_click
Disparado sempre que o visitante clica em um link (<a href>) que aponta para outro domínio. Captura o href completo como metadata.url. Útil para entender quais links externos os visitantes mais clicam.
Eventos de engajamento e cotas
scroll_depth, time_on_page e outbound_click não contam para a cota mensal de conversões do seu plano. Só os eventos explícitos contam.
Todos os eventos disponíveis
Automáticos (rastreados pelo SDK)
| Evento | Disparado quando | Conta para a cota |
|---|---|---|
page_view | A página carrega e o visitante veio por um link do Revolink | Sim |
scroll_depth | O visitante sai da página | Não |
time_on_page | O visitante sai da página | Não |
outbound_click | O visitante clica em um link para um domínio externo | Não |
Padrão (rastreie manualmente, recomendado)
Use estes nomes para eventos que correspondem a etapas comuns do funil. Eles aparecem nos cartões prontos do painel (leads, vendas, receita).
| Evento | Quando disparar | Suporta value/currency |
|---|---|---|
lead | Formulário de contato enviado, e-mail capturado | Não |
complete_registration | Nova conta criada | Não |
initiate_checkout | Página de checkout aberta | Não |
subscribe | Assinatura iniciada | Sim |
purchase | Pagamento concluído | Sim |
view_content | Página de conteúdo-chave vista (produto, preços) | Não |
Lógica do funil
lead tem deduplicação: se a mesma combinação de sessão + link já tiver um evento lead, um segundo não é inserido. Isso evita contagem em dobro por reenvios de formulário. Eventos personalizados com countAs: 'lead' recebem a mesma deduplicação.
Eventos que têm value definido (inclusive com nomes fora do padrão) são contados como vendas no painel.
Eventos personalizados
Você pode disparar qualquer nome de evento de até 64 caracteres. Eventos personalizados aparecem no detalhamento por evento da página Conversões, junto com os padrão. Eles contam para a sua cota mensal.
revolink.track('video_played');
revolink.track('calculator_used', { tool: 'roi' });
revolink.track('coupon_applied', { code: 'SUMMER10' }, 0, 'USD');
Por padrão, eventos personalizados aparecem como cliques no resumo do painel (contagens de Leads / Vendas). Para que contem como leads ou vendas, adicione countAs aos metadados:
revolink.track('signup_completed', { countAs: 'lead' });
revolink.track('order_placed', { countAs: 'sale' }, 59.99, 'USD');
Valores permitidos: 'lead', 'sale'. Se countAs for omitido, o evento conta como clique (padrão).
Rastreamento por atributos HTML
Sem precisar de JavaScript: adicione data-revolink-action a qualquer elemento e o SDK dispara o evento automaticamente quando o elemento é clicado:
<button
data-revolink-action="purchase"
data-revolink-value="49.99"
data-revolink-currency="USD"
data-revolink-metadata='{"plan":"pro"}'>
Buy now
</button>
| Atributo | Obrigatório | Descrição |
|---|---|---|
data-revolink-action | Sim | Nome do evento a disparar |
data-revolink-value | Não | Valor monetário (número) |
data-revolink-currency | Não | Código de moeda de 3 letras |
data-revolink-metadata | Não | Objeto JSON com dados extras (até 10 chaves) |
Identificação de usuários
Chame revolink.setUser() antes de rastrear eventos para anexar um identificador a cada evento. Isso melhora a atribuição quando a mesma pessoa visita por vários dispositivos ou em várias sessões.
revolink.setUser({
userId: 'user_123', // your internal user ID
hashedEmail: sha256(email) // SHA-256 hash of the email, never raw
});
Nunca envie o e-mail em texto puro
Sempre aplique hash SHA-256 ao e-mail antes de enviá-lo. O Revolink armazena apenas o hashedEmail e não consegue revertê-lo.
Depois de chamar setUser, todas as chamadas seguintes de revolink.track() nessa sessão incluem os identificadores.
Rastreamento no servidor
Enviar eventos do seu backend contorna bloqueadores de anúncios e o ITP (Intelligent Tracking Prevention). Use para eventos de alto valor, como compras, em que a precisão importa mais.
Endpoint: POST /apiv1/track-conversion
Autenticação: Authorization: Bearer YOUR_KEY
Para se proteger de requisições falsificadas, o Revolink suporta assinatura de requisições com HMAC. O seu segredo HMAC aparece na aba Rastreamento de conversões, em HMAC Secret.
// Node.js example
const crypto = require('crypto');
const payload = JSON.stringify({
event: 'purchase',
value: 49.99,
currency: 'USD',
userId: 'user_123',
linkSlug: 'my-campaign' // optional — attribute to a specific link
});
const signature = crypto
.createHmac('sha256', HMAC_SECRET)
.update(payload)
.digest('hex');
fetch('https://api.revolink.link/apiv1/track-conversion', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer YOUR_KEY`,
'X-Revolink-Signature': signature
},
body: payload
});
Campos do corpo:
| Campo | Tipo | Descrição |
|---|---|---|
event | string | Nome do evento (obrigatório) |
value | number | Valor monetário |
currency | string | Código de moeda ISO de 3 letras |
sessionId | string | ID da sessão (para vincular a uma sessão do navegador) |
userId | string | Seu ID de usuário interno |
hashedEmail | string | Hash SHA-256 do e-mail do usuário |
linkSlug | string | Slug do link do Revolink ao qual atribuir este evento |
ruleId | string | ID da regra de roteamento (para atribuição no nível da regra) |
abVariantId | string | ID da variante A/B (para atribuição no nível A/B) |
metadata | object | Dados personalizados chave/valor (até 10 chaves, 64 caracteres cada). Defina countAs: 'lead' ou countAs: 'sale' para controlar como um evento personalizado é contado nos resumos do painel. |
page | string | URL da página onde o evento ocorreu |
referrer | string | URL do referenciador |
Se conversionHmacSecret estiver definido no seu espaço de trabalho, o cabeçalho X-Revolink-Signature é obrigatório: requisições sem assinatura válida são rejeitadas.
Ver os dados de conversão
Vá à seção Conversões na navegação à esquerda.

A página tem duas abas:
Aba Eventos
Mostra todos os eventos rastreados (exceto os eventos automáticos de engajamento).
No topo: métricas de resumo: total de conversões, contagem de leads, contagem de vendas e receita por moeda.
Abaixo: um gráfico de conversões no período selecionado e uma tabela de eventos individuais com nome do evento, dispositivo, página, valor e carimbo de data/hora.
Filtros: restrinja os dados por nome do evento, tipo de dispositivo, moeda, valor ou slug do link.
Aba Engajamento

Mostra as métricas automáticas de engajamento:
- Profundidade de rolagem: distribuição de até onde os visitantes rolaram (25%, 50%, 75%, 100%)
- Tempo na página: detalhamento das sessões por duração: menos de 30 s, 30–60 s, mais de 60 s; além da média
- Cliques de saída: principais URLs externas clicadas, com a contagem
Atribuição: links, regras e variantes A/B
Cada evento é atribuído ao link, à regra de roteamento e à variante A/B específicos com os quais o visitante correspondeu ao clicar no seu link.
Você pode ver esse detalhamento em:
- Análise do link: abra qualquer link, vá à aba Análise e role até Conversões para ver os eventos atribuídos a esse link
- Página Conversões: filtre por link para ver apenas os eventos de uma campanha específica

Se você executa um teste A/B ou regras de roteamento em um link, os dados de conversão mostram os resultados por regra e por variante, para comparar diretamente qual versão converte melhor.
Regenerar a chave
Você pode regenerar a chave do seu espaço de trabalho a qualquer momento em Configurações do workspace → Rastreamento de conversões (apenas para proprietários do espaço de trabalho).
Atualize a tag do script imediatamente
Depois de regenerar, a chave antiga deixa de funcionar. Qualquer página que ainda use a chave antiga registrará um aviso no console do navegador e deixará de rastrear. Atualize o atributo data-workspace-key da sua tag de script em todas as páginas o quanto antes.

Limites do plano
Cada plano inclui uma cota mensal de eventos de conversão. Eventos de engajamento (scroll_depth, time_on_page, outbound_click) não contam para a cota; só os eventos explícitos contam.
Quando a cota é atingida, novos eventos são rejeitados com HTTP 429 e você recebe uma notificação. Os eventos existentes são preservados. A cota é renovada no seu ciclo de cobrança.
Perguntas frequentes
O SDK rastreia visitantes que não vieram de um link do Revolink?
Não. O SDK procura um cookie de atribuição do Revolink (_rvl_rl). Se ele não existir, o SDK sai imediatamente e não rastreia nada. É de propósito: só o tráfego originado dos seus links é contado.
O que acontece se um visitante bloquear o JavaScript ou usar um bloqueador de anúncios?
Os eventos do SDK no navegador serão bloqueados. Use o rastreamento no servidor para eventos de alto valor que você não pode perder.
Posso rastrear o mesmo evento pelo SDK do navegador e pelo servidor?
Pode, mas é possível contar a mesma conversão duas vezes. Use sessionId no evento do servidor para associá-lo à sessão do navegador e mantenha sua lógica consistente.
Os dados de e-mail são armazenados com segurança?
O Revolink nunca armazena e-mails em texto puro. Só o hash SHA-256 é armazenado. Você mesmo deve aplicar o hash ao e-mail antes de chamar revolink.setUser() ou de incluí-lo em um evento do servidor.
O que é a assinatura HMAC e eu preciso dela?
A assinatura HMAC permite que o Revolink verifique que os eventos do servidor foram enviados pelo seu backend e não são falsificados. Se o seu espaço de trabalho tiver um segredo HMAC configurado, toda requisição do servidor deve incluir o cabeçalho X-Revolink-Signature. É fortemente recomendada em produção.
Posso enviar eventos monetários sem moeda?
Não. Se você enviar value sem currency (ou vice-versa), os dois campos são descartados silenciosamente. Envie sempre juntos.
Quais nomes de evento devo usar?
Use os nomes padrão (lead, purchase, subscribe, complete_registration, initiate_checkout) sempre que possível: eles correspondem aos funis prontos do painel. Nomes personalizados também funcionam, mas aparecem apenas no detalhamento «por evento».
Como faço um evento personalizado contar como lead ou venda?
Adicione countAs: 'lead' ou countAs: 'sale' aos metadados do evento. Isso informa ao Revolink como categorizar o evento no resumo de Leads/Vendas e nos gráficos do funil. Sem countAs, eventos personalizados são contados como cliques.
Quantas chaves de metadados posso anexar a um evento?
Até 10 chaves por evento. As chaves são truncadas em 64 caracteres. Os valores devem ser strings, números ou booleanos.