跳至主要內容
Telemetry
瀏覽說明文件
指南更新於 2026年7月27日由 Telemetry 編輯團隊和產品團隊審查閱讀約需 3 分鐘

讓程式設計代理使用這篇文件

開啟 Claude Code、Codex、Cursor 或其他編碼代理的集中提示包,然後將其適應此處介紹的工作流程。

本頁內容
  1. 1. 定義實驗
  2. 2、初始化Telemetry
  3. 3. 日誌分配和暴露
  4. 4. 記錄已完成的收入
  5. 5. 比較實驗結果
  6. 6. 評估不確定性
  7. 後續步驟

收入 A/B 測試

僅收入總額就可以有利於獲得更多流量的變體。記錄分配、曝光和已完成的收入,以便您可以比較每個曝光訪客的收入並評估不確定性。

控制和處理每個訪客的收入條以及估計的提升和置信區間

在決定治療是否產生有意義的提升之前,透過暴露來標準化收入。

1. 定義實驗

發貨前,寫下:

  • 穩定的實驗識別符號;
  • 對照和治療方案;
  • 分配單位,例如訪客、使用者或團隊;
  • 主要指標和護欄指標;
  • 最小樣本量、測試持續時間和停止規則。

一名受試者必須在整個實驗期間保持一種變體。

2、初始化Telemetry

npm install telemetry-sh
import telemetry from "telemetry-sh";

telemetry.init(process.env.TELEMETRY_API_KEY);

3. 日誌分配和暴露

僅當受試者能夠實際體驗治療時才記錄暴露情況。

const logExperimentExposure = ({ visitorId, variant }) => {
  telemetry.log("experiment_events", {
    event_name: "experiment_exposed",
    experiment_id: "checkout_copy_v2",
    visitor_id: visitorId,
    variant, // "control" or "treatment"
  });
};

使用內部識別符號而不是電子郵件、cookie 值或其他個人資料。

4. 記錄已完成的收入

將已完成的非測試購買記錄到同一張資料表中。保留原始分配,而不是從以後可能更改的欄位中查詢它。

const logPurchase = ({ visitorId, variant, orderId, revenueUsd }) => {
  telemetry.log("experiment_events", {
    event_name: "purchase_completed",
    experiment_id: "checkout_copy_v2",
    visitor_id: visitorId,
    variant,
    order_id: orderId,
    revenue_usd: revenueUsd,
  });
};

提前確定退款、退款、訂閱、貨幣和重複訂單對指標的影響。

5. 比較實驗結果

每個曝光訪客的收入使不平等的流量無法決定結果。此查詢在聚合每個變體之前為每個存取者建立一行:

WITH per_visitor AS (
  SELECT
    visitor_id,
    variant,
    MAX(CASE WHEN event_name = 'experiment_exposed' THEN 1 ELSE 0 END)
      AS was_exposed,
    SUM(CASE WHEN event_name = 'purchase_completed' THEN revenue_usd ELSE 0 END)
      AS visitor_revenue_usd
  FROM experiment_events
  WHERE experiment_id = 'checkout_copy_v2'
    AND timestamp_utc >= now() - INTERVAL '30 days'
  GROUP BY visitor_id, variant
)
SELECT
  variant,
  SUM(CASE WHEN was_exposed = 1 THEN 1 ELSE 0 END) AS exposed_visitors,
  SUM(CASE
    WHEN was_exposed = 1 AND visitor_revenue_usd > 0 THEN 1 ELSE 0
  END) AS buyers,
  ROUND(SUM(visitor_revenue_usd), 2) AS total_revenue_usd,
  ROUND(
    SUM(visitor_revenue_usd) /
    NULLIF(SUM(CASE WHEN was_exposed = 1 THEN 1 ELSE 0 END), 0),
    2
  ) AS revenue_per_exposed_visitor_usd,
  ROUND(
    100.0 * SUM(CASE
      WHEN was_exposed = 1 AND visitor_revenue_usd > 0 THEN 1 ELSE 0
    END) /
    NULLIF(SUM(CASE WHEN was_exposed = 1 THEN 1 ELSE 0 END), 0),
    2
  ) AS purchase_conversion_pct
FROM per_visitor
WHERE was_exposed = 1
GROUP BY variant
ORDER BY variant;

6. 評估不確定性

不要僅根據分數估計來宣佈獲勝者。收入分佈通常是傾斜的,因此匯出訪客級別的結果以獲得適當的置信區間或統計模型。在分析中保留預先指定的決策規則。

在相信結果之前,請檢查:

  • 樣本比例不匹配;
  • 分配給多個變體的訪客;
  • 重複訂單事件;
  • 測試交易、退款和混合貨幣;
  • 兩種變體的轉換時間是否相同;
  • 錯誤率或延遲等護欄指標的變化。

後續步驟

將審閱的查詢和實驗定義儲存在一起,以便圖表不會偏離其分母。使用 註冊啟用漏斗配方 來了解早期產品里程碑,使用 升級前的功能採用 來了解非實驗性擴充套件檢視。

相關功能

記錄穩定的事件名稱、型別明確的欄位,以及經過隱私審查的上下文。

頁面作者與參考資料

Telemetry 編輯團隊負責維護本文;產品團隊審查功能行為、範例和適用範圍。

我們如何審查文件