本文へ移動
Telemetry
製品分析 SQL レシピ

SQL でサインアップからアクティベーションまでのファネルを構築する

サインアップ、オンボーディング、統合、最初の価値のマイルストーンを通じてユニーク ユーザーのコンバージョンを計算します。

中級者product_eventsレビュー済み 2026-07-27テスト済み アパッチ DataFusion 45.2.0

レビュー者 Telemetry 製品チーム . SQL の互換性、イベント コントラクト、合成出力、および操作上の注意事項. 基準と所有権を確認する

質問に回答しました

新しいユーザーは最初の値に到達する前にどこから離れてしまうのでしょうか?

ファネルは、すべてのステップに動作の定義がある場合にのみ役立ちます。このクエリはユーザーごとに 1 行を作成し、マイルストーンの順序を適用し、サインアップと前のステップからのコンバージョンを計算します。

イベント契約

クエリが期待するフィールド

フィールド種類なぜ存在するのか
timestamp_utcTimestamp製品イベントが発生したとき。
user_idUtf8安定したユーザー識別子。
event_nameUtf8安定した snake_case マイルストーン名。
sourceUtf8取得またはキャンペーンのソース。
DataFusion SQL

クエリをコピーする

sql
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_orderstepusersconversion_from_signup_pctconversion_from_previous_pct
1Signed up8100
2Onboarded67575
3Integrated45066.67
4Activated337.575

合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。

Signup-to-activation funnel: Build a Signup-to-Activation Funnel in SQL 結果例からの合成 users 値の静的チャート
決定論的な出力例のインデックス可能な SVG。記事、ランブック、または出典を明示した設計レビューのためにダウンロードしてください。

例を再現する

パブリックフィクスチャをダウンロードする

JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。

SQL の仕組み

  1. 1user_funnel CTE は、繰り返されるイベントを各マイルストーンの最初のタイムスタンプにまとめます。
  2. 2タイムスタンプの比較では意図した順序が適用されるため、順序が崩れたイベントによって後のステップが膨張することはありません。
  3. 3このクエリでは、サインアップからのコンバージョンと前のステップからのコンバージョンの両方がレポートされるため、全体的なパフォーマンスと最大の移行損失が同時に表示されます。
  4. 4イベント名は、ユーザーがステップを達成したことを証明しないページビューやボタンのクリックではなく、完了したマイルストーンを表す必要があります。

決定すべきエッジケース

  • サインアップ時間に基づいてコホート ウィンドウを使用し、最近のサインアップがアクティブになるまで十分な時間を確保します。
  • 遅れて到着するイベントにより、ユーザーが最近計算された目標到達プロセス内で一時的に後方に移動する可能性があります。
  • 合計ファネルが十分なボリュームになった後でのみ、取得ソースごとにセグメント化します。

推奨されるダッシュボード

  • ファネルバー: ユーザーごとのステップ
  • 折れ線グラフ: 登録週ごとのアクティベーション率
  • 表: ソース、プラン、またはペルソナ別のコンバージョン

アラートガイダンス

成熟したサインアップ コホートのアクティベーションが最近のベースラインを大幅に下回る場合は、緊急度の低いアラートを使用します。

アラート設定を読む

レシピを活用する

関連する機器とガイド

ソースデータを定義する

この分析のイベント スキーマ

分析を続ける

実際のイベントで実行する

テーブルを作成し、フィールドを調整して、結果を保存します

無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。

API キーを取得する