CiudadLab
Todos os projetos
Produto próprio · Analytics

Radar CiudadLab

O Google Analytics do seu site, traduzido para o que importa no seu negócio: de onde vem o cliente, que página funciona e onde ele desiste.

Java 17 · Spring BootArquitetura hexagonalGoogle Analytics Data APIPostgreSQL · FlywayNext.jsDocker · NginxVercelGitHub ActionsNo ar desde nov/2026
Tela ilustrativa com uma loja fictícia e dados de exemplo.

O problema

Quase todo site tem o Google Analytics instalado, e quase nenhum dono de negócio abre. O painel é feito para analista: dezenas de relatórios, termos em inglês e nenhuma resposta direta para a pergunta que importa, que é se o site está trazendo cliente.

A solução

O Radar lê o Analytics todo dia, compara com o período anterior e entrega uma leitura curta em português: o que cresceu, o que caiu e qual página merece atenção. O dono do negócio recebe a conclusão, não o painel.

Como funciona

  1. 01

    Conecta

    O site dá ao Radar acesso só de leitura ao Analytics, por uma conta de serviço do Google.

  2. 02

    Sincroniza

    Todo dia às 6h, o Radar busca os números do dia anterior e guarda o histórico.

  3. 03

    Compara

    Últimos 7, 28 ou 90 dias, sempre lado a lado com o período anterior.

  4. 04

    Traduz

    Uma leitura em linguagem simples, com o alerta do que merece atenção.

Um mês no Radar

Exemplo ilustrativo. O Ateliê Exemplo é uma loja fictícia, e todos os números desta seção foram inventados para mostrar como o Radar lê um site. Nenhum dado de cliente real aparece aqui.

Imagine uma loja de roupas que vende pelo site e fecha os pedidos no WhatsApp. A dona tem o Google Analytics instalado desde o lançamento, mas nunca abriu. É isto que o Radar mostra para ela no fim do mês.

DE ONDE VIERAM AS VISITAS

Instagram38%
Google31%
Direto19%
Outros12%

PÁGINAS MAIS VISITADAS

PáginaVisitasWhatsApp
/vestidos4126
/38817
/conjuntos20111
/sobre967
O que o Radar apontou
A página de vestidos é a mais visitada e a que menos converte: 412 visitas e só 6 cliques no WhatsApp. O botão fica no fim da página, depois de todas as fotos.
O que mudou no site
O botão de WhatsApp passou a acompanhar a rolagem em cada produto, com a mensagem já dizendo qual peça a cliente viu.
O mês seguinte
Os cliques no WhatsApp a partir de /vestidos foram de 6 para 23. A leitura do Radar do mês seguinte já começou por essa mudança.

Em números

131

testes automatizados

16

endpoints na API

5

migrations versionadas

06h

sincronização diária com o Google

Do código à produção

O mesmo cuidado de produção que vai para o seu projeto

Onde roda

A API e o banco ficam num servidor próprio, e o painel fica na Vercel, perto de São Paulo. O banco não fica acessível pela internet.

Como protege

Só o painel conversa com a API, o login tem limite de tentativas e uma sessão pode ser encerrada na hora, de qualquer lugar.

Como é testado

Cada mudança passa por 131 testes automáticos antes de ir ao ar, inclusive os de segurança.

Como chega ao ar

Tudo empacotado em containers, com HTTPS e certificado renovado sozinho. Atualizar o sistema é um comando.

Decisões técnicas

  • Acesso só de leitura: O Radar entra no Analytics por uma conta de serviço com papel de leitor. Ele não altera nada na conta do cliente e o acesso pode ser revogado a qualquer momento.
  • Histórico próprio: Os números são sincronizados uma vez por dia e guardados em PostgreSQL. As telas leem do banco do Radar, sem chamar a API do Google a cada clique.
  • Arquitetura hexagonal: O Google Analytics entra como adapter. A regra de comparar períodos e montar a leitura fica no domínio, sem depender da API.
  • SQL onde faz sentido: As tabelas de métricas usam JDBC com consultas escritas à mão, que é mais simples para agregação por período. JPA fica para o módulo de leads.
  • Segurança: Spring Security com JWT e acesso ao painel restrito ao administrador: o cliente recebe a leitura dos números, não um login. O login tem limite de tentativas, o token pode ser revogado na hora e, no frontend, fica num cookie httpOnly.
  • Sessão revogável: cada token carrega uma versão conferida no banco a cada requisição. Logout ou desativação encerram na hora todas as sessões do usuário.
  • Nega por padrão: toda rota nova nasce restrita ao administrador. O papel de leitor existe, mas só será liberado quando cada cliente estiver vinculado ao próprio site.
  • Só o frontend fala com a API: as chamadas passam pelo servidor do Next.js, que se identifica com uma chave própria. Requisições de fora são recusadas antes de chegar no login.
Resultado

No ar desde novembro de 2026, acompanhando todos os dias o próprio site da CiudadLab. O próximo passo é conectar os sites dos clientes que entram no acompanhamento.

O que está incluso

TODO SITE NOVO

90 dias de Radar

O Radar vem configurado na entrega, dentro da garantia, com a leitura mensal dos números nos primeiros 90 dias.

DEPOIS DISSO

Acompanhamento mensal

Leitura semanal e relatório no fim do mês, com o que mudar no site. Valor sob consulta.