Rybbit Analytics: uma alternativa ao Google Analytics sem cookies e alojada por si

O que é o Rybbit, como funciona e como se instala?
O Rybbit é uma ferramenta open source de análise web que acompanha os visitantes sem depender de cookies. É um projeto relativamente recente: a versão 1.0 saiu em maio de 2025, a 2.0 chegou em outubro de 2025 e, em outubro de 2026, a versão mais recente é a 2.9.1 (publicada a 12 de setembro de 2026). O código está no GitHub, sob a licença AGPL-3.0. A Tomato.gg LLC, a empresa norte-americana que o desenvolve, oferece também uma versão alojada para quem prefere não gerir o seu próprio servidor.
Usamo-lo no c9group.dev, alojado nos nossos próprios servidores, tal como fazemos com o Mautic. Quando queremos saber o que os visitantes fizeram de facto numa página, é a primeira ferramenta que abrimos. Este guia explica em que é bom, onde fica aquém e como o instalar.
Como funciona: um pequeno script, o script.js, é carregado a partir do seu servidor Rybbit e envia-lhe as visualizações de página e os eventos. Os eventos vão para o ClickHouse, uma base de dados em colunas feita precisamente para este tipo de contagem. As contas, os sites e as definições ficam no Postgres. O painel é uma aplicação Next.js, e a API por trás dele é um servidor Node.js.
Quais são as principais vantagens do Rybbit?
Sem cookies
O Rybbit não define cookies no sentido tradicional. O servidor reconhece os visitantes que regressam através de um hash do endereço IP e do agente de utilizador do navegador e, desde a versão 2.8, consegue também acompanhar um visitante cujo IP muda a meio da visita, ao comparar as características do navegador. O GA4, pelo contrário, depende de cookies e espera pelo consentimento: todos os visitantes que ignoram ou recusam o aviso ficam de fora dos relatórios (embora o Consent Mode da Google ajude a recuperar parte deles por modelação).
A ausência de cookies não significa que a questão do consentimento desapareça. O script de rastreio da versão 2.9 grava um identificador aleatório do visitante no armazenamento local do navegador em todas as visitas, sejam quais forem as suas definições; estes dados só são enviados para o servidor quando ativa as feature flags do Rybbit. A regra de consentimento da Diretiva Privacidade Eletrónica (artigo 5.º, n.º 3) abrange qualquer informação armazenada no equipamento do visitante, e não apenas cookies, e as Diretrizes 2/2023 do Comité Europeu para a Proteção de Dados interpretam-na de forma ampla. O RGPD também se aplica: o endereço IP continua a chegar ao seu servidor, e a própria documentação do Rybbit refere que o identificador com hash predefinido «may be considered storing personally identifiable data under GDPR» (pode ser considerado armazenamento de dados pessoais identificáveis à luz do RGPD).
Por isso, saber se o Rybbit pode funcionar antes de o visitante responder ao seu aviso de cookies é uma decisão de quem responde pela sua política de privacidade, e não algo que a expressão «sem cookies» resolva. As definições que limitam o que recolhe estão mais abaixo, em Definições de privacidade.
Detalhe das sessões com que pode trabalhar
Cada sessão inclui a origem do tráfego, os parâmetros UTM, o canal, a duração e as visualizações de página. Ative a captura automática e passa também a registar cliques em botões, envios de formulários, alterações em campos, texto copiado e cliques em ligações externas. «Interagiram com a página?» passa a ser um número que se mede, e não um palpite.
Se está a pagar tráfego, é aqui que vê se esses visitantes leram mesmo a página ou saíram ao fim de um segundo, antes de decidir aumentar o orçamento.
Gravação de sessões, funis e percursos na edição gratuita
A edição alojada por si inclui gravação de sessões, funis, percursos de utilizadores, métricas de retenção, objetivos, rastreio de erros e web vitals. É aí que o Rybbit se destaca das alternativas. O Matomo vende os mapas de calor e as gravações de sessões como plugins pagos nas instalações próprias. O Plausible deixa os funis e os percursos de utilizadores de fora da sua Community Edition gratuita.
Leve de manter
O Rybbit pede um servidor com pelo menos 2 GB de RAM. Um único VPS corre a stack completa, e a própria documentação estima entre 30 e 120 minutos para uma instalação própria.
Uma API e um servidor MCP
Tudo o que está no painel está disponível através de uma API REST, com uma chave de API pessoal. O Rybbit inclui também um servidor MCP, para que um assistente de IA como o Claude Code ou o Cursor consulte diretamente os seus números. Ambos funcionam com uma instância alojada por si.
Como instalar o Rybbit
Rybbit Cloud
O caminho mais rápido: crie uma conta, acrescente o seu domínio e cole uma tag de script. A cloud guarda os dados de análise em servidores da Hetzner na Alemanha e na Finlândia. Os planos e os preços estão mais abaixo, em Custos.
WordPress
Não há plugin oficial, mas também não faz falta. O guia do Rybbit para WordPress acrescenta a tag de script através de um plugin como o WPCode, ou através do functions.php ou do header.php de um tema filho. No WordPress.com, precisa do plano Business ou superior.
Alojado por si com Docker
Pequena escala: startups e sites pequenos
O que é preciso:
- Um VPS com pelo menos 2 GB de RAM. O Rybbit é testado em Ubuntu 24 LTS em x86_64; um servidor ARM tem de ser ARMv8.2-A ou mais recente, porque o ClickHouse o exige.
- Docker Engine e Git.
- Um subdomínio, como
analytics.example.com, com um registo A a apontar para o servidor. O HTTPS é obrigatório, já que os navegadores bloqueiam um script de rastreio servido por HTTP simples. Se o domínio estiver na Cloudflare, configure o registo como DNS only, ou o modo SSL como Full ou Full (strict).
Depois:
git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
chmod +x *.sh
./setup.sh analytics.example.com
O script cria um ficheiro .env e arranca os contentores: ClickHouse, Postgres, Redis, o backend, o painel e o Caddy, que obtém o certificado TLS. Abra https://analytics.example.com/signup e crie a primeira conta.
A seguir, feche a porta atrás de si. Acrescente DISABLE_SIGNUP=true ao .env e execute ./restart.sh, para que desconhecidos não possam abrir contas no seu servidor.
Se o servidor já tiver um proxy inverso como o Traefik ou o Nginx, execute ./setup.sh analytics.example.com --no-webserver. O Caddy fica de fora e é o seu proxy que termina o TLS.
Para atualizar: git pull e depois ./update.sh.
Grande escala: sites grandes e agências
O backend lê CLICKHOUSE_HOST, POSTGRES_HOST e REDIS_HOST a partir do ambiente, por isso cada base de dados pode passar para um servidor próprio sem mexer na aplicação. O ClickHouse é a parte que cresce: guarda todos os eventos e, se as gravar, todas as gravações de sessões. É a ele que deve dar primeiro uma máquina própria com armazenamento SSD rápido.
Na AWS, as imagens do backend e do painel correm no ECS Fargate como qualquer outro contentor, com o ClickHouse numa instância EC2 e o Postgres no RDS. As gravações de sessões são guardadas durante 30 dias por predefinição, através de um TTL em duas tabelas do ClickHouse que pode encurtar.
Se preferir não gerir nada disto, o plano Enterprise do Rybbit oferece uma instância dedicada ou uma instalação on-premise.
O script de rastreio
<script src="https://analytics.example.com/api/script.js?siteId=YOUR_SITE_ID" async></script>
Passe o ID do site no URL. O atributo antigo data-site-id continua a funcionar, mas plugins de otimização como o WP Rocket reconstroem as tags de script e eliminam os atributos data-.
As aplicações de página única não precisam de nada a mais. O script acompanha a navegação feita através da History API e regista cada mudança de rota como uma visualização de página, depois de um debounce de 500 ms. As rotas com hash que começam por #/ também são registadas.
Para os seus próprios eventos:
window.rybbit.event('quote_requested', { plan: 'pro' });
Os nomes dos eventos podem ter até 256 caracteres, e as propriedades (texto e números) até 2 KB.
Principais funcionalidades do Rybbit
Análise
- Sessões, utilizadores únicos, visualizações de página, taxa de rejeição e duração das sessões
- Painel em tempo real com um globo ao vivo
- Localização até ao nível do país, da região e da cidade
- Filtros em mais de 15 dimensões e segmentos guardados
- Eventos personalizados com propriedades
- Objetivos, funis, percursos de utilizadores e retenção
- Rastreio de erros de JavaScript não tratados
- Web vitals
- Deteção e filtragem de bots
Comportamento
- Gravação de sessões, com todos os valores introduzidos ocultados por predefinição
- Captura automática de cliques, envios de formulários, cópias e ligações externas
- Perfis de utilizadores, com nomes e atributos a partir do momento em que chama
rybbit.identify()para utilizadores com sessão iniciada
Partilha e integração
- Sites e organizações ilimitados, com equipas
- Painéis públicos e widgets incorporáveis
- API REST e servidor MCP
- Integração com o Google Search Console (na versão alojada por si, precisa de credenciais Google OAuth)
- Importação a partir do Plausible, do Umami e do Simple Analytics
Definições de privacidade
- User ID Salting: altera o hash do visitante todos os dias, pelo que o Rybbit esquece quem é cada pessoa ao fim de 24 horas. O custo é real: os utilizadores únicos em períodos mais longos ficam inflacionados e o relatório de retenção deixa de fazer sentido. Decida antes do lançamento, porque mudar depois quebra as suas linhas de tendência.
- Track IP Address: desligado, a não ser que o ligue. A documentação do Rybbit classifica o armazenamento de IP como «not GDPR compliant» (sem conformidade com o RGPD).
- Gravação de sessões: uma definição do site, ativa para todos os visitantes depois de ligada. Para gravar apenas os visitantes que deram consentimento, acrescente
data-replay-sample-rate="0"à tag de script para todos os outros. - Ocultação nas gravações: acrescente a classe
rr-blockpara deixar um elemento fora das gravações, err-maskpara substituir o seu texto por asteriscos. - Exclusões: por IP ou intervalo de IP, país, caminho, nome de anfitrião e agente de utilizador, aplicadas no servidor antes de qualquer dado ser guardado.
Porquê escolher o Rybbit em vez de outras soluções?
Face ao Google Analytics 4
- Cobertura: quando o pode carregar antes do consentimento, conta os visitantes que nunca respondem ao aviso (ver Sem cookies, acima)
- Localização dos dados: no seu servidor, ou na cloud do Rybbit alojada na UE
- Detalhe do comportamento: gravação de sessões, que o GA4 não tem, e um registo legível de cada sessão
- Onde o GA4 ganha: integração com o Google Ads, públicos para remarketing e atribuição baseada em dados
Face ao Matomo
Já instalámos os dois; veja o nosso guia do Matomo.
- O Matomo é mais antigo e mais abrangente: relatórios de comércio eletrónico, um gestor de tags, uma vasta biblioteca de plugins e um importador do seu histórico do Google Analytics. Corre em PHP e MySQL, que quase qualquer alojamento suporta.
- O Rybbit inclui mais de graça: gravações e funis sem plugins pagos, e um painel mais simples.
- Cookies: o Rybbit não define nenhum. O Matomo usa cookies próprios por predefinição e pode ser configurado sem eles.
- Histórico: o Rybbit não importa dados do Google Analytics nem do Matomo.
Se vende online ou precisa do seu histórico do GA, escolha o Matomo. Se quer ver o que os visitantes fazem, sem cookies pelo meio, escolha o Rybbit.
Face ao Plausible
- Nenhum dos dois define cookies, e ambos têm licença AGPL.
- A Community Edition gratuita do Plausible exclui funis, percursos de utilizadores, objetivos de receita de comércio eletrónico, SSO e a API de sites, e recebe uma versão nova duas vezes por ano.
- O Plausible não tem gravação de sessões.
- O Plausible é o mais simples dos dois. Se uma página com os números principais é tudo o que quer, isso conta a seu favor.
Onde o Rybbit fica aquém
- É jovem. A 1.0 saiu em maio de 2025 e as versões novas são frequentes. Leia as notas de versão antes de cada atualização.
- Não reporta conversões. O Rybbit mede o comportamento na página. O Google Ads e a Meta continuam a precisar do seu próprio acompanhamento de conversões, e uma contagem do Rybbit nunca deve ser lida como uma conversão.
- A captura automática identifica um botão pelo seu texto. Num site multilingue, o mesmo botão chega como um evento diferente em cada língua, pelo que um site em 19 línguas recebe 19 versões do mesmo clique. Em vez disso, envie um evento personalizado com nome próprio para cada passo do funil.
- A versão alojada por si não tem relatórios por email. A cloud tem.
- Obrigações da AGPL. Se modificar o Rybbit e o disponibilizar a terceiros através de uma rede, tem de publicar as suas alterações.
Requisitos técnicos
Em outubro de 2026, a versão mais recente é a 2.9.1.
Requisitos mínimos
- 2 GB de RAM
- x86_64, ou ARMv8.2-A ou mais recente
- Docker Engine e Git
- Um domínio ou subdomínio com HTTPS
Recomendado para produção
- 4 GB de RAM ou mais, já que o ClickHouse é a parte que mais memória consome
- Armazenamento SSD
- Cópias de segurança agendadas dos volumes do ClickHouse e do Postgres
- Registo de novas contas desativado depois da primeira
Custos
Alojado por si
- Software: gratuito, sob AGPL-3.0
- Servidor: um VPS pequeno para começar
- Manutenção: o seu tempo para atualizações e cópias de segurança
Rybbit Cloud
Preços em outubro de 2026, com faturação anual e um período experimental gratuito de 7 dias:
- Standard: desde 13 USD por mês para 100 000 visualizações de página mensais. Até 5 sites e 3 membros da equipa, 3 anos de retenção de dados, sem gravação de sessões.
- Pro: desde 26 USD por mês. Sites e membros da equipa ilimitados, gravação de sessões, 5 anos de retenção.
- Enterprise: preço sob consulta, incluindo uma instância dedicada ou on-premise.
Boas práticas
- Desative o registo de novas contas assim que a sua existir.
- Decida sobre o User ID Salting antes do lançamento. Alterá-lo depois quebra a continuidade das suas contagens de utilizadores.
- Deixe o seu próprio tráfego de fora. Exclua o
localhoste os domínios de pré-visualização pelo nome de anfitrião, e o seu escritório pelo IP. - Autorize o script na sua Content Security Policy. O seu domínio Rybbit tem de constar em
script-srce emconnect-src, caso contrário o navegador bloqueia-o e só a consola diz porquê. - Dê nomes próprios aos eventos do funil num site multilingue, em vez de confiar na captura automática.
- Oculte antes de gravar. Ponha
rr-blockem tudo o que mostre dados de clientes, como uma confirmação de encomenda, antes de ligar a gravação de sessões. - Faça cópias de segurança das duas bases de dados. O ClickHouse guarda os eventos, o Postgres guarda as contas e as definições.
- Mencione o Rybbit na sua política de privacidade, com o que recolhe, a entrada no armazenamento local, as gravações de sessões se as fizer e durante quanto tempo guarda os dados.
Casos de utilização comuns
- Sites de marketing: ver se o tráfego pago lê mesmo a página antes de aumentar o orçamento
- Produtos SaaS: funis, retenção e perfis para utilizadores com sessão iniciada
- Agências: sites, equipas e painéis públicos ilimitados para os clientes
- Empresas europeias: dados de análise nos seus próprios servidores, ou na cloud alojada na UE
- Depuração: rastreio de erros e a gravação da sessão em que algo correu mal
Precisa de ajuda para instalar o Rybbit?
Usamos o Rybbit em produção. Podemos tratar de:
- Instalação própria atrás do proxy inverso que já tem
- Migração a partir do Google Analytics, ou do Plausible ou do Umami com o seu histórico
- Eventos personalizados e funis que resistem à tradução
- Definições de privacidade e ocultação nas gravações verificadas face à sua política de privacidade
- Rybbit em conjunto com o Mautic, da visita anónima ao contacto identificado
Contacte-nos através de office@c9group.dev para uma consulta e um orçamento gratuitos.
Publicado: 15 de outubro de 2026 Categorias: Análise, Open Source, Privacidade
Analítica
Novos guias e alterações às regras por email
Quando uma regra muda, um prazo é alterado ou publicamos um novo guia, enviamo-lo por email.