Redirecionamento que conta o clique e repassa o ref
Resposta curta
Você publica na Systeme.io um endereço que conta cada carregamento como clique e entrega o visitante na página de destino com o identificador da URL intacto. São cinco etapas no painel, dois scripts curtos e três testes que você mesmo roda no navegador, sem instalar nada.
Assunto: Ferramentas grátis
Por Alan Victor · · · 7 min de leitura
- 1crie o passo que recebe o clique
- 2cole o script que lê e repassa o identificador
- 3rode os três testes
- 4leia o número de cliques e saiba o que ele não conta
- 5faça o identificador sobreviver ao segundo salto
No fim deste guia você tem um endereço publicado na Systeme.io que conta cada carregamento como um clique e entrega o visitante na página de destino com o identificador que veio na URL. É tudo dentro do painel: cinco etapas, dois scripts curtos e três testes que você roda no próprio navegador.
Sai um guia por dia, e o canal do Telegram avisa quando sai. A ferramenta que eu uso para a página, a captura e o e-mail automático no mesmo lugar é a Systeme.io, que tem plano gratuito.
O que você vai ter no fim
- Uma URL de redirecionamento publicada na Systeme.io que aceita
?ref=e repassa o valor adiante. - O número de cliques aparecendo na estatística do passo do funil, sem instalar nada.
- Um teste de três casos que você roda sozinho e confere no console e na barra de endereço.
Etapa 1: crie o passo que recebe o clique
Resposta direta: você cria um passo de página em branco num funil da Systeme.io, publica e passa a usar a URL desse passo como o link que conta e redireciona.
No painel, abra Funis, crie um funil novo e adicione um passo do tipo Página. Escolha o modelo em branco: aqui não entra texto nem formulário, é uma página que carrega e sai do caminho.
Publique o funil e publique o passo. Copie a URL do passo, a que aparece no topo do editor. É esse endereço que você vai divulgar.
Resultado: abrir a URL mostra uma página vazia. Se aparecer erro de página não encontrada, o passo ou o funil ainda está como rascunho — publique os dois e recarregue.
Eu monto isso na Systeme.io porque funil, página e estatística ficam no mesmo painel: você não junta três ferramentas para contar um clique. E o plano grátis já publica esse passo hoje, sem cartão.
Etapa 2: cole o script que lê e repassa o identificador
Resposta direta: um script curto lê o parâmetro ref, limpa o valor e troca a página pelo destino já com o identificador na URL.
No editor do passo, abra as configurações da página e procure o bloco de código personalizado. Cole o código abaixo no campo do corpo (body), não no head. Salve e publique de novo.
<script>
(function () {
var params = new URLSearchParams(window.location.search);
var ref = params.get('ref') || params.get('utm_source') || 'sem-id';
ref = ref.replace(/[^A-Za-z0-9._-]/g, '').slice(0, 32);
if (!ref) ref = 'sem-id';
var destino = 'https://SEU-DESTINO.com/pagina';
var alvo = new URL(destino);
alvo.searchParams.set('ref', ref);
console.log('ref:', ref);
console.log('destino:', alvo.toString());
window.location.replace(alvo.toString());
})();
</script>
O que cada parte faz: URLSearchParams lê a query string; sem ref, o valor vira sem-id; a expressão regular derruba tudo que não for letra, número, ponto, hífen ou sublinhado; slice(0, 32) corta em 32 caracteres, tamanho que cabe em qualquer campo de texto sem truncar; location.replace troca a página sem deixar a de redirecionamento no histórico do botão voltar.
Troque https://SEU-DESTINO.com/pagina pelo endereço real. Se esse endereço for a própria página de redirecionamento, o navegador entra em laço.
A vantagem de fazer isso na Systeme.io é o campo de código existir na própria página, sem instalar extensão nem plugin. A mesma conta que guarda o passo guarda a página de destino e a lista — você não fica pulando de painel.
Etapa 3: rode os três testes
Resposta direta: abra a URL do passo três vezes, com identificadores diferentes, e confira na barra de endereço e no console o valor que chegou no destino.
Abra o console do navegador antes de testar. Com o código no lugar, cada teste imprime duas linhas:
ref: abc123
destino: https://SEU-DESTINO.com/pagina?ref=abc123
Se as linhas não aparecerem e a página ficar parada, o console mostra o erro de sintaxe em vermelho, quase sempre porque o editor trocou as aspas retas por aspas curvas.
| URL que você abre | ref que chega | O que confirma |
|---|---|---|
.../passo?ref=abc123 | abc123 | o repasse funciona |
.../passo | sem-id | o valor padrão entra quando não há parâmetro |
.../passo?ref=ABC 123! | ABC123 | a limpeza corta espaço e exclamação |
O laço tem assinatura própria: a tela mostra ERR_TOO_MANY_REDIRECTS e a página não carrega. Isso acontece quando o destino aponta de volta para a URL do passo.
Para fazer isso sem montar servidor
O que este guia faz por API, a Systeme.io faz por formulário: página, lista, etiqueta e e-mail automático na mesma conta. É a conta em que eu testo o que aparece aqui, e o plano gratuito já dá para publicar e capturar.
Etapa 4: leia o número de cliques e saiba o que ele não conta
Resposta direta: cada carregamento do passo entra como uma visita na estatística do funil, então o contador de cliques é a coluna de visitas daquele passo.
Abra o funil e vá em estatísticas. Recarregue a URL duas vezes e o número sobe dois — esse é o teste de que o contador está ligado.
O que ele não conta: pessoas únicas e cliques de robô. Quando você cola o endereço no WhatsApp, o aplicativo busca a página para gerar a prévia, e essa busca pode entrar na conta. Trate o número como ordem de grandeza, não como auditoria.
Uma conferência que vale a pena: abra as ferramentas de desenvolvedor, aba Rede, e recarregue. A página do passo responde 200. Ela não responde 301 nem 302, porque o desvio acontece no navegador, depois de a página carregar. Um 301 é resolvido no servidor e o navegador nem chega a carregar uma página — e sem página carregada não há visita para contar.
Etapa 5: faça o identificador sobreviver ao segundo salto
Resposta direta: na página de destino, um segundo script copia o ref para os links internos, para o valor chegar ao checkout ou ao formulário.
Sem isso o identificador morre na primeira página: ele fica na barra de endereço e ninguém lê. Cole este bloco no corpo da página de destino, também no código personalizado.
<script>
(function () {
var ref = new URLSearchParams(window.location.search).get('ref') || '';
if (!ref) return;
var links = document.querySelectorAll('a[href]');
for (var i = 0; i < links.length; i++) {
var url = new URL(links[i].href, window.location.href);
url.searchParams.set('ref', ref);
links[i].href = url.toString();
}
})();
</script>
Resultado: todo link interno da página passa a carregar o mesmo ref. Confira passando o mouse sobre o botão e olhando o endereço na barra de status do navegador. Se o botão não for um link de verdade, o script não o alcança — é o caso de trocar o botão por um elemento de link no editor.
É aqui que a Systeme.io economiza tempo: a página de destino, o formulário e a automação de e-mail vivem no mesmo painel, então o segundo salto não vira uma integração a mais para manter.
Dá para fazer isso sem uma página no meio?
Não com contagem própria. A visita é o que a Systeme.io registra; sem página carregada não existe visita. Juntar outra ferramenta só para encurtar o link até conta o clique, mas você perde o controle do que ela faz com o identificador e passa a olhar dois painéis em vez de um.
Existe também o caminho de automatizar pela API da Systeme.io, criando o contato direto com o ref sem passar por formulário — a documentação oficial da API lista os campos aceitos. Para hoje, o painel resolve e não expõe chave nenhuma no navegador.
Se você ainda não tem conta, esse é o momento mais barato de começar: criar a conta grátis na Systeme.io pelo botão desta página e fazer a Etapa 1 agora, enquanto o guia está aberto. Cada dia sem um endereço que conta clique é um dia de visita que vai embora sem você saber de onde veio.
O que eu não vou afirmar
- Não afirmo que a contagem de visitas seja exata. Recarregamento, robô e prévia de link entram na conta e eu não tenho como separar isso por você.
- Não afirmo que o identificador chegue ao checkout sozinho. Ele só anda até onde algum código o repassa.
- Não afirmo número de cliques, de conversão ou de faturamento. O guia entrega o encanamento, não o resultado.
- Não afirmo que funcione com JavaScript desligado ou bloqueado. Nesse caso o visitante fica na página vazia e o clique é contado sem desvio.
- Não afirmo quais recursos o seu plano libera. Se o campo de código personalizado não aparecer no editor do passo, é o plano da conta — a central de ajuda da Systeme.io lista o que cada um abre, e o plano pago é o próximo degrau de quem está crescendo.
Travou em alguma etapa?
Abra uma discussão em github.com/alanvito1/funil-simples dizendo em que passo parou. Dúvida que aparece mais de uma vez tem boa chance de virar guia, e o código deste site está no mesmo lugar, aberto.
Se ainda não tem onde publicar o que montou, a conta gratuita da Systeme.io resolve a página e a lista.
Perguntas frequentes
Como contar cliques em um link sem servidor próprio?
Dá para contar com uma página de redirecionamento na Systeme.io: cada carregamento do passo entra como visita na estatística do funil, e um script curto desvia o visitante para o destino levando o identificador na URL. Não precisa de servidor nem de instalação.
O parâmetro ref se perde no redirecionamento?
Não, desde que o desvio seja feito por script, porque ele lê a query string da página de entrada e remonta o endereço de destino com o mesmo valor. Um redirecionamento de servidor também preserva o parâmetro, mas não deixa página carregada para contar a visita.
Redirecionamento em JavaScript é pior que 301?
É diferente. O 301 é resolvido no servidor e o navegador nem carrega a página intermediária, então não há visita para contar. O desvio por JavaScript carrega a página com status 200 e troca o endereço depois, e é esse carregamento que vira o número de cliques.
Funciona com domínio próprio?
Funciona igual na Systeme.io. O script lê a query string, que não muda com o domínio; o que muda é só o endereço que você divulga.
Quantos identificadores diferentes posso usar no mesmo link?
Quantos você quiser, desde que cada um caiba em 32 caracteres e use apenas letra, número, ponto, hífen ou sublinhado. O script corta o resto antes de montar o destino, então valores longos ou com espaço chegam alterados e o relatório não bate.
Leve isto com você
A planilha dos limites do seu plano
É planilha com catorze linhas do que realmente morde num plano gratuito — e por que cada uma morde — com três colunas para o seu número, o limite do plano e a hora de subir, cabeçalho preso no topo e filtro pronto.
Abra no Excel, no Google Planilhas ou no LibreOffice, preencha o seu número de hoje e o limite que aparece na página de planos da sua conta. Onde a folga acabar, é ali que o plano pago passa a valer. Sem cadastro, sem e-mail: o arquivo baixa direto.
Receba o resto por e-mail
Eu testo ferramenta de funil e e-mail e mando o que descubro.