โฆษณา
คำแนะนำ ad-audit มาตรฐานบน Shopee คือหาแคมเปญที่ "ทำผลงานไม่ดี" แล้วหยุดมัน คำแนะนำนี้ไม่ผิด แต่ไม่ครบ แคมเปญที่ผู้ขายส่วนใหญ่ระบุว่าทำผลงานไม่ดีคือแคมเปญที่ถูกแฟล็กอยู่แล้วในแดชบอร์ดของแพลตฟอร์ม ทั้ง ROAS แบบแพลตฟอร์มต่ำ คลิกผ่านน้อย และรายได้ที่มาจากโฆษณาอ่อนแอ การหยุดมันก็ดึงงบกลับมาได้บ้าง และไกด์ Shopee Ads จากภายนอกส่วนใหญ่ก็จบแค่นั้น แต่จุดรั่วไหลเชิงโครงสร้างอยู่ที่อื่นโดยสิ้นเชิง
ในข้อมูลของเราจากบัญชี Shopee ไทยในกลุ่ม SEA-6 ราว 280 บัญชี แคมเปญที่ค่อย ๆ ดูดกำไรไปมากที่สุดไม่ใช่แคมเปญที่ทำผลงานแย่อย่างเห็นได้ชัด แต่เป็นแคมเปญที่ ROAS แบบแพลตฟอร์มดูดี (5.0–8.0 ในแดชบอร์ด) คลิกผ่านสุขภาพดี มีรายได้ที่มาจากโฆษณาจริง และเศรษฐศาสตร์ต่อหน่วยกลับเป็นลบทันทีเมื่อนับค่าคอมมิชชัน ค่าธรรมเนียมธุรกรรม voucher ที่ผู้ขายออกเอง และส่วนของ Free Shipping Program ที่ผู้ขายออกเองอย่างถูกต้อง ราว 20–30% ของค่าโฆษณาบนบัญชีทั่วไปอยู่ในกลุ่มนี้ คือแคมเปญที่ขาดทุนเชิงโครงสร้างแต่แดชบอร์ดจัดอันดับให้เป็นผู้ชนะ สัดส่วนนั้นคือช่องว่างเชิงปฏิบัติที่บันทึกนี้บันทึกไว้
ค่าโฆษณาเสียเปล่าบน Shopee ส่วนใหญ่ไม่ได้อยู่ในแคมเปญที่ดูพัง แต่อยู่ในแคมเปญที่ดูสุขภาพดี
บันทึกนี้เสนอว่าการลดค่าโฆษณาเสียเปล่าบน Shopee เป็นเรื่องเชิงโครงสร้าง ไม่ใช่การผ่าตัดเฉพาะจุด การหยุดแคมเปญที่ทำผลงานแย่อย่างเห็นได้ชัดอย่างมากก็เป็นแค่ move ที่สามหรือสี่ใน audit ที่มีประโยชน์ สอง move แรกคือการแก้ metric ที่ใช้ audit (เปลี่ยน ROAS แบบแพลตฟอร์มเป็น True ROAS ต่อ SKU) และรีเซ็ตการขยาย keyword แบบ broad-match ที่เปิดไว้เป็น default ซึ่งดันโมเดล relevance ของแพลตฟอร์มเข้าหา query ที่ผู้ขายไม่ได้เป็นคนเขียนเอง พร้อมด้วยการ visualise ระดับ chart ว่าค่าโฆษณาเสียเปล่ากระจุกอยู่ที่ไหน สองตัวอย่างจริง (SKU margin สูงและ margin ต่ำที่ ROAS แดชบอร์ดเท่ากัน) การวิเคราะห์ sensitivity บนต้นทุนที่ขยับผลลัพธ์ของ audit ขั้นตอน audit สองสัปดาห์ และ move เชิงปฏิบัติที่ตามมา
ค่าโฆษณาเสียเปล่ากระจุกอยู่ที่ไหนจริง ๆ — มองเป็นภาพ
chart ด้านล่างแสดงสัดส่วนของค่าโฆษณาที่ขาดทุนเชิงโครงสร้างใน 4 กลุ่มแคมเปญบนบัญชี Shopee ตัวแทน กลุ่มแคมเปญที่ทำผลงานแย่อย่างเห็นได้ชัด (ROAS แบบแพลตฟอร์มต่ำ) คือกลุ่มที่ audit ส่วนใหญ่พุ่งเป้า ส่วนกลุ่มที่ขาดทุนเชิงโครงสร้าง (ROAS แบบแพลตฟอร์มสูง True ROAS ต่ำ) คือที่ที่การจัดสรรงบจริง ๆ อยู่ chart นี้คือเหตุผลที่ควรเปลี่ยน ROAS แบบแพลตฟอร์มเป็น True ROAS เป็น metric ที่ใช้ audit
การกระจายคิดตามสัดส่วนของค่าโฆษณา ไม่ใช่จำนวนแคมเปญ กลุ่มค่าโฆษณาเสียเปล่าแบบซ่อนเร้น (ROAS แบบแพลตฟอร์มสูง True ROAS ต่ำ) รวมกับ broad-match ดริฟต์ คิดเป็นราว 33% ของค่าโฆษณาทั้งหมดบนบัญชีทั่วไป นั่นคืองบที่ audit จะจัดสรรใหม่
ปัญหา ROAS บนแดชบอร์ด
ROAS ในแพลตฟอร์มของ Shopee ตามที่ Shopee Ads Help Center ระบุ คือรายได้ที่มาจากโฆษณาหารด้วยค่าโฆษณา การ bid แบบ Target ROAS จะ optimize อัตโนมัติเข้าหาเป้า ROAS ที่ผู้ขายกำหนดในช่วง learning window ของแคมเปญ ทั้งสองนิยามสะอาดในเชิงคณิตศาสตร์แต่ชวนเข้าใจผิดในเชิงปฏิบัติ ตัวเศษ (รายได้ที่มาจากโฆษณา) เป็นยอดรวม ไม่ได้หักค่าคอมมิชชันแพลตฟอร์ม (1–6% non-Mall, 3–12% Mall บวกค่าธรรมเนียมธุรกรรม ~2%) ส่วนของ Shop Voucher ที่ผู้ขายออกเอง (ตาม Help Center "หักออกจากยอดขายของคุณในฐานะต้นทุนการตลาด") หรือส่วนของ subsidy Free Shipping Program ที่ผู้ขายออกเอง การ optimize การ bid เข้าหา metric นี้ บนแคมเปญที่กำลัง scale จึงเอนเอียงเชิงโครงสร้างไปทางใช้จ่ายเกิน โมเดล relevance ของแพลตฟอร์มจะเก่งขึ้นในการดึงความเต็มใจจ่ายส่วนเพิ่มออกจากงบโฆษณาของผู้ขายตลอด learning window แต่ margin ต่อยอดขายที่ได้จากโฆษณาแต่ละหน่วยกลับมองไม่เห็นในการ optimize นั้น
Both campaigns: ad spend THB 1,000 · attributed revenue THB 8,000 · platform ROAS 8.0
High-margin SKU (40% gross):
COGS 4,800 + fees 900 + voucher 1,000 + ad 1,000 = 7,700
Net ad profit: +THB 300
True ROAS = (8,000 − 4,800 − 900 − 1,000) / 1,000 = 1.30
Low-margin SKU (28% gross):
COGS 5,800 + fees 900 + voucher 1,000 + ad 1,000 = 8,700
Net ad profit: −THB 1,700
True ROAS = (8,000 − 5,800 − 900 − 1,000) / 1,000 = 0.30
Spread: −82% in true ROAS at the same dashboard signal.การเปลี่ยน ROAS แบบแพลตฟอร์มเป็น True ROAS ซึ่งคือรายได้ที่มาจากโฆษณาหักด้วย COGS ค่าธรรมเนียม voucher และค่าส่ง แล้วหารด้วยค่าโฆษณา ให้เศรษฐศาสตร์ระดับ SKU ออกมาตรง ๆ เมื่อรวมเข้ากับ break-even ROAS ที่คำนวณจากสัดส่วนต้นทุนผันแปรของแต่ละ SKU เอง audit จะออกมาเป็นลิสต์แคมเปญที่ ROAS ต่ำกว่า break-even ของตัวเอง ไม่ว่าแดชบอร์ดจะแสดงอะไรก็ตาม
ปัญหาการขยายแบบ broad-match
Shopee Keyword Ads ตั้งค่าการขยายแบบ broad-match เป็น default ตาม Shopee Ads Thailand Help Center แพลตฟอร์มจะนำแคมเปญไปแสดงบน query ที่เกี่ยวข้องโดยอัตโนมัติซึ่งผู้ขายไม่ได้ bid ไว้ชัดเจน โดยใช้โมเดล relevance ของแพลตฟอร์มตัดสินว่าจะให้งบของผู้ขายไปขยายตัวไหน งบโฆษณาของผู้ขายจึงไปจ่ายค่า impression บน query ที่แพลตฟอร์มเลือก ไม่ใช่ที่ targeting brief ของผู้ขายเลือก ในข้อมูลของเรา การขยายแบบ broad-match จับปริมาณออเดอร์ที่มาจากโฆษณาได้ 25–40% บนแคมเปญทั่วไป โดยมักไปโผล่บน query เชิงข้อมูล (คนที่กำลังหาข้อมูล ไม่ได้จะซื้อ) query เปรียบเทียบราคา (ค้นหาสินค้าทดแทนและคู่แข่งตรง ๆ) และ query หมวดสินค้าใกล้เคียงที่แพลตฟอร์มมองว่าเกี่ยวกันในเชิงความหมาย ออเดอร์ที่มาจากการขยายแบบ broad-match แปลงเป็นยอดขายในอัตราที่ต่ำกว่าอย่างมีนัยและมีต้นทุนต่อยอดขายที่ได้สูงกว่า keyword แบบ exact-match ที่ผู้ขายตั้งใจเลือกเอง
วิธีแก้ไม่ใช่การปิด broad-match นั่นคือการแก้เกินเชิงโครงสร้างที่ "ทำยอดขายตก" เพราะ traffic จาก broad-match บางส่วนเป็นยอดเพิ่มจริงและคุณภาพดี โดยเฉพาะบน SKU margin สูงที่ margin รับ CPA ที่สูงกว่าได้ วิธีแก้คือทำให้ broad-match เป็นแบบ opt-in ต่อแคมเปญแทน opt-out โดยตัดสินใจหลังจากหน้าต่างวัดผล 14 วัน ที่ออเดอร์จาก broad-match ถูกแท็กแยกจากออเดอร์ exact-match และคำนวณ True ROAS ของแต่ละเส้นทางแยกกัน
ในข้อมูลของเรา exact-match แปลงเป็นยอดขายที่ True ROAS ราว 1.5–2× ของการขยายแบบ broad-match บน keyword เดียวกัน ส่วนต่างมากที่สุดบน long-tail และชื่อแบรนด์แปรผัน ที่ broad-match ดริฟต์เข้าไปหา query เชิงข้อมูลและคู่แข่ง ซึ่งกินงบโดยไม่แปลงเป็นยอดขายที่เป็น margin ของผู้ขาย
audit สองสัปดาห์ ไม่ใช่ลิสต์หยุดแคมเปญภายในวันเดียว
ad audit ที่ถูกต้องบนบัญชี Shopee คือหน้าต่างวัดผลที่เก็บข้อมูลที่จำเป็นสำหรับการตัดสินใจที่ยั่งยืน ไม่ใช่ลิสต์หยุดแคมเปญภายในวันเดียว โครงสร้างด้านล่างให้ลิสต์การตัดสินใจระดับแคมเปญพร้อมเหตุผลที่ตรวจสอบได้ ทำที่จังหวะ production แทนที่จะทำแค่ตอนปิดไตรมาส
1. Export เศรษฐศาสตร์ต่อออเดอร์ของ 30 วันย้อนหลัง
ใช้ Shopee Open Platform export หรือสำหรับแคตตาล็อกขนาดเล็กให้ใช้ order-line CSV จาก Seller Centre คอลัมน์ที่ต้องมี: order ID, SKU, แคมเปญ / keyword / match-type ที่ระบุได้, รายได้ที่มาจากโฆษณา, ค่าคอมมิชชัน, ค่าธรรมเนียมธุรกรรม, ส่วน voucher ที่ผู้ขายออกเอง, subsidy ค่าส่งฟรี, fulfillment, แฟล็กคืนสินค้า
2. Reconstruct True ROAS ต่อแคมเปญ ต่อ keyword ต่อ match-type
สำหรับทุกออเดอร์ที่มาจากโฆษณา: กำไรส่วนเพิ่มก่อนหักค่าโฆษณา = รายได้ − COGS − ค่าธรรมเนียม − voucher − ค่าส่ง − สำรองคืนสินค้า รวมขึ้นไปที่ระดับแคมเปญ / keyword / match-type แล้วหารด้วยค่าโฆษณาที่ระดับเดียวกัน ผลลัพธ์คือ True ROAS ที่สามความละเอียด ตัวเลขระดับแคมเปญคืออินพุตของ audit ตัวเลขระดับ keyword คือคันโยกของการลงมือ และตัวเลขระดับ match-type บอกว่าการ opt-in broad-match คุ้มหรือไม่
3. คำนวณ break-even ROAS ต่อ SKU
break-even ROAS = 1 / อัตรา contribution margin ใช้ต่อ SKU ไม่ใช่ต่อบัญชี SKU ที่ margin 25% จะ break even ที่ ROAS 4.0 ส่วน SKU ที่ margin 10% จะ break even ที่ ROAS 10.0 เส้น break-even คือเส้นพื้นของ audit ทุกแคมเปญบน SKU นั้นถูกตัดสินเทียบกับเส้นของ SKU เอง ไม่ใช่เป้าระดับทั้งบัญชี
4. แฟล็กและแท็กทุกแคมเปญที่ต่ำกว่า break-even
แท็กสาเหตุพื้นฐาน: แรงกดดันจากการ bid (CPC ที่ถูกการประมูลดันขึ้น), broad-match ดริฟต์ (สัดส่วน broad-match สูง สัดส่วน exact-match ต่ำ), การยกระดับ voucher tier (voucher ที่ผู้ขายออกเองในช่วงแคมเปญสูงกว่า margin ของหมวด), SKU margin ต่ำ (margin ของ SKU รองรับ ad load ปัจจุบันไม่ไหวที่ scale ใด ๆ ที่สมเหตุสมผล) หรือการแปลงยอดขายที่อ่อน (มี impression แต่มีออเดอร์ที่มาจากโฆษณาน้อย) แคมเปญที่ถูกแฟล็กจะได้รับหนึ่งใน 4 การลงมือ: หยุด ลด bid แคบ match-type หรือย้ายงบไปยัง SKU ที่ margin สูงกว่า
Sensitivity — อะไรที่เปลี่ยนผลลัพธ์ของ audit
ความแม่นยำของ audit ขึ้นกับคุณภาพของอินพุต ตารางด้านล่างแสดงว่าสัดส่วนของค่าโฆษณาที่ถูกแฟล็กว่าขาดทุนขยับอย่างไรภายใต้ปัญหาคุณภาพอินพุตที่พบบ่อย sensitivity นี้สำคัญเชิงโครงสร้าง: อินพุต COGS หรือการระบุ voucher ที่แย่จะให้ audit ที่มีสัญญาณรบกวนซึ่งจัดสรรการหยุดผิดพลาด ส่วนอินพุตที่สะอาดให้ audit ที่แม่นยำซึ่งดึง margin กลับมาได้โดยไม่เสียยอดขาย
| สถานการณ์คุณภาพอินพุต | สัดส่วนที่ถูกแฟล็กว่าขาดทุน | โปรไฟล์ความเสี่ยง |
|---|---|---|
| ข้อมูล order-line สะอาด มี COGS ของ SKU 50 อันดับแรก ระบุ voucher ต่อออเดอร์ | 20–30% | อ้างอิง — ผลลัพธ์ audit ระดับงานวิจัยทั่วไป |
| COGS หายไป 30%+ ของแคตตาล็อก (อนุมานจากค่าเฉลี่ยหมวด) | 14–22% | ประเมินค่าโฆษณาเสียเปล่าต่ำเกินจริงบน SKU ที่ COGS ผิดปกติ |
| ระบุ voucher ที่ระดับแคมเปญเท่านั้น (ไม่ใช่ต่อออเดอร์) | 24–34% | ประเมินค่าโฆษณาเสียเปล่าสูงเกินจริงบนแคมเปญ voucher สูง |
| ไม่ได้ใส่สำรองคืนสินค้า | 15–25% | ประเมินค่าโฆษณาเสียเปล่าต่ำเกินจริงบนหมวดที่คืนสินค้าบ่อย |
| ใช้ ROAS ระดับทั้งบัญชีเป็นเส้น audit (ไม่ใช่ break-even ต่อ SKU) | 10–18% | พลาดกลุ่มจุดรั่วไหลเชิงโครงสร้างทั้งหมด |
| ปัญหาคุณภาพอินพุตทุกอย่างทบกัน | 8–14% | audit แทบแยกไม่ออกจากการ "หยุด ROAS แบบแพลตฟอร์มต่ำ" |
sensitivity ยืนยันข้อโต้แย้งเชิงโครงสร้าง: audit ที่รันบนอินพุตที่ผิดให้ผลลัพธ์ที่แยกไม่ออกจากวิธีหยุดแคมเปญที่ทำผลงานแย่แบบมาตรฐาน คุณภาพอินพุต ไม่ใช่ความซับซ้อนของ audit คือสิ่งที่แยกตัวเลขค่าโฆษณาเสียเปล่าทั่วไป 20–30% ออกจากตัวเลข 8–14% ที่ชวนเข้าใจผิดภายใต้อินพุตที่เสื่อมคุณภาพ
ข้อจำกัดและจุดที่ข้อโต้แย้งนี้พัง
ข้อจำกัดชัดเจน 5 ข้อ
- ขอบล่างของขนาดบัญชี audit สองสัปดาห์ต้องอาศัยกำลังในการดำเนินงานเพื่อ reconstruct เศรษฐศาสตร์ระดับ order-line ข้ามออเดอร์ที่มาจากโฆษณามากกว่า 30 วัน ต่ำกว่ารายได้ราว ฿200K ต่อเดือน ต้นทุนการดำเนินงานจะมากกว่า margin ที่ได้คืน วิธีคิดแบบง่ายได้ผลดีกว่า — โฟกัสค่าโฆษณาไปที่ SKU สาม margin สูงสุดและคอยดูกระแสเงินสด
- คุณภาพข้อมูล COGS ความแม่นยำของ audit ถูกจำกัดด้วยความสดของอินพุต COGS SKU long-tail ที่ไม่ได้อัปโหลด COGS จะตกไปใช้การอนุมานจากค่าเฉลี่ยหมวด ซึ่งเป็นค่าประมาณและอาจทำให้คลาดเคลื่อนได้ 5–10 จุด margin บน SKU ที่ผิดปกติ รีเฟรช COGS ทุกไตรมาส และแฟล็กค่าที่อนุมานว่าเป็นค่าประมาณในผลลัพธ์ของ audit
- หน้าต่าง attribution ไม่ตรงกัน หน้าต่าง ad-attribution ของ Shopee (โดยทั่วไปคลิก 7 วัน + วิว 1 วัน) ไม่ตรงกับหน้าต่างการเกิดออเดอร์จริงของผู้ขาย (การคืนและคืนเงินคลี่คลายใน 7–30 วันหลังออเดอร์) audit ถือว่าแคมเปญจบที่ attribution ส่วนการ reconcile แบบหักการคืนสินค้าจริงเกิดราว 30 วันให้หลัง ผู้ขายที่เทียบกับบัญชีควรเผื่อ lag เล็กน้อย
- การดริฟต์ตามฤดูกาลของ broad-match ส่วนต่าง True ROAS ระหว่าง exact-match กับ broad-match ที่ 1.5–2× สังเกตได้ข้ามหน้าต่าง 30 วันแบบหมุนในตัวอย่างของเรา แต่แปรผันตามฤดูกาล — broad-match ดริฟต์มากขึ้นในช่วงแคมเปญใหญ่ (11.11, 12.12, Pay Day) เมื่อโมเดล relevance ของแพลตฟอร์มนำแคมเปญไปแสดงบน query ที่เกี่ยวข้องแบบหลวมขึ้น รัน audit ซ้ำหลังแต่ละช่วงแคมเปญใหญ่
- ขอบเขตข้อมูลภายใน คำกล่าว "ในข้อมูลของเรา" (สัดส่วนขาดทุน 20–30%, ส่วนต่าง broad-match, ตัวเลขการกระจายของกลุ่ม) มาจากการรวมข้อมูลบัญชี Shopee ไทยในกลุ่ม SEA-6 ที่เราโมเดลโดยตรง ไม่ใช่คำกล่าวเชิงประชากรเกี่ยวกับบัญชี Shopee Ads ทั้งหมด และไม่รวมส่วนล่างของการกระจายตามขนาดที่กล่าวไว้ข้างต้นอย่างชัดเจน
ระเบียบวิธี
การอ้างอิงข้อมูลสาธารณะมาจาก Shopee Ads Thailand Help Center (หน้านิยาม ROAS, เอกสารตั้งค่า Target ROAS, เอกสาร Keyword Ads broad-match), Shopee Help Center ทั่วไป (ค่าคอมมิชชัน ค่าธรรมเนียมธุรกรรม กลไก voucher Free Shipping Program), การเปิดเผยข้อมูล 4Q25 / 1Q26 ของ Sea Limited และบทวิเคราะห์ Bain e-Conomy SEA 2025 เรื่องเงินเฟ้อของ retail media ใน marketplace แถบ SEA
คำกล่าวจากข้อมูลภายใน — สัดส่วนขาดทุนเชิงโครงสร้าง 20–30%, chart การกระจายของกลุ่ม, ส่วนต่าง True ROAS ระหว่าง broad-match กับ exact-match, สัดส่วน broad-match 25–40% ของปริมาณออเดอร์ที่มาจากโฆษณา — มาจากการรวมข้อมูลบัญชี Shopee ไทยในกลุ่ม SEA-6 ที่เราโมเดลโดยตรง กลุ่มย่อย Shopee Ads ประกอบด้วยบัญชีที่ใช้งานราว 280 บัญชี ภายใน sample frame ของ ระเบียบวิธีวิจัย DataGlass (ม.ค. 2024 – เม.ย. 2026 หน้าต่างสังเกตการณ์ 28 เดือน)
อย่าหยุดแคมเปญที่เห็นชัดว่าแย่ก่อน แก้ metric ที่ใช้ audit ก่อน แล้วค่อยหยุดจากผลของ audit