「チュートリアル完了したユーザーは継続率 +20pt」「初回フォロー 3 人すると D7 retention 1.5 倍」── プロダクト内の機能効果を測る分析パターン。入会日基準ではなく、イベント発生日基準で を切るのがコツ。本記事ではその実装と、selection bias の落とし穴を扱います。
イベント駆動 Cohort とは
通常の Cohort は入会日で群を切るが、イベント駆動 Cohort はイベント発生日で群を切る。「特定アイテムを取った日」を Day 0 として、その後の継続率を計算。
WITH item_x_acquired AS ( SELECT user_id, MIN(event_timestamp) AS x_acquired_at FROM `events` WHERE event_name = 'item_acquired' AND event_params.item_id = 'item_x' GROUP BY user_id)SELECT DATE_DIFF(a.active_date, DATE(ix.x_acquired_at), DAY) AS days_since_event, COUNT(DISTINCT a.user_id) * 1.0 / (SELECT COUNT(*) FROM item_x_acquired) AS retentionFROM item_x_acquired ixJOIN `active_event` a ON a.user_id = ix.user_id AND a.active_date >= DATE(ix.x_acquired_at)WHERE DATE_DIFF(a.active_date, DATE(ix.x_acquired_at), DAY) BETWEEN 0 AND 30GROUP BY 1ORDER BY 1;Selection Bias の罠
最大の落とし穴。アイテム X を取るのは「もともとアクティブで継続しやすいユーザー」かもしれない。「アイテムが継続を生んだ」のか「継続するユーザーがアイテムを取るのか」因果が逆かもしれない。
Selection Bias の対策
- 1A/B テスト(ランダム割付):アイテムを「全員に提供 vs 半分にだけ提供」→ 純粋な効果計測
- 2Propensity Score Matching:イベント前の属性(登録日数、過去活動量)が似た「対象者 vs 非対象者」をマッチング
- 3Difference-in-Differences (DID):イベント前後の継続率変化を、コントロール群と比較
- 4Instrumental Variable:イベント取得の「外的」要因を使う高度な手法(実装難)
理想は A/B テスト( EP.17 参照)。プロダクト判断的に「全員に提供」が必須なら Propensity Score Matching が現実解。それも無理なら「比較群」を意識的に作って観測するだけでも、生のイベント Cohort より精度が上がる。
オンボーディング設計への接続
「N 人フォローすると continuation +30pt」のような効果が見えれば、オンボーディング設計に組み込める。チュートリアルで「3 人フォロー」を必須化、課金導線を「アイテム X 取得後 24 時間」に絞る、など。
ふくふくの進め方
「機能効果が定量的に見えない」というご相談には、イベント Cohort 設計(1 週間)→ Selection Bias 補正手法選定 → ダッシュボード化を 1〜2 ヶ月で。A/B テスト基盤との連携もセットで構築可能です。
次回予告
EP.10 はログ設計の基本。「後から細かくはできない、後から粗くはできる」という非対称性を踏まえた、3 年後に泣かないログを作る話。
この記事の感想を教えてください
あなたの 1 クリックで、本当にこの記事は更新されます。「もっと詳しく」「続編希望」が一定数集まった記事は、 ふくふくが 実際に内容を拡充したり続編記事を公開 します。 送信したリアクションはお使いのブラウザに記録され、再カウントされません。