このプロジェクトについて
ActiveAnalyticsは、Ruby on RailsアプリケーションにマウントできるRailsエンジンであり、シンプルでファーストパーティのトラフィック解析を提供します。設計上の目的はプライバシーで、Cookieを集めず、JavaScriptを提供せず、サードパーティサービスに依存しないため、広告ブロッカーやプライバシー拡張機能にブロックされることはありません。
ダッシュボードで報告される内容
- ソース: アプリケーションへのトラフィックをもたらすページやドメイン
- ページビュー: 最も頻繁に閲覧されるページ
- 次のページ/前のページ: あるページに関連する入り口ページと出口ページ
- ブラウザ統計: サイトを訪問するブラウザおよびブラウザバージョン
READMEでは、このツールが個々の訪問者について何も開示しないことが強調されています。
インストール
Gemfileにgemを追加し、bundleを実行し、エンジンのマイグレーションをインストールして実行したうえで、config/routes.rbで任意のエンドポイントにエンジンをマウントします:
gem 'active_analytics'
bundle
rails active_analytics:install:migrations
rails db:migrate
# config/routes.rb
mount ActiveAnalytics::Engine, at: "analytics"
デフォルトではダッシュボードはActionController::Baseを継承します。カスタムベースコントローラはイニシャライザでActiveAnalytics.base_controller_classを設定することで構成できます。
トラフィックの収集
2つのアプローチが文書化されています。同期オプションではApplicationControllerのafter_actionコールバックから通常ActiveAnalytics.record_request(request)を呼び出します。セットアップは最もsimpleですが、すべてのリクエストでデータベースに書き込みます。非同期オプションではActiveAnalytics.queue_request(request)を呼び出し、データをRedisにプッシュしてリクエストごとのデータベース書き込みが発生しません。キューに登録されたデータは、cronタスクまたはバックグラウンドジョブでActiveAnalytics.flush_queueを呼び出すことで後で永続化されます。READMEでは定期的にフラッシュし、日付が翌日にシフトされないよう最終フラッシュを23:59に行うことを推奨しています。RedisはActiveAnalytics.redis_urlまたはカスタムActiveAnalytics.redisで構成できます。
例ではHTMLレスポンスのみを記録し、正準ドメインにフィルタリングし、bot検出gemを使用してクローラーをスキップすることが推奨されています。パスワード再設定ページなどの機密性の高いURLはskip_after_actionで除外できます。
認証
認証はアプリケーションごとに異なるため、エンジンは方式を想定しません。READMEではbefore_actionを含むActiveAnalytics::ApplicationControllerのモンキーパッチング例を示しており、開発環境で再読み込みされないようconfig.after_initializeから必要とされます。Deviseを使用する場合、マウントをroutes.rbのauthenticateブロックで囲むことができます。
ライセンスと由来
ActiveAnalyticsはMIT Licenseの下でオープンソースとして公開されており、RoRvsWild Rails監視ツールの開発でも知られるBase Secrèteによって制作されました。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.