PostHogとは、Web解析・セッションリプレイ・Feature Flag・A/Bテストを1つに統合したオープンソースのプロダクトアナリティクスだ。GA4の代替として使われ、GitHubスターは39,486(2026年8月31日時点)。この記事ではPostHogの使い方(導入手順・イベント計測)と料金(無料枠の実額とセルフホストの分岐点)を、公式ドキュメントの数値で確かめながら解説する。

WHAT IT REPLACES何を代替するか

4つの別契約を1つのイベントテーブルにまとめる

ツールを組み合わせる

GA4 + Hotjar + LaunchDarkly + Optimizely

  • 契約と管理画面が4つ
  • Flag配信群とCVの結合にID合わせの実装
  • 生データはGoogle側に保管

PostHog

MIT(ee/ を除く)・Cloud とセルフホスト

  • 解析・リプレイ・Flag・実験が同じ基盤10機能が同じイベントテーブルを共有
  • 同一の distinct_id で紐づくファネルから該当ユーザーのリプレイへ飛べる
  • SQL(HogQL)で生イベントを掘れるセルフホストなら ClickHouse に全件
出典: PostHog/posthog README・公式ドキュメント(2026-08-31時点)

30秒でわかるPostHog——とは・使い方・料金

  • ・Web解析/セッションリプレイ/Feature Flag/A/Bテスト/エラー追跡を同じイベントテーブルの上で動かすOSS。GA4・Mixpanel・LaunchDarkly・Hotjarの守備範囲を1つに畳む
  • ・使い方:Cloudにサインアップ→JSスニペットを<head>に貼る(実質5分)。覚えるAPIはcapture/identify/getFeatureFlagの3つで足りる
  • ・料金:Cloudは月100万イベント・5,000録画・100万Flagリクエスト・10万例外・1,500回答まで無料
  • ・セルフホストは「30万イベント/1,000録画/30万Flag APIコールを超えるならCloud」が公式の線引きで、公式サポート対象外
  • ・プロダクト分析ならGA4の代替になる。広告連携・Google Ads自動入札はGA4が強く、広告主体のサイトは併用が現実解
PostHog公式デモ。ダッシュボード・セッションリプレイ・Feature Flagが同じ画面で切り替わる(出典: PostHog / YouTube)

DevOps・自動化の文脈でのツール選定全体像は AI自動化ツール|ノーコードからコードまで2026年版の比較と選び方 にまとめている。

PostHogとは何か:GA4の代替になるオールインワンOSS

PostHogはMITライセンス(ee/配下はプロプライエタリ)で公開され、SaaS版の PostHog Cloud と、Docker一発で立ち上がる Self-hosted Hobby Deploy がある。公式READMEに並ぶ機能は次のとおり。

・Product / Web Analytics:イベント自動キャプチャ、GAライクなダッシュボード(PV、訪問者、コンバージョン、Web Vitals)、SQLでの掘り下げ
・Session Replays:実ユーザーの操作を録画して再生
・Feature Flags / Experiments:ロールアウト制御とA/Bテスト
・Error Tracking / Surveys:例外の収集と通知、アプリ内アンケート
・Data warehouse / pipelines:StripeやHubSpotなど25以上と連携
・AI observability / Workflows:LLMアプリのトレース・コスト計測、イベント起点の自動化

これらが同じイベントテーブルを共有している点が本質だ。GA4とFeature Flagツールを別々に運用すると、「どのFlag配信群がどのコンバージョンに効いたか」を結合するのにユーザーIDを揃える追加実装が要る。PostHogは同一のdistinct_idでイベント・リプレイ・Flag履歴を紐づけるので、ファネルから該当ユーザーのリプレイへ直接飛べる。

GA4との違いは機能の多寡より設計思想にある。GA4は広告担当者がROIを測るため、PostHogはPMとエンジニアが機能の使われ方を見るために作られている。

観点 GA4 PostHog
データの所有 生データはGoogle側。自社で扱うにはBigQueryエクスポートが要る セルフホストならClickHouseに生イベントが全件溜まる。CloudでもS3エクスポートあり
Cookie同意 広告連携を含むためEUではほぼ必須。拒否率(多くのサイトで30〜50%)だけデータが欠ける ファーストパーティCookieのみ。IPマスク・PII除外・匿名IDで「同意不要」運用に寄せられる(最終判断は法務)
分析の軸 集客・トラフィックソース ファネル・パス・コホート・リテンションが標準。SQLエディタ(HogQL)内蔵
画面 「集客」「技術 → デバイス」など複数画面を行き来 チャネル・デバイス・国のブレークダウンが1ページに並ぶ

Web Analyticsの指標はGA4にそのまま対応する(Visitors=アクティブユーザー、Page Views=表示回数、Sessions=セッション、Bounce Rate=直帰率)。GA4に無いのが Session Replay で、rrwebベースのDOM再現としてイベントの再生で保存されるので、容量が小さく検索しやすい。レイジクリック・デッドクリック・コンソールエラーは自動でハイライトされ、フォーム離脱や特定機種のレイアウト崩れを優先的に見られる。<input>は標準でマスクされる。

PostHog vs GA4 vs Matomo vs Rybbit:機能比較表

Rybbitは「Plausible/Umami系」の軽量アナリティクスで、ClickHouseベースという基盤はPostHogと同じだが、Web Analyticsに絞ったシンプル路線だ。

項目 PostHog Google Analytics 4 Matomo Rybbit
ライセンス MIT(ee/はプロプライエタリ) プロプライエタリ GPLv3 AGPL-3.0
ホスティング Cloud + セルフホスト Cloud専用 Cloud + セルフホスト Cloud(無料枠あり) + セルフホスト
データ基盤 ClickHouse + Postgres + Kafka Google内部(BigQueryでアクセス) MariaDB / MySQL ClickHouse + Postgres
セッションリプレイ あり(標準機能) なし あり(有料アドオン) なし
Feature Flag あり(標準機能) なし なし なし
A/Bテスト あり(標準機能) Optimize終了済み あり(有料アドオン) なし
ファネル分析 あり あり(複雑な設定要) あり 簡易ファネル
SQL直接実行 あり(HogQLエディタ) BigQuery経由のみ あり なし(事前定義レポート中心)
Cookie同意の重さ 軽い(設定次第で同意不要構成可) 重い(広告連携で同意ほぼ必須) 軽い 最軽(Cookieレス・同意不要を売り)
無料枠 月100万イベント等 完全無料(ただし上限あり) OSS版は完全無料 クラウド無料枠あり / セルフホスト無制限
学習コスト 中(多機能) 高(管理画面が複雑) 低 最低(GA代替の最小構成)
導入時間 JSスニペット5分 プロパティ設定30分〜 サーバー構築30分〜 JSスニペット5分

HOW TO CHOOSE4問で切り分ける

広告かプロダクトか、主役で選ぶ

こういうサイトなら

これを選ぶ

こういうサイトなら: 広告ROIが事業の中心

これを選ぶ: GA4を残しPostHogを併用

こういうサイトなら: PMとエンジニアがFlagと実験を回す

これを選ぶ: PostHog単独

こういうサイトなら: 完全GPL・EU圏内ホスティングが必須

これを選ぶ: Matomo

こういうサイトなら: 訪問者数とPVだけ・同意バナーを出したくない

これを選ぶ: Rybbit

当サイトの整理。各ツールの機能は本文の比較表を参照

セッションリプレイやFeature Flagが不要な小規模サイト・ブログではRybbitで足りることも多い。導入手順と料金は Rybbit:Google Analytics代替のOSSアナリティクスをDockerでセルフホスト で解説している。Mixpanelは商用SaaS専業で、UIの洗練度を推す声はあるが、統合範囲(リプレイ・Flag・Error)ではPostHogに分がある。

PostHogの使い方:インストールとイベント計測

観点 PostHog Cloud(推奨) セルフホスト(Hobby Deploy)
導入手順 サインアップ → JSスニペットを<head>に貼る Linuxサーバーでワンライナー実行
所要時間 約5分 5〜10分(証明書取得含む)
適した規模 月100万イベント程度まで無料 月30万イベント/1,000録画/30万Flag APIコール未満(公式の分岐条件)
データ保管 US / EUリージョンのPostHog側 自社サーバー(ClickHouse)
運用負荷 ゼロ(フルマネージド) SREがClickHouse/Kafkaを保守
サポート あり 公式サポート対象外(”officially unsupported”と明記)

Cloud は PostHog Cloud US か PostHog Cloud EU でアカウントを作り、発行されたJSスニペットを<head>に貼る。ページビュー・クリック・セッションリプレイ・Feature Flagまでこの1つで動く。初期化の主要オプションは次の要領だ。

posthog.init('phc_あなたのプロジェクトキー', {
  api_host: 'https://us.i.posthog.com',
  person_profiles: 'identified_only', // 識別済みユーザーのみプロファイル作成
  capture_pageview: true,
  autocapture: true,
  session_recording: { maskAllInputs: true }, // フォーム入力を標準でマスク
});

再読込して Activity > Live events に$pageviewが数秒で流れれば成功。流れなければDevToolsのNetworkでus.i.posthog.comへのリクエストが200か確かめる。セルフホストは公式スクリプト1行で、Docker・Docker Compose・Caddy・Let’s Encrypt証明書まで入る(推奨は4GBメモリのLinuxサーバー1台)。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"

autocaptureは標準のクリック・ページビューを拾うが、ビジネスKPIには明示的なイベントが要る。覚える呼び出しは少ない。

API呼び出し 何をするか 代表的なユースケース
posthog.capture(event, props) 任意のカスタムイベントを送信 申込完了・記事読了・購入などのコンバージョン定義
posthog.identify(id, props) 匿名ユーザーに正体を紐づける ログイン時。匿名時のイベントも遡及的に紐づく
posthog.group(type, id, props) 組織単位でグルーピング B2B SaaSで「会社」単位の利用状況を集計
posthog.isFeatureEnabled(key) Feature Flagの真偽を判定 新機能の段階リリース・A/Bテスト
posthog.getFeatureFlag(key) マルチバリアントの値を取得 3案以上のCTA文言テストなど
// ロード後にFlagを判定して出し分ける
posthog.onFeatureFlags(() => {
  const variant = posthog.getFeatureFlag('homepage-cta-experiment');
  renderCTA(variant); // 'control' / 'variant-a' / ...

  // 実験のゴールイベントにFlagの値を添える
  posthog.capture('cta_clicked', {
    $feature_flag: 'homepage-cta-experiment',
    $feature_flag_response: variant,
  });
});

ExperimentsはFlagの判定とゴールイベントを統計エンジンが結びつけ、ベイズ推論で勝者を判定する。LaunchDarklyやOptimizelyを別契約しなくても、A/Bテストが同じ基盤で回る。

Jekyll + Cloudflare Pagesサイトへの導入

・スニペット配置:docs/_includes/に部品を作り、jekyll.environment == "production"ガードで本番ビルドだけに入れる。Cloudflare PagesはJEKYLL_ENV=productionを自動でセットするので、ローカルの計測が混ざらない
・CSPの許可:_headersでCSPを設定しているならscript-src/connect-srcに*.posthog.com(または自前のプロキシドメイン)を足す
・リバースプロキシ(推奨):us.i.posthog.comへの直リクエストはAdblockerに止められることがある。Cloudflare Workersでyourdomain.com/ph/*経由にすると下がる。公式の実装例がある

PostHogの料金:無料枠の実額とセルフホストの分岐点

PostHog Cloudの無料枠と単価は次のとおり(2026年8月11日に公式Pricingで再確認)。無料枠は毎月継続し、機能ごとに独立しているので「イベントは無料枠内だが録画だけ超過」という部分課金になる。上限に達して自動で高額請求が走るわけではない。

機能 無料枠(月) 超過時の単価(目安)
Product/Web Analytics 100万イベント $0.00005/event〜
Session Replay 5,000録画 $0.005/recording〜
Feature Flags 100万リクエスト $0.0001/req〜
Error Tracking 100,000例外 段階課金
Surveys 1,500回答 段階課金

CLOUD OR SELF-HOST料金の分岐点

Cloudの無料枠が、セルフホストを勧める上限を上回る

100万

Cloudの無料イベント

毎月・機能ごとに別枠

30万

セルフホストを勧める上限

超えるならCloudを推奨

0

セルフホストの公式サポート

officially unsupported

単位はイベント/月。出典: PostHog Pricing とセルフホスト判断フロー(2026-08-11 確認)

「規模が大きくなったらセルフホストへ」という直感は、PostHogでは逆になる。公式の判断フローは30万イベントを超えるならCloudを勧め、それ以上はClickHouseとKafkaのクラスタ分離で運用負荷が跳ね上がるとしている。さらに自社ホスト構成を “officially unsupported” と明記し、「PostHog Cloud is far and away the best experience for the vast majority of our users」と書く。セルフホストはコスト最適化ではなく、データレジデンシーや社内規程を満たすための選択肢だ。Hobby Deployは単一サーバーなので、長期運用ではClickHouseのBACKUPとPostgresのpg_dumpでの日次バックアップを前提にする。

コストを抑えるなら、まずイベント種別ごとの量をHogQLで見る。Infracost活用ガイド:Terraformのクラウドコストをデプロイ前に可視化するOSSツール完全解説 と同じく、使う前に見える化する発想だ。

-- イベント種別ごとの月間カウント(コスト把握)
SELECT event, count() AS event_count, uniq(distinct_id) AS unique_users
FROM events
WHERE timestamp >= now() - INTERVAL 30 DAY
GROUP BY event
ORDER BY event_count DESC
LIMIT 50

autocaptureが想定外に大量のクリックを送っていたら、対象をボタン・リンクだけに絞るかautocapture: falseにする。「無設定で本番投入したらイベントが爆発した」は典型的な失敗だ。

ee/ は「本番利用にサブスクリプション契約が必要」

2026年8月1日に LICENSE と ee/LICENSE を確認した。ee/ 以外は MIT Expat、ee/ 配下は PostHog Enterprise License で、「PostHog Subscription Terms of Service に同意し、それを遵守している場合に限り、本番環境で利用できる」と書かれている。

対象 ライセンス セルフホスト本番利用
ee/ 以外 MIT Expat 制約なし
ee/ 配下 PostHog Enterprise License サブスクリプション規約への同意と遵守が前提
同梱される第三者コンポーネント 各コンポーネント元来のライセンス それぞれの条件に従う

「セルフホストならソフトウェア費用ゼロ」は ee/ の機能を使わない場合に限る。稟議の前に、必要な機能が ee/ 側かどうかを切り分けておきたい。完全FOSS版は posthog-foss リポジトリにある。

セキュリティとプライバシー設計:PII漏洩を防ぐ初期設定

公式は「PostHogはPIIを保存しないことが前提のツール」と明言しており、メールやカード番号はそもそも送らない設計が推奨される。セッションリプレイは裏を返せばユーザーの画面をそのまま記録する機能なので、マスキングを後回しにしない。

導入時の必須セキュリティチェック

  • ・maskAllInputs: trueでフォーム入力値をマスク
  • ・指定クラス(例 .ph-mask)でPIIを含むDOM要素をマスク
  • ・/account/billingなど機微画面ではセッション録画を無効化
  • ・property_denylistでemail・phone等の送信をブロック
  • ・opt_out_capturing()を「同意拒否」UIから呼べるようにする
  • ・セルフホスト時はSECRET_KEYを強固なランダム値にし、Postgres/ClickHouseの認証を有効化

外部のETLから流し込む構成では、ETL段階で個人情報フィールドをハッシュ化・除外する。

PostHogのエコシステムと開発の重心

WorkflowsでイベントからWebhook・メール・Slack通知へ繋げられ、「エラーに3回遭遇したらSlackに通知」といった連携を外部のワークフローSaaSなしで組める。VideoLingo:動画の字幕生成と多言語翻訳・吹き替えを自動化するオープンソースツール完全ガイド のようなコンテンツ自動化と組み合わせれば、量産した動画の視聴行動を計測して反応の良いパターンを拾うループも作れる。

カテゴリ 対応
Frontend JavaScript, Next.js, React, Vue
Mobile React Native, Android, iOS, Flutter
Backend Python, Node, PHP, Ruby, Go, .NET/C#, Django
その他 Angular, WordPress, Webflow など
データ連携 Stripe, HubSpot, BigQuery, Snowflake, S3, Redshift ほか25以上

サーバーサイドからも送れば、広告ブロッカーで失われがちなクライアントイベントを補える。

開発の重心も見ておく。GitHub Releasesを直近200件さかのぼると、ほとんどが agent-skills-v* タグで、agent-skills-v0.498.0(2026-07-17)から v0.690.0(2026-07-31)まで2週間で約190リリース、各リリースに skills.zip が付く。実体は .agents/skills/ 配下の70個のスキルディレクトリ(2026年8月1日時点、SKILL.md はリポジトリ全体で183ファイル)で、clickhouse-migrations・debugging-ci-failures・implementing-mcp-tools・security-audit・gating-production-deploys といった運用手順が並ぶ。ルートには .claude / .codex / .cursor / .zed / agent-os もある。PostHogは自社の運用手順をAIエージェント向けスキルとしてバージョン付きで出しており、MIT部分のこれらはClickHouse運用やCI設計の参考資料としても読める。

関連記事: AI自動化ツール|ノーコードからコードまで2026年版の比較と選び方

参照ソース