イベントスキーマ
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | UTC での割り当てまたは結果イベント時間。 |
| experiment_name | Utf8 | 安定した実験識別子。 |
| variant | Utf8 | コントロールまたは名前付き治療。 |
| user_id | Utf8 | 安定した参加者識別子。 |
| event_name | Utf8 | experiment_assigned または purchase_completed。 |
| revenue_usd | Float64 | 完了した購入による正規化された収益。 |
クエリをコピーする
WITH participant_outcomes AS (
SELECT
experiment_name,
variant,
user_id,
MAX(CASE WHEN event_name = 'experiment_assigned' THEN 1 ELSE 0 END)
AS was_assigned,
MAX(CASE WHEN event_name = 'purchase_completed' THEN 1 ELSE 0 END)
AS converted,
SUM(CASE
WHEN event_name = 'purchase_completed' THEN revenue_usd
ELSE 0.0
END) AS revenue_usd
FROM experiment_events
WHERE timestamp_utc >= now() - INTERVAL '60 days'
GROUP BY experiment_name, variant, user_id
),
variant_summary AS (
SELECT
experiment_name,
variant,
COUNT(*) AS participants,
SUM(converted) AS converted_participants,
100.0 * SUM(converted) / NULLIF(COUNT(*), 0) AS conversion_rate_pct,
SUM(revenue_usd) / NULLIF(COUNT(*), 0) AS revenue_per_participant_usd
FROM participant_outcomes
WHERE was_assigned = 1
GROUP BY experiment_name, variant
),
control AS (
SELECT
experiment_name,
conversion_rate_pct AS control_conversion_rate_pct
FROM variant_summary
WHERE variant = 'control'
)
SELECT
summary.experiment_name,
summary.variant,
summary.participants,
summary.converted_participants,
summary.conversion_rate_pct,
summary.revenue_per_participant_usd,
100.0 * (
summary.conversion_rate_pct - control.control_conversion_rate_pct
) / NULLIF(control.control_conversion_rate_pct, 0) AS relative_lift_pct
FROM variant_summary AS summary
JOIN control
ON control.experiment_name = summary.experiment_name
ORDER BY summary.experiment_name, summary.variant;この読み取り専用クエリは、空の型付きテーブルに対して計画され、実行されます。 アパッチ DataFusion 45.2.0。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
テスト バリアント別のコンバージョン増加率
この治療では、参加者あたりのコンバージョンと収益がより高く観察されています。統計的な不確実性は、展開前にまだ検討する必要があります。
| experiment_name | variant | participants | converted_participants | conversion_rate_pct | revenue_per_participant_usd | relative_lift_pct |
|---|---|---|---|---|---|---|
| annual_plan_checkout | control | 2,140 | 278 | 12.99 | 18.42 | 0 |
| annual_plan_checkout | proof_near_cta | 2,187 | 326 | 14.91 | 21.76 | 14.78 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
サンプルデータをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 illustrative 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1最初の CTE は、割り当てられた参加者ごとに 1 つの結果レコードを作成し、繰り返しの購入や追跡イベントによって分母が大きくなるのを防ぎます。
- 2バリアントサマリーは参加者のボリューム、コンバージョン、収益を維持するため、商業的価値がなければコンバージョン率が高くても評価されません。
- 3最後の結合では、すべてのバリアントを対照率と比較し、パーセントポイントではなく相対的な上昇率をレポートします。
確認するエッジケース
- 複数の変異にさらされた参加者を除外するか、文書化された治療意図ルールに従って参加者を割り当てます。
- 各参加者の観察期間がすべて終了してから、未コンバージョンとして数えます。
- 勝者を宣言する前に、信頼区間または事前に合意された統計検定を計算します。
推奨されるダッシュボード
- バー: conversion_rate_pct (バリエーション別)
- 表: 参加者、参加者あたりの収益、および相対的な上昇率
- 推移: 各観察期間の終了後に、割り当て週別のコホート転換率を表示
アラートガイダンス
通常の実験のバリエーションについてページを表示しないでください。割り当てバランス、イベント配信、またはガードレール メトリックが壊れた場合にのみアラートを発します。
アラート設定を読むこのクエリに必要なイベントを設定する
関連する機器とガイド
分析を続ける
自分のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。