跳至主要內容
Telemetry
產品分析 SQL查詢範例

比較實驗轉化和收入提升

透過實驗變數衡量轉化率、每個參與者的收入以及相對提升,而無需重複計算重複事件。

高階experiment_events已審查 2026-07-28測試用 阿帕奇 DataFusion 45.2.0

審閱者 Telemetry產品團隊 . 我們檢查了 SQL 語法、必要的事件欄位、範例結果和查詢使用限制. 誰負責審查此頁面

問題已回答

實驗是否提高了每個指定參與者的轉化率和收入?

實驗結果需要每個參與者進行一項作業、固定的結果視窗以及轉化率和價值。在將每個變體與對照進行比較之前,該模式將重複事件摺疊到參與者級別的記錄中。

事件結構

查詢期望的欄位

欄位型別為什麼存在
timestamp_utcTimestamp作業或結果事件時間(UTC)。
experiment_nameUtf8穩定的實驗識別符號。
variantUtf8控制或指定治療。
user_idUtf8穩定的參與者識別符號。
event_nameUtf8experiment_assigned 或 purchase_completed。
revenue_usdFloat64完成購買後的標準化收入。
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。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。

查詢結果

不同實驗變體的轉化提升

該治療具有更高的觀察到的每位參與者的轉化率和收入;統計不確定性在推出前仍需要審查。

experiment_namevariantparticipantsconverted_participantsconversion_rate_pctrevenue_per_participant_usdrelative_lift_pct
annual_plan_checkoutcontrol2,14027812.9918.420
annual_plan_checkoutproof_near_cta2,18732614.9121.7614.78

綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。

Conversion lift by experiment variant:來自 Compare experiment conversion and revenue lift 範例結果的合成 conversion_rate_pct 值的靜態圖表
確定性範例輸出的可索引 SVG。下載它以獲取帶有歸屬的文章、操作手冊或設計評論。

重現範例

下載範例資料

JSON 包包含型別化事件契約, illustrative 輸入行、確切的 SQL、預期輸出、審閱註釋和引擎版本。 CSV 包含顯示的結果。

SQL 是如何工作的

  1. 1第一個 CTE 為每個指定的參與者建立一個結果記錄,防止重複購買或追蹤事件導致分母膨脹。
  2. 2變體摘要保留參與者數量、轉化率和收入,因此在沒有商業價值的情況下不會評估更高的轉化率。
  3. 3最終的連線將每個變體與控制率進行比較,並報告相對而不是百分點的提升。

需要檢查的邊界情況

  • 排除暴露於多種變體的參與者或根據記錄的意向治療規則分配他們。
  • 等每位參與者的完整觀察期結束後,再將其計為未轉換。
  • 在宣佈獲勝者之前計算置信區間或預先商定的統計測試。

推薦儀表板

  • 條形:conversion_rate_pct(按型號)
  • 資料表:參與者、每個參與者的收入以及相對提升
  • 趨勢:每個觀察期結束後,依分配週統計群組轉換率

警示指導

不要尋呼正常的實驗變化;僅當分配平衡、事件傳遞或護欄指標中斷時發出警示。

讀取警示設定

設定此查詢需要的事件

相關埋點和指南

繼續分析

在你的事件上執行

建立資料表,調整欄位並儲存結果

免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。

獲取 API 金鑰