Movimento
Analytics que criei do zero para os sites dos meus clientes: sem cookie, sem custo mensal e com o número que importa pro dono do negócio.
O cliente quer saber se o site traz gente. As opções prontas não cabiam no meu modelo.
No ar desde 24/09/2026Resultado

Como funciona
Problema
Eu vendo site sem mensalidade. O Pirsch cobra a partir de US$ 6/mês, o Umami grátis aceita só 3 sites e o Google Analytics exige banner de cookies e é confuso pra quem não é de tecnologia. Nenhuma opção grátis juntava muitos sites, link pro cliente e contagem de cliques no WhatsApp.
Solução
Um Worker no Cloudflare que recebe as visitas, grava no D1 e mostra um painel simples com o que o dono do negócio entende: visitas, de onde vieram, quantas pelo celular e quantas pessoas clicaram no WhatsApp.
723 bytes com gzip
hash do visitante
datas em UTC
Service Binding (RPC)
O t.js também registra sozinho os cliques em links wa.me, o número que mais importa pro cliente.
Decisões que tomei
Visitante único sem cookie
sha256(sal_do_dia + ip + user_agent + site), com sal_do_dia = HMAC(segredo, data). O IP nunca é gravado e o hash muda todo dia, então não dá pra seguir ninguém. Mesma técnica do Plausible e do Pirsch.
Números só por dentro
O Movimento não tem rota pública de números: só uma entrada RPC (WorkerEntrypoint) que o Service Binding do site alcança. O site confere o login Google e, a cada pedido, se aquele e-mail pode ver aquele site.
Números que batem com a realidade
Filtro de robô pelo user-agent e de datacenter pela rede de origem (ASN), recarregar a mesma página em menos de 10 s não conta de novo, datas gravadas em UTC e mostradas no fuso de Fortaleza. Um comando de conferência manda uma visita de teste em produção, confere no banco e apaga só essas linhas.
Como validei
Piloto em 2 sites de clientes, comparando dia a dia e hora a hora com o GoatCounter pela API. Meta: diferença de visitantes abaixo de 15%. Num deles o Movimento contava 33% a mais. Hora a hora, a sobra eram 6 visitas de madrugada vindas de servidores na França, nos EUA e na Alemanha, com user-agent de navegador comum: robôs que o filtro por user-agent deixava passar. Entrou um filtro pela rede de origem (ASN de nuvem e hospedagem), essas visitas saíram da conta e a diferença caiu pra 13%.
Com 1 a 3 visitantes por dia, uma pessoa a mais ou a menos já muda vários pontos da porcentagem: o piloto mostrou mais onde os números divergem do que uma taxa final.
Alternativas avaliadas
| Opção | Grátis? | Por que não |
|---|---|---|
| Pirsch | Não | A partir de US$ 6/mês |
| Umami Cloud | Sim | Só 3 sites |
| Google Analytics | Sim | Cookies, banner LGPD, confuso pra leigo |
| Cloudflare Web Analytics | Sim | Sem link pro cliente, sem evento de WhatsApp |
| Movimento | Sim | Escolhido |