Engineering

ビジネスKPIダッシュボード構築 -- GA4からStripe/Chatweb直接指標への移行

間接的なGA4メトリクス(PV/セッション)から、MRR・有料会員数・ユーザー数など直接的なビジネスKPIに置き換え。データ取得も大幅に簡略化。

#dashboard #stripe #kpi #analytics #engineering

概要

EBRトークンホルダー専用ダッシュボードのデータソースを、Google Analytics 4(GA4)から直接的なビジネスKPIに全面置き換えしました。

なぜGA4をやめたのか

課題詳細
間接的な指標PV/セッションは「何人が見たか」であり「ビジネスがどう動いているか」ではない
セットアップの複雑さサービスアカウントJSON + JWT署名 + OAuth2トークン交換 + 9プロパティの設定
遅延GA4データは24-48時間遅れ
コストAPI quota管理が必要

新しいデータソース

4つのAPIからPromise.allSettledで並行取得。1つが落ちても他は表示されます。

ソースデータ認証
Stripe APIMRR、有料会員数、プラン別内訳STRIPE_SECRET_KEY
Chatweb.ai Admin総ユーザー数、本日アクティブ、チャネル別セッションCHATWEB_ADMIN_KEY
SolscanEBRトークンホルダー数不要(公開API)
GitHubスター数、リポジトリ数不要(公開API)

新しいKPIカード

ダッシュボードのメイン表示は4つのKPIカードに変更:

┌──────────────┬──────────────┬──────────────┬──────────────┐
│ Total Users  │ Paid Subs    │ MRR (USD)    │ MRR (JPY)    │
│ 210          │ 12           │ $342.00      │ ¥45,600      │
└──────────────┴──────────────┴──────────────┴──────────────┘

通貨の扱い

USD/JPYは変換せず別々に表示します。為替変動リスクを避け、直感的でわかりやすい表示を優先しました。

既知の商品マッピング

Price ID商品名価格
price_1Sy5nc…Chatweb.ai Starter$9/mo
price_1Sy5nd…Chatweb.ai Pro$29/mo
price_1T1T9q…StayFlow Starter\2,900/mo
price_1T1T9r…StayFlow Pro\7,900/mo

JSONエクスポート

$ export --json ボタンを追加。ダッシュボードの全データをJSONファイルとしてダウンロードできます。外部ツールでの分析や記録に活用してください。

変更ファイル

ファイル変更
route.tsGA4コード全削除 → 4フェッチャーに置換
DashboardClient.tsxKPI4枚 + Revenue内訳 + Chatweb + Community + Export
page.tsxmetadata更新
.env.exampleSTRIPE_SECRET_KEY, CHATWEB_ADMIN_KEY追記

まとめ

GA4の9プロパティ設定 + サービスアカウントJWT → Stripe fetch 1回 + 公開API 2回に簡略化。ビジネスの健全性が一目でわかるダッシュボードになりました。


すべてのコードはGitHubでオープンソースとして公開しています。