Rybbit Analytics:Cookieを使わない、セルフホスト型のGoogle Analytics代替

Rybbitとは何か、どのように動作し、どのようにセットアップするのか?
Rybbitは、Cookieを設定せずに訪問者を数えるオープンソースのWebアナリティクスツールです。まだ歴史の浅いプロジェクトで、バージョン1.0は2025年5月30日に、2.0は2025年10月に公開されました。2026年10月15日時点の最新リリースは、2026年9月12日にタグ付けされた2.9.1です。コードはAGPL-3.0ライセンスでGitHubに公開されています。開発元の米国企業Tomato.gg LLCは、ホスティング版も販売しています。
当社はc9group.devでRybbitを使っており、Mauticと同じく自社のサーバーでセルフホストしています。訪問者がページで実際に何をしたのかを知りたいとき、最初に開くのがこのツールです。このガイドでは、Rybbitが得意なこと、足りないところ、そしてセットアップの方法を説明します。
動作の仕組みは次のとおりです。小さなスクリプトscript.jsがRybbitサーバーから読み込まれ、ページビューとイベントをそのサーバーに送り返します。イベントは、まさにこの種の集計のために作られたカラム型データベースであるClickHouseに入ります。アカウント、サイト、設定はPostgresに保存されます。ダッシュボードはNext.jsアプリで、その裏で動くAPIはNode.jsサーバーです。
Rybbitを使う主なメリットは何ですか?
Cookieなし
RybbitはCookieを一切設定しません。サーバーは、IPアドレスとブラウザのユーザーエージェントから作ったハッシュで再訪問者を見分けます。さらにバージョン2.8からは、訪問の途中でIPアドレスが変わった訪問者も、ブラウザの特徴を照合して同じ1人として扱います。対照的にGA4はCookieを設定して同意を待つため、バナーを無視した訪問者や拒否した訪問者は、すべてレポートから抜け落ちます(Googleの同意モードが、その一部をモデリングで補います)。
Cookieを使わないからといって、同意の問題がなくなるわけではありません。2.9のトラッキングスクリプトは、どう設定していても、訪問のたびにランダムな訪問者IDをブラウザのローカルストレージに書き込みます。このIDがサーバーに送られるのは、Rybbitのフィーチャーフラグを使う場合だけです。eプライバシー指令の同意ルール(第5条第3項)は、Cookieに限らず訪問者の端末に保存されるあらゆる情報を対象としており、欧州データ保護会議(EDPB)のガイドライン2/2023はこれを広く解釈しています。GDPRも適用されます。IPアドレスは変わらずサーバーに届きますし、Rybbit自身のドキュメントも、デフォルトのハッシュIDは「GDPRのもとでは個人を特定できるデータの保存とみなされる可能性がある」と書いています。
つまり、訪問者がバナーに回答する前にRybbitを動かしてよいかどうかは、自社のプライバシーポリシーに責任を持つ人が判断することです。「Cookieレス」という言葉で決まる話ではありません。収集する範囲を狭める設定は、後述の「プライバシー設定」で紹介します。
次の一手につながるセッションの詳細
どのセッションにも、流入元、UTMパラメーター、チャネル、滞在時間、ページビューが記録されます。自動キャプチャをオンにすると、ボタンのクリック、フォーム送信、入力内容の変更、テキストのコピー、外部リンクのクリックも数えます。「関心を持ってもらえたのか」が、推測ではなく数字でわかるようになります。
広告費をかけて集客しているなら、予算を増やす前に、その訪問者がページを読んだのか、1秒もたたずに離脱したのかをここで確かめられます。
無料版で使えるリプレイ、ファネル、ジャーニー
セルフホスト版には、セッションリプレイ、ファネル、ユーザージャーニー、リテンション、目標、エラートラッキング、Web Vitalsが含まれます。Rybbitが他の選択肢と最も違うのは、この点です。Matomoは、セルフホスト環境向けのヒートマップとセッション録画を有料プラグインとして販売しています。Plausibleは、無料のCommunity Editionからファネルとユーザージャーニーを外しています。
軽く運用できる
Rybbitが求めるのは、RAMが2GB以上のサーバーです。VPS1台でスタック全体が動き、Rybbit自身のドキュメントでは、セルフホストのセットアップにかかる時間を30〜120分としています。
APIとMCPサーバー
ダッシュボードに表示される内容はすべて、個人用APIキーを使ってREST APIから取得できます。RybbitはMCPサーバーも提供しているため、Claude CodeやCursorのようなAIアシスタントから数字を直接問い合わせられます。どちらもセルフホストのインスタンスで使えます。
Rybbitのセットアップ方法
Rybbit Cloud
いちばん手早い方法です。サインアップしてドメインを追加し、スクリプトタグを1つ貼り付けるだけです。クラウドでは、分析データがドイツとフィンランドにあるHetznerのサーバーに保存されます。プランと料金は後述の「コスト面の考慮」にまとめています。
WordPress
公式プラグインはありませんが、なくても困りません。RybbitのWordPressガイドでは、WPCodeなどのプラグインを使うか、子テーマのfunctions.phpまたはheader.phpでスクリプトタグを追加します。WordPress.comの場合は、Businessプラン以上が必要です。
Dockerでセルフホスト
小規模:スタートアップと小さなサイト
必要なものは次のとおりです:
- RAMが2GB以上のVPS。Rybbitはx86_64上のUbuntu 24 LTSでテストされています。ARMサーバーの場合は、ClickHouseの要件により、ARMv8.2-A以降でなければなりません。
- Docker EngineとGit。
analytics.example.comのようなサブドメインと、そのサーバーを指すAレコード。ブラウザは平文のHTTPで配信されるトラッキングスクリプトをブロックするため、HTTPSは必須です。ドメインをCloudflareで管理している場合は、レコードを「DNS only」にするか、SSLモードを「Full」または「Full (strict)」にします。
準備ができたら、次を実行します:
git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
chmod +x *.sh
./setup.sh analytics.example.com
スクリプトは.envファイルを書き出し、ClickHouse、Postgres、Redis、バックエンド、ダッシュボード、そしてTLS証明書を取得するCaddyの各コンテナを起動します。https://analytics.example.com/signupを開き、最初のアカウントを作成してください。
アカウントができたら、入口は閉じておきます。.envにDISABLE_SIGNUP=trueを追加して./restart.shを実行すれば、見知らぬ人があなたのサーバーでアカウントを作ることはできなくなります。
サーバーにすでにTraefikやNginxなどのリバースプロキシがある場合は、./setup.sh analytics.example.com --no-webserverを実行します。Caddyは入らず、TLSの終端は既存のプロキシが担います。
更新するときは、git pullのあとに./update.shを実行します。
大規模:アクセスの多いサイトと代理店
バックエンドはCLICKHOUSE_HOST、POSTGRES_HOST、REDIS_HOSTを環境変数から読み込むため、アプリケーションに手を加えずに、各データベースを専用のサーバーへ移せます。規模とともに大きくなるのはClickHouseです。すべてのイベントと、録画している場合はすべてのリプレイを抱えることになります。まずはClickHouseに、高速なSSDストレージを備えた専用マシンを用意してください。
AWSでは、バックエンドとダッシュボードのイメージを他のコンテナと同じようにECS Fargateで動かし、ClickHouseはEC2インスタンスに、PostgresはRDSに置きます。セッションリプレイはデフォルトで30日間保持されます。これは2つのClickHouseテーブルに設定されたTTLによるもので、期間は短くできます。
自分では一切運用したくない場合は、RybbitのEnterpriseプランで専用インスタンスかオンプレミスのインストールを選べます。
トラッキングスクリプト
<script src="https://analytics.example.com/api/script.js?siteId=YOUR_SITE_ID" async></script>
サイトIDはURLで渡してください。以前からあるdata-site-id属性もまだ使えますが、WP Rocketのような最適化プラグインはスクリプトタグを組み立て直し、data-属性を落としてしまいます。
シングルページアプリケーションでは、追加の設定は要りません。スクリプトはHistory APIによる画面遷移を追い、ルートが変わるたびに、500ミリ秒のデバウンスを経てページビューとして記録します。#/で始まるハッシュルートも計測されます。
独自のイベントは次のように送ります:
window.rybbit.event('quote_requested', { plan: 'pro' });
イベント名は最大256文字、プロパティ(文字列と数値)は最大2KBまでです。
Rybbitの主な機能
アナリティクス
- セッション、ユニークユーザー、ページビュー、直帰率、セッション時間
- ライブの地球儀を表示するリアルタイムダッシュボード
- 国、地域、都市単位までの位置情報
- 15を超えるディメンションでの絞り込みと、セグメントの保存
- プロパティ付きのカスタムイベント
- 目標、ファネル、ユーザージャーニー、リテンション
- 捕捉されなかったJavaScriptエラーのエラートラッキング
- Web Vitals
- ボットの検出と除外
行動
- セッションリプレイ(すべての入力値はデフォルトでマスク)
- クリック、フォーム送信、コピー、外部リンクの自動キャプチャ
- ユーザープロファイル(ログインユーザーに対して
rybbit.identify()を呼び出せば、名前と属性も表示)
共有と連携
- サイト数・組織数は無制限、組織ごとにチームを管理
- 公開ダッシュボードと埋め込み可能なウィジェット
- REST APIとMCPサーバー
- Google Search Consoleとの連携(セルフホストではGoogle OAuthの認証情報が必要)
- Plausible、Umami、Simple Analyticsからのインポート
プライバシー設定
- User ID Salting(ユーザーIDのソルト化):訪問者のハッシュを毎日変えるため、Rybbitは24時間たつとその人が誰だったかを忘れます。代償は小さくありません。長い期間でのユニークユーザー数は水増しされ、リテンションレポートは意味をなさなくなります。あとから切り替えると推移のグラフが途切れるので、公開前に決めてください。
- Track IP Address(IPアドレスの記録):自分でオンにしない限りオフです。Rybbitのドキュメントは、IPアドレスを保存することを「GDPRに準拠していない」としています。
- セッションリプレイ:サイト単位の設定で、有効にするとすべての訪問者が録画されます。同意した訪問者だけを録画するには、それ以外の訪問者に向けたスクリプトタグに
data-replay-sample-rate="0"を追加します。 - リプレイのマスキング:要素を録画から外すには
rr-blockクラスを、テキストをアスタリスクに置き換えるにはrr-maskクラスを付けます。 - 除外:IPアドレスまたはその範囲、国、パス、ホスト名、ユーザーエージェントで除外でき、データが保存される前にサーバー側で適用されます。
なぜ他のソリューションよりRybbitを選ぶのか?
Google Analytics 4との比較
- カバー率:同意前に読み込んでよい場合は、バナーに最後まで回答しない訪問者も数えられます(前述の「Cookieなし」を参照)
- データの保存場所:自社のサーバー、またはEUでホスティングされるRybbitのクラウド
- 行動の詳細:GA4にはないセッションリプレイと、すべてのセッションをそのまま読める記録
- GA4が勝る点:Google Adsとの連携、リマーケティング用のオーディエンス、データドリブンアトリビューション
Matomoとの比較
当社はどちらも導入してきました。Matomoのガイドもご覧ください。
- Matomoは歴史が長く、守備範囲も広い:eコマースレポート、タグマネージャー、豊富なプラグインライブラリ、Google Analyticsの過去データを取り込むインポーターがあります。PHPとMySQLで動くので、ほとんどのホスティングで使えます。
- Rybbitは無料で使える機能が多い:有料プラグインなしで使えるリプレイとファネル、そしてよりシンプルなダッシュボード。
- Cookie:Rybbitは一切設定しません。MatomoはデフォルトでファーストパーティCookieを使い、Cookieなしで動くように設定することもできます。
- 過去データ:RybbitはGoogle AnalyticsやMatomoからデータをインポートできません。
オンラインで販売している、あるいはGAの過去データが必要なら、Matomoを選んでください。Cookieを一切使わずに訪問者の行動を見たいなら、Rybbitです。
Plausibleとの比較
- どちらもCookieを設定せず、どちらもAGPLライセンスです。
- Plausibleの無料版Community Editionには、ファネル、ユーザージャーニー、eコマースの売上目標、SSO、サイトAPIが含まれず、リリースは年2回です。
- Plausibleにはセッションリプレイがありません。
- 2つのうちシンプルなのはPlausibleです。主要な数字を1ページで見られれば十分という場合は、それがPlausibleの強みになります。
Rybbitの弱点
- まだ歴史が浅い:1.0が出たのは2025年5月で、リリースも頻繁です。更新の前には毎回リリースノートを読んでください。
- コンバージョンは報告しない:Rybbitが計測するのはページ上の行動です。Google AdsとMetaには引き続きそれぞれのコンバージョントラッキングが必要で、Rybbitのカウントをコンバージョンとして読んではいけません。
- 自動キャプチャはボタンをテキストで名付ける:多言語サイトでは同じボタンが言語ごとに別のイベントとして届くため、19言語のサイトでは1つのクリックが19種類に分かれます。代わりに、ファネルの各ステップで名前を付けたカスタムイベントを送ってください。
- セルフホスト版にはメールレポートがない:クラウド版にはあります。
- AGPLの義務:Rybbitを改変し、ネットワーク経由で他者に使わせる場合は、変更内容を公開しなければなりません。
技術要件
2026年10月15日時点の最新リリースは2.9.1です。
最小要件
- 2GBのRAM
- x86_64、またはARMv8.2-A以降
- Docker EngineとGit
- HTTPSに対応したドメインまたはサブドメイン
本番環境推奨
- 4GB以上のRAM(メモリを多く使うのはClickHouse)
- SSDストレージ
- ClickHouseとPostgres、両方のボリュームの定期バックアップ
- 最初のアカウントを作成したあとのサインアップの無効化
コスト面の考慮
セルフホスト
- ソフトウェア:無料(AGPL-3.0)
- サーバー:最初は小さなVPS1台
- メンテナンス:更新とバックアップにかかる自分の時間
Rybbit Cloud
2026年10月15日時点の料金(年払い、7日間の無料トライアル付き)は次のとおりです:
- Standard:月間10万ページビューで月額13米ドルから。サイトは5つ、チームメンバーは3人まで、データ保持期間3年、セッションリプレイなし。
- Pro:月額26米ドルから。サイトとチームメンバーは無制限、セッションリプレイあり、データ保持期間5年。
- Enterprise:料金は要問い合わせ。専用インスタンスやオンプレミスのインスタンスにも対応。
ベストプラクティス
- サインアップを無効にする:自分のアカウントを作ったら、すぐに行います。
- User ID Saltingは公開前に決める:あとから変えると、ユーザー数の連続性が途切れます。
- 自分たちのアクセスを除外する:
localhostとプレビュー用のドメインはホスト名で、オフィスはIPアドレスで除外します。 - Content Security Policy(CSP)でスクリプトを許可する:Rybbitのドメインを
script-srcとconnect-srcの両方に追加します。そうしないとブラウザがブロックし、その理由はコンソールにしか表示されません。 - ファネルのイベントには自分で名前を付ける:多言語サイトでは、自動キャプチャに頼らないでください。
- 録画する前にマスクする:注文確認画面など、顧客データを表示する部分には、リプレイをオンにする前に
rr-blockを付けます。 - 両方のデータベースをバックアップする:ClickHouseにはイベントが、Postgresにはアカウントと設定が入っています。
- プライバシーポリシーにRybbitを明記する:何を収集するか、ローカルストレージのエントリ、録画する場合はセッションリプレイ、そしてデータの保持期間を記載します。
一般的なユースケース
- マーケティングサイト:予算を増やす前に、有料の流入が本当にページを読んでいるかを確認
- SaaSプロダクト:ログインユーザーのファネル、リテンション、ユーザープロファイル
- 代理店:クライアント向けに、無制限のサイト、チーム、公開ダッシュボード
- ヨーロッパの企業:分析データを自社のサーバー、またはEUでホスティングされるクラウドに保管
- デバッグ:エラートラッキングと、問題が起きたセッションのリプレイ
Rybbitのセットアップにお困りですか?
当社は本番環境でRybbitを自ら運用しています。以下のようなご要望にお応えします:
- 既存のリバースプロキシの裏で動かすセルフホスト版のインストール
- Google Analyticsからの移行、またはPlausibleやUmamiからの過去データを含めた移行
- 翻訳しても崩れないカスタムイベントとファネル
- プライバシーポリシーと照らし合わせた、プライバシー設定とリプレイのマスキングの確認
- RybbitとMauticの併用による、匿名の訪問から特定されたリードまでの追跡
無料相談とお見積もりについてはoffice@c9group.devまでお問い合わせください。
公開日:2026年10月15日 カテゴリー:アナリティクス、オープンソース、プライバシー
アナリティクス
新しいガイドと制度改正をメールでお届けします
制度の改正、期限の変更、新しいガイドの公開があったときに、メールでお知らせします。