ウェブ解析OSS比較:Plausible vs Umami vs PostHog でGoogle Analytics代替をセルフホスト
オープンソースラボ編集部 ・ 2026年6月13日
ウェブ解析OSS比較:Plausible vs Umami vs PostHog でGoogle Analytics代替をセルフホスト
Google Analytics 4はプライバシー規制(GDPR・CCPA)への対応が複雑で、EU圏ではGA4の使用自体に問題があるケースもあります。Plausible・Umami・PostHogはCookieなし・プライバシーファーストのウェブ解析をセルフホストで実現し、イベント追跡・ファネル分析・A/Bテストも対応します。
ウェブ解析ツールの選定理由
- プライバシーコンプライアンス: GDPRでCookieバナーを不要にしたい(Plausible・Umamiはcookieレス)
- データ所有: アクセスログを自社サーバーに保持してGoogleに渡したくない
- ページビュー以上の分析: ボタンクリック・フォーム送信・購入完了などのイベントを追跡したい
- 製品分析: DAU・リテンション・ファネル・セッション録画などプロダクトアナリティクスが欲しい
- コスト削減: Amplitudeは月$499〜、PostHog有料は高額、セルフホストで無料化したい
主要ツールの概要
Plausible
Elixir製のシンプルでプライバシーファーストなウェブ解析ツールです。GitHubスター21k+。スクリプトが1KBと軽量でCookieを使わないため、GDPR・CCPA対応でCookieバナーが不要です。ページビュー・訪問者数・直帰率・デバイス・国別など基本指標を美しいダッシュボードで確認できます。
# Plausibleをdocker-composeで起動
version: "3"
services:
plausible:
image: ghcr.io/plausible/community-edition:v2
restart: always
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
ports:
- "8000:8000"
environment:
BASE_URL: https://analytics.yoursite.com
SECRET_KEY_BASE: "your-64-char-secret-key"
# メール設定(管理者招待等に使用)
MAILER_EMAIL: "analytics@yoursite.com"
SMTP_HOST_ADDR: "email-smtp.ap-northeast-1.amazonaws.com"
SMTP_HOST_PORT: 465
SMTP_USER_NAME: "your-ses-username"
SMTP_USER_PWD: "your-ses-password"
SMTP_HOST_SSL_ENABLED: "true"
depends_on:
- plausible_db
- plausible_events_db
plausible_db:
image: postgres:16-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: postgres
plausible_events_db:
image: clickhouse/clickhouse-server:24-alpine
restart: always
volumes:
- event-data:/var/lib/clickhouse
ulimits:
nofile:
soft: 262144
hard: 262144
volumes:
db-data:
event-data:
<!-- Next.jsにPlausibleのトラッキングスクリプトを追加 -->
<!-- app/layout.tsx -->
<script
defer
data-domain="yoursite.com"
src="https://analytics.yoursite.com/js/script.js"
/>
<!-- カスタムイベントの追跡 -->
<script>
// ボタンクリックを追跡
window.plausible = window.plausible || function() {
(window.plausible.q = window.plausible.q || []).push(arguments);
};
</script>
// Next.jsでPlausibleのカスタムイベントを送信
// lib/analytics.ts
export function trackEvent(name: string, props?: Record<string, string | number>) {
if (typeof window !== "undefined" && window.plausible) {
window.plausible(name, { props });
}
}
// 使用例
trackEvent("Signup", { plan: "free", source: "homepage" });
trackEvent("Purchase", { amount: 4980, product: "pro-plan" });
trackEvent("Article Viewed", { slug: "open-source-analytics", category: "devops" });
Umami
Node.js製のミニマルなウェブ解析ツールです。GitHubスター23k+。Plausibleと同様Cookieレスでプライバシーファースト。PostgreSQLまたはMySQLで動き、スクリプトサイズがさらに小さい(2KB未満)です。SaaS版(Umami Cloud)も提供しています。
# UmamiをDockerで起動
version: "3"
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:umami_pass@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: "your-random-secret"
depends_on:
- db
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: umami_pass
volumes:
- umami_db:/var/lib/postgresql/data
volumes:
umami_db:
// Umamiのイベント追跡(React Hook)
// hooks/useUmami.ts
export function useUmami() {
const track = (eventName: string, eventData?: Record<string, string | number>) => {
if (typeof window !== "undefined" && window.umami) {
window.umami.track(eventName, eventData);
}
};
return { track };
}
// コンポーネントでの使用例
function PricingButton({ plan }: { plan: string }) {
const { track } = useUmami();
return (
<button
onClick={() => {
track("pricing_click", { plan, page: "pricing" });
router.push("/signup");
}}
>
{plan}プランを選ぶ
</button>
);
}
PostHog
製品分析・セッション録画・A/Bテスト・フィーチャーフラグ・HeatMapを統合したプロダクトアナリティクスプラットフォームです。GitHubスター24k+で、Mixpanel・Amplitudeの機能をOSSで再現します。
# PostHogをdocker-composeで起動(本格セットアップ)
# https://posthog.com/docs/self-hosting から最新版を取得
git clone https://github.com/PostHog/posthog.git
cd posthog
docker compose -f docker-compose.yml up -d
# または軽量版(Hobby版)
curl -o- https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby | bash
// PostHogをNext.jsに統合
// app/providers.tsx
"use client";
import posthog from "posthog-js";
import { PostHogProvider as PHProvider } from "posthog-js/react";
import { useEffect } from "react";
export function PostHogProvider({ children }: { children: React.ReactNode }) {
useEffect(() => {
posthog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY!, {
api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST || "https://app.posthog.com",
capture_pageview: false, // App Routerでは手動でpageviewを送る
capture_pageleave: true,
session_recording: {
maskAllInputs: true, // パスワード等の入力をマスク
},
});
}, []);
return <PHProvider client={posthog}>{children}</PHProvider>;
}
// ユーザー識別とイベント追跡
import { usePostHog } from "posthog-js/react";
function CheckoutButton({ amount }: { amount: number }) {
const posthog = usePostHog();
const handleCheckout = async () => {
// ユーザーを識別(ログイン後)
posthog.identify(user.id, {
email: user.email,
plan: user.plan,
});
// イベントを送信
posthog.capture("checkout_started", {
amount,
currency: "JPY",
items_count: cart.length,
});
await startCheckout();
};
return <button onClick={handleCheckout}>購入する</button>;
}
// A/Bテスト(フィーチャーフラグ)
const isNewDesign = posthog.isFeatureEnabled("new-checkout-design");
機能比較表
| 比較項目 | Plausible | Umami | PostHog |
|---|---|---|---|
| ライセンス | AGPL-3.0 | MIT | MIT |
| Cookieレス | ✅ | ✅ | ❌(設定可) |
| GDPR対応 | ✅ | ✅ | ✅ |
| ページビュー追跡 | ✅ | ✅ | ✅ |
| カスタムイベント | ✅ | ✅ | ✅ |
| ファネル分析 | ✅(シンプル) | ✅ | ✅ 高機能 |
| セッション録画 | ❌ | ❌ | ✅ |
| ヒートマップ | ❌ | ❌ | ✅ |
| A/Bテスト | ❌ | ❌ | ✅ |
| フィーチャーフラグ | ❌ | ❌ | ✅ |
| ユーザー識別 | ❌ | ✅ | ✅ |
| ダッシュボードUI | ★★★★★ | ★★★★☆ | ★★★★☆ |
| スクリプトサイズ | 1KB | 2KB | 35KB+ |
| DB | PostgreSQL + ClickHouse | PostgreSQL/MySQL | PostgreSQL + ClickHouse |
| GitHub Stars | 21k+ | 23k+ | 24k+ |
プライバシーファーストのマーケティングツールはmarketingカテゴリ(/categories/marketing)でまとめています。A/Bテストやフィーチャーフラグとの連携についてはフィーチャーフラグOSS比較(/categories/low-code)も参照してください。
FAQ
Q. Plausibleを使うとCookieバナーが本当に不要になりますか?
A. Plausibleはセッション識別にCookieやlocalStorageを一切使わないため、EU圏のGDPR・フランスのCNIL・ドイツのDSGVOのガイドラインに基づく「同意なしで使用可能なアナリティクス」に分類されます。具体的には: ①IPアドレスは保存せず(24時間後にハッシュ化して削除)、②フィンガープリンティングなし、③クロスサイト追跡なし。Plausibleの公式ページには各国の規制当局からの確認も掲載されています。ただし、自社のプライバシーポリシーには「プライバシーファーストのアナリティクスツールを使用しています」と記載を推奨します。Google Analytics(GA4)を使い続ける場合はCookieバナーが必要です。
Q. PostHogをセルフホストするのに必要なサーバースペックはどのくらいですか?
A. PostHogはClickHouseとPostgreSQL、Redisを含む複数のサービスが必要なため、最小でも4GB RAM・2 vCPU・50GB SSDが推奨です。具体的な目安: 月100万イベントまで→$50/月程度のVPS(Hetzner CX31等)で動作。月1000万イベント→8GB RAMが必要。PostHog公式の「Hobby deployment」は$30/月以下の小規模インスタンスを想定した簡略セットアップです。コスト最適化: セッション録画は大量のストレージ(S3/MinIO)が必要なため、録画不要ならPostHogのかわりにUmamiの方がリソース効率が良いです。
Q. Google Analytics 4から移行する際のデータ引き継ぎはできますか?
A. 残念ながら過去のGA4データをPlausible/Umami/PostHogに移行することは基本的にできません(データ構造が異なるため)。移行アプローチ: ①GA4とPlausible/Umamiを並行稼働期間(1〜3ヶ月)を設けてデータを比較検証する、②GA4の過去データはGoogleのデータポータルでPDFレポートに書き出してアーカイブ保存する、③GA4のエクスポート機能(BigQueryへのエクスポート)を使えば過去データをCSVで保存できる。移行後の注意: PV数の計算方法がGA4とPlausible/Umamiで異なるため(直帰セッションのカウント方法等)、最初の1〜2ヶ月は数値差異があります。
Q. Umamiのチーム・マルチサイト管理はどうなっていますか?
A. Umami v2以降はマルチユーザー・マルチサイト管理に対応しています。機能: ①1つのUmamiインスタンスで複数サイトのアナリティクスを管理できる、②サイトごとに異なるアクセス権を設定できる(Admin/View only)、③チームメンバーを招待してサイト閲覧権限を付与できる、④各サイトのダッシュボードは別々に表示され、横断的なレポートはAdmin権限のみ。Plausibleも同様のマルチサイト管理に対応しています。PostHogの場合: Organizationとプロジェクト単位で管理でき、プロジェクトごとにAPIキーが分かれています。
まとめ
| ユースケース | 推奨ツール |
|---|---|
| Cookieレス + シンプルな解析 | Plausible |
| 軽量 + MySQL/PostgreSQL | Umami |
| セッション録画 + A/Bテスト | PostHog |
| プロダクトアナリティクス全般 | PostHog |