事件結構
查詢期望的欄位
| 欄位 | 型別 | 為什麼存在 |
|---|---|---|
| timestamp_utc | Timestamp | 作業或結果事件時間(UTC)。 |
| experiment_name | Utf8 | 穩定的實驗識別符號。 |
| variant | Utf8 | 控制或指定治療。 |
| user_id | Utf8 | 穩定的參與者識別符號。 |
| event_name | Utf8 | experiment_assigned 或 purchase_completed。 |
| revenue_usd | Float64 | 完成購買後的標準化收入。 |
DataFusion SQL
複製查詢
sql
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。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。
查詢結果
不同實驗變體的轉化提升
該治療具有更高的觀察到的每位參與者的轉化率和收入;統計不確定性在推出前仍需要審查。
control
12.99%
comparison 0%
proof_near_cta
14.91%
comparison 14.78%
| 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 |
綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。
SQL 是如何工作的
- 1第一個 CTE 為每個指定的參與者建立一個結果記錄,防止重複購買或追蹤事件導致分母膨脹。
- 2變體摘要保留參與者數量、轉化率和收入,因此在沒有商業價值的情況下不會評估更高的轉化率。
- 3最終的連線將每個變體與控制率進行比較,並報告相對而不是百分點的提升。
需要檢查的邊界情況
- 排除暴露於多種變體的參與者或根據記錄的意向治療規則分配他們。
- 等每位參與者的完整觀察期結束後,再將其計為未轉換。
- 在宣佈獲勝者之前計算置信區間或預先商定的統計測試。
推薦儀表板
- 條形:conversion_rate_pct(按型號)
- 資料表:參與者、每個參與者的收入以及相對提升
- 趨勢:每個觀察期結束後,依分配週統計群組轉換率
設定此查詢需要的事件
相關埋點和指南
繼續分析
在你的事件上執行
建立資料表,調整欄位並儲存結果
免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。