イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | 製品イベントが発生したとき。 |
| user_id | Utf8 | 安定したユーザー識別子。 |
| event_name | Utf8 | 安定した snake_case マイルストーン名。 |
| source | Utf8 | 取得またはキャンペーンのソース。 |
クエリをコピーする
WITH user_funnel AS (
SELECT
user_id,
MIN(CASE WHEN event_name = 'signup_completed'
THEN timestamp_utc END) AS signed_up_at,
MIN(CASE WHEN event_name = 'onboarding_completed'
THEN timestamp_utc END) AS onboarded_at,
MIN(CASE WHEN event_name = 'integration_connected'
THEN timestamp_utc END) AS integrated_at,
MIN(CASE WHEN event_name = 'first_value_completed'
THEN timestamp_utc END) AS activated_at
FROM product_events
WHERE timestamp_utc >= now() - INTERVAL '30 days'
GROUP BY user_id
),
stage_counts AS (
SELECT 1 AS step_order, 'Signed up' AS step, COUNT(*) AS users
FROM user_funnel
WHERE signed_up_at IS NOT NULL
UNION ALL
SELECT 2, 'Onboarded', COUNT(*)
FROM user_funnel
WHERE onboarded_at >= signed_up_at
UNION ALL
SELECT 3, 'Integrated', COUNT(*)
FROM user_funnel
WHERE integrated_at >= onboarded_at
UNION ALL
SELECT 4, 'Activated', COUNT(*)
FROM user_funnel
WHERE activated_at >= integrated_at
)
SELECT
step_order,
step,
users,
100.0 * users
/ NULLIF(MAX(CASE WHEN step_order = 1 THEN users END) OVER (), 0)
AS conversion_from_signup_pct,
100.0 * users
/ NULLIF(LAG(users) OVER (ORDER BY step_order), 0)
AS conversion_from_previous_pct
FROM stage_counts
ORDER BY step_order;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
サインアップからアクティベーションまでのファネル
最大の絶対損失はオンボーディング完了前に発生しますが、統合が後になっても依然として最も強力なボトルネックとなります。
| step_order | step | users | conversion_from_signup_pct | conversion_from_previous_pct |
|---|---|---|---|---|
| 1 | Signed up | 8 | 100 | — |
| 2 | Onboarded | 6 | 75 | 75 |
| 3 | Integrated | 4 | 50 | 66.67 |
| 4 | Activated | 3 | 37.5 | 75 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1user_funnel CTE は、繰り返されるイベントを各マイルストーンの最初のタイムスタンプにまとめます。
- 2タイムスタンプの比較では意図した順序が適用されるため、順序が崩れたイベントによって後のステップが膨張することはありません。
- 3このクエリでは、サインアップからのコンバージョンと前のステップからのコンバージョンの両方がレポートされるため、全体的なパフォーマンスと最大の移行損失が同時に表示されます。
- 4イベント名は、ユーザーがステップを達成したことを証明しないページビューやボタンのクリックではなく、完了したマイルストーンを表す必要があります。
決定すべきエッジケース
- サインアップ時間に基づいてコホート ウィンドウを使用し、最近のサインアップがアクティブになるまで十分な時間を確保します。
- 遅れて到着するイベントにより、ユーザーが最近計算された目標到達プロセス内で一時的に後方に移動する可能性があります。
- 合計ファネルが十分なボリュームになった後でのみ、取得ソースごとにセグメント化します。
推奨されるダッシュボード
- ファネルバー: ユーザーごとのステップ
- 折れ線グラフ: 登録週ごとのアクティベーション率
- 表: ソース、プラン、またはペルソナ別のコンバージョン
レシピを活用する
関連する機器とガイド
ソースデータを定義する
この分析のイベント スキーマ
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。