การกำหนด Metrics
Fact Tables และ Metrics
หัวข้อที่มีชื่อว่า “Fact Tables และ Metrics”GrowthBook ใช้โมเดลสองชั้น:
- Fact Table — เป็น wrapper บางๆ รอบ raw event table ใน warehouse ของคุณ ทำหน้าที่กำหนดว่า SQL query ใดที่ดึง raw events ออกมา และ column ใดที่แทน user ID, timestamp, และค่าตัวเลข
- Metric — คำนิยามทางสถิติที่สร้างบน Fact Table เป็นตัวกำหนดว่าจะ aggregate raw events เป็นตัวเลขต่อ user ต่อ experiment อย่างไร
การแยกสองชั้นนี้หมายความว่าคุณกำหนด data shape ครั้งเดียว (Fact Table) แล้วสร้าง metric ได้หลายตัวจาก Fact Table เดียวกันโดยไม่ต้องเขียน SQL ซ้ำ
ประเภท metric
หัวข้อที่มีชื่อว่า “ประเภท metric”| ประเภท | คำนิยาม | ตัวอย่าง |
|---|---|---|
| Proportion | เปอร์เซ็นต์ผู้ใช้ที่ทำ event อย่างน้อยหนึ่งครั้ง | Conversion rate, click-through rate |
| Mean | ค่าเฉลี่ยตัวเลขต่อ user | Average order value, average session duration |
| Ratio | Numerator metric หารด้วย denominator metric | Revenue per session, pages per visit |
ขั้นตอนที่ 1 — สร้าง Fact Table
หัวข้อที่มีชื่อว่า “ขั้นตอนที่ 1 — สร้าง Fact Table”- ใน sidebar ด้านซ้าย ไปที่ Analysis แล้ว Fact Tables
- คลิก Add Fact Table
- ตั้งชื่อ (เช่น
Orders) - เลือก Data Source ของคุณ
- เขียน SQL query ที่ดึง raw events ออกมา query ต้องคืนอย่างน้อย:
- Column สำหรับ user identifier
- Column สำหรับ timestamp
- (สำหรับ mean/ratio metrics) Column ค่าตัวเลข
ตัวอย่าง Fact Table SQL สำหรับ orders table:
SELECT user_id, timestamp, revenue_usdFROM `myproject.analytics.orders`WHERE timestamp >= '{{ startDate }}' AND timestamp <= '{{ endDate }}'- Map User ID column และ Timestamp column ใน Fact Table settings
- คลิก Save
ขั้นตอนที่ 2 — กำหนด Metric
หัวข้อที่มีชื่อว่า “ขั้นตอนที่ 2 — กำหนด Metric”- ใน sidebar ด้านซ้าย ไปที่ Analysis แล้ว Metrics
- คลิก Add Metric
- เลือกประเภท metric: Proportion, Mean, หรือ Ratio
- เลือก Fact Table ที่เพิ่งสร้าง
- สำหรับ Mean metric ให้เลือก column ค่าตัวเลข (เช่น
revenue_usd) - ตั้ง Metric Window — ช่วงเวลาหลัง assignment ที่จะนับ events (เช่น 14 วัน) เพื่อป้องกัน long-tail events รบกวนการวิเคราะห์
- ตั้งค่าเสริม:
- Minimum sample size — GrowthBook จะไม่แสดงผลจนถึง threshold นี้
- Maximum percentage change — แจ้งเตือนถ้า uplift ดูใหญ่ผิดปกติ
- คลิก Save Metric
ตัวอย่าง metric SQL (direct SQL metric)
หัวข้อที่มีชื่อว่า “ตัวอย่าง metric SQL (direct SQL metric)”สำหรับกรณีที่ Fact Table ไม่เหมาะ GrowthBook ยังรองรับการกำหนด metric ด้วย raw SQL โดยตรง นี่คือ proportion metric ที่นับ users ที่สั่งซื้ออย่างน้อยหนึ่งครั้ง:
-- Proportion metric: "Purchased"
-- Returns one row per user who placed an order.
-- GrowthBook computes the conversion rate: ordered_users / assigned_users.
SELECT
user_id,
timestamp
FROM
`myproject.analytics.orders`
WHERE
timestamp >= '{{ startDate }}'
AND timestamp <= '{{ endDate }}'ข้อแลกเปลี่ยน
หัวข้อที่มีชื่อว่า “ข้อแลกเปลี่ยน”| ตัวเลือก | Benefit | Cost |
|---|---|---|
| Goal metric ที่เจาะจงมาก | วัดผลชัดเจนตรงประเด็น | อาจพลาด side effect ที่ metric อื่นจับได้ |
| Metric ที่กว้างครอบคลุม | ครอบคลุมผลกระทบกว้างกว่า | ตีความยากว่าอะไรขับเคลื่อนผล |
ข้อผิดพลาดที่พบบ่อย
หัวข้อที่มีชื่อว่า “ข้อผิดพลาดที่พบบ่อย”- นิยาม metric ที่ไม่ตรงกับ business goal จริง (วัด vanity metric แทน conversion จริง)
- ไม่ตั้ง guardrail metric ทำให้พลาดผลข้างเคียงที่แย่ (เช่น page load ช้าลง)
- เปลี่ยนนิยาม metric กลาง experiment ทำให้เปรียบเทียบผลก่อน-หลังไม่ได้
💡 ตัวอย่างจากของจริง
ทีม data ที่ Booking.com ตั้ง guardrail metric (เช่น error rate, latency) คู่กับทุก goal metric เสมอ เพื่อจับผลข้างเคียงที่ไม่คาดคิด