2.1 KiB
2.1 KiB
Experiment System Spec
目標
定義銷售實驗主線的最小可上線系統範圍(MVP):
- Experiment
- Variant
- Change Set
- Release
- Runtime delivery
這輪規格調整(2026-03-22)
- 實驗匹配規則必須同時支援:
- URL 規則(contains / equals / starts_with / regex)
- 裝置限制(mobile / tablet / desktop)
- 建立 Experiment 時,自動建立一個「原始版本 Variant」:
- 系統自動建立,不讓使用者手動調整該原始版本內容
- 移除
is_control:
- 不再讓使用者手動指定對照組
- 移除
variant_changes.enabled:
- 每筆 change 預設生效,不提供啟用/停用欄位
- key 全改為系統生成:
experiment_key:EX+timestampvariant_key:VA+timestamp- 使用者不輸入 key
- Variant 簡化:
- 不再有
status - 使用者建立/編輯 variant 只可調整
name與traffic_weight
核心流程
- 建立 Experiment
- 系統自動建立原始版本 Variant(不可編輯內容)
- 建立其他 Variant(只編輯 name / traffic_weight)
- 在 Editor 編輯 Variant changes
- Build Release(產生 runtime payload)
- Publish / Rollback
- Runtime assign + payload 套用 + event 回傳
Experiment 管理
- 列表、建立、編輯、狀態流轉(schedule / pause / resume / archive)
- 支援 module_type 與 targeting_config
- targeting_config 最少要包含
url_rules與device_targets
Variant 管理
- 列表、建立、編輯、刪除
- 使用者可調整:
name、traffic_weight - 系統管理欄位:
variant_key - 不提供
status、is_control - change set 可讀可寫(不含 enabled 開關)
Release 管理
- build:由 variant_changes 聚合 payload
- publish:將 release 生效
- rollback:回到前一可用 release
Assignment 規則
- 以 stable seed 決定 bucket
- bucket 對映 variant weight
- assignment 結果需可追蹤
第一版成功標準
- 後台可完成「建立實驗 -> 建立變體 -> 編輯 -> build -> publish」
- runtime 可正確回傳 assignment 與 payload
- rollback 可恢復上一版本