Sobre o projeto

O ActiveAnalytics é um motor Rails que pode ser montado diretamente dentro de uma aplicação Ruby on Rails para fornecer analytics de tráfego simples e first-party. Seu objetivo declarado é a privacidade: não coleta cookies, não envia JavaScript, não depende de serviços de terceiros e, portanto, não é algo que bloqueadores de anúncios ou extensões de privacidade precisem bloquear. O que o dashboard relata - Fontes: as páginas e domínios que trazem tráfego para a aplicação. - Visualizações de página: quais páginas são vistas com mais frequência. - Próxima/anterior página: as páginas de entrada e saída associadas a uma determinada página. - Estatísticas do navegador: quais navegadores e versões de navegador visitam o site. O README enfatiza que a ferramenta não revela nada sobre visitantes individuais. Instalação Adicione o gem ao Gemfile, execute bundle, instale e execute as migrações do motor, depois monte o motor em um endpoint escolhido no config/routes.rb: gem 'active_analytics' bundle rails active_analytics:install:migrations rails db:migrate # config/routes.rb mount ActiveAnalytics::Engine, at: "analytics" Por padrão, o dashboard estende ActionController::Base. Um controlador base personalizado pode ser configurado através de ActiveAnalytics.base_controller_class em um initializer. Coletando tráfego Duas abordagens são documentadas. A opção síncrona chama ActiveAnalytics.record_request(request), normalmente de um callback after_action no ApplicationController; é a mais simples de configurar, mas grava no banco de dados a cada requisição. A opção assíncrona chama ActiveAnalytics.queue_request(request), enviando dados para o Redis para que nenhuma gravação no banco de dados ocorra por requisição; os dados em fila são posteriormente persistidos chamando ActiveAnalytics.flush_queue de uma tarefa cron ou job em segundo plano. O README sugere fazer flush regularmente e fazer o último flush do dia às 23:59 para que as cifras diárias não sejam deslocadas para o dia seguinte. O Redis pode ser configurado com ActiveAnalytics.redis_url ou uma conexão ActiveAnalytics.redis personalizada. Os exemplos recomendam registrar apenas respostas HTML, filtrar para um domínio canônico e usar um gem de detecção de bots para pular crawlers. URLs sensíveis, como páginas de redefinição de senha, podem ser excluídas com skip_after_action. Autenticação Como a autenticação difere por aplicação, o motor não presume nenhum esquema. O README mostra o monkey patching de ActiveAnalytics::ApplicationController com um before_action que dispara um erro de roteamento para não-admins, carregado via config.after_initialize para não ser recarregado no desenvolvimento. Com o Devise, o mount pode ser envolvido em um block authenticate no routes.rb. Licenciamento e procedência O ActiveAnalytics é lançado como open source sob a MIT License e é feito pela Base Secrète, que também desenvolve a ferramenta de monitoramento RoRvsWild Rails.