เซิร์ฟเวอร์ของ Server-side GTM ควรไปวางที่ไหน เทียบค่าใช้จ่ายจริงต่อเดือน
สรุปสั้น ๆ
ค่าโฮสต์ Server-side GTM ส่วนใหญ่ไม่ได้ผันตามจำนวนคำขอ แต่ผันตามจำนวนอินสแตนซ์ที่เปิดค้างไว้ตลอดเดือน (เอกสารของ Google แนะนำให้ production มีหลายอินสแตนซ์เพื่อกันล่ม) เว็บทราฟฟิกน้อยจึงมักจ่ายเกินตัวถ้าตั้งตามมาตรฐาน ส่วนร้านที่ต้องการแค่ส่งยอดขายในแชทกลับแพลตฟอร์มอาจไม่ต้องมี container เลย
มีวันหนึ่งที่เจ้าของร้านเปิดใบแจ้งหนี้ Google Cloud แล้วเห็นเลขที่ไม่เคยอยู่ในแผนงบ เครื่องที่ตั้งไว้ให้ server container ทำงานมาตลอดสามเดือน ไม่ได้ใช้ตอนไหนเป็นพิเศษ ทราฟฟิกวันธรรมดาแทบไม่ขยับ แต่บิลก็ยังออกเท่ากันทุกเดือน
เรื่องนี้เกิดเพราะคนส่วนใหญ่ถูกสอนวิธีตั้ง Server-side GTM แต่ไม่มีใครบอกว่าต้องคิดต้นทุนยังไง ทั้งที่สูตรมีบรรทัดเดียว จำนวนเครื่องที่เปิดค้าง คูณราคาต่อเครื่อง บวกของแถมที่คิดเงินเป็นรายชั่วโมง ลองเอาสูตรนี้ไปคิดกับร้านที่ลงแอดเดือนละ 60,000 บาทดู แล้วจะเห็นว่าคำถามจริงไม่ใช่เซิร์ฟเวอร์ไหนถูกที่สุด แต่คือร้านของคุณต้องมี container หรือเปล่า
ต้นทุนต่อเดือนประกอบด้วยอะไรบ้าง
ก่อนเทียบราคาเจ้าไหนถูกกว่า ต้องแยกก่อนว่าบิลหนึ่งใบมีส่วนผสมอะไร เพราะบางส่วนเป็นค่าคงที่ที่จ่ายแม้ไม่มีใครเข้าเว็บเลย:
- ค่าอินสแตนซ์ที่เปิดค้าง จำนวนเครื่องขั้นต่ำคูณราคาต่อเครื่องต่อเดือน ส่วนนี้ใหญ่ที่สุดและไม่ลดตามทราฟฟิก
- ค่าคำขอและทราฟฟิกขาออก ผันตามจำนวนเหตุการณ์ที่ส่งเข้ามา ส่วนนี้เล็กในร้านขนาดเล็กถึงกลาง
- ค่า load balancer และโดเมนย่อย ถ้าใช้โดเมนของตัวเองต้องมีตัวกระจายคำขอ ซึ่งมักคิดเงินเป็นรายชั่วโมงแม้ไม่มีทราฟฟิก
- ค่า logging เปิดดีบักค้างไว้แล้วลืมปิด คือบิลที่โตเงียบที่สุด
- ค่าคนดูแล เวลาของคนที่ต้องอัปเดต image ตรวจสุขภาพ และตื่นมาแก้เมื่อคำขอล้ม คิดเป็นชั่วโมงต่อเดือนคูณค่าแรง ซึ่งมักไม่ถูกนับทั้งที่แพงกว่าค่าเซิร์ฟเวอร์
ร้านงบแอด 60,000 บาทต่อเดือน จ่ายค่า container เท่าไหร่ถึงคุ้ม
ตัวเลขทั้งหมดในหัวข้อนี้เป็นตัวเลขสมมติเพื่อให้เห็นโครงสร้าง ไม่ใช่ราคาของ Google หรือผู้ให้บริการรายใด ให้แทนด้วยผลจาก Pricing Calculator ของคุณเองก่อนตัดสินใจ สมมติอินสแตนซ์ละ 1,400 บาทต่อเดือน ตั้งสามตัวตามที่เอกสารแนะนำสำหรับ production รวม 4,200 บาท บวก load balancer และโดเมน 700 บาท บวก logging 300 บาท รวม 5,200 บาทต่อเดือน
ตัวเลข 5,200 บาทเท่ากับราว 9 เปอร์เซ็นต์ของงบแอด 60,000 บาท นั่นคือถ้ากำไรขั้นต้นต่อออเดอร์ 750 บาท ต้องมีออเดอร์ที่เพิ่มขึ้นจริงจากการวัดผลที่ดีขึ้นอย่างน้อยราว 7 ออเดอร์ต่อเดือน เพื่อให้ค่า container คืนทุน ยังไม่นับค่าแรงคนดูแล
เทียบที่วางสี่แบบ
ผมเรียงจากควบคุมมากที่สุดไปน้อยที่สุด ราคาจริงของผู้ให้บริการเปลี่ยนบ่อย ให้ถือคอลัมน์ตารางเป็นรายการที่ต้องถามมากกว่าคำตอบสำเร็จรูป
| ทางเลือก | คิดเงินยังไง | ต้นทุนแฝง | ใครดูแล | เหมาะกับ |
|---|---|---|---|---|
| Google Cloud Run ตั้งเอง | ตามเวลาและทรัพยากรที่ใช้ บวกค่าอินสแตนซ์ขั้นต่ำที่ตั้งไว้ | load balancer, logging, ค่าเงินดอลลาร์ | คุณหรือเอเจนซี่ | ทีมที่มีคนเข้าใจ Google Cloud |
| ผู้ให้บริการโฮสต์ sGTM (เช่น Stape) | แพ็กเกจรายเดือนตามโควตาคำขอ | ค่าส่วนเกินหรือบังคับขยับแพ็กเกจเมื่อเกินโควตา | ผู้ให้บริการ | ร้านที่ไม่อยากดูแลเซิร์ฟเวอร์ |
| VPS พร้อม Docker | ค่าเช่าเครื่องคงที่รายเดือน | คนอัปเดตและเฝ้า ไม่มีการขยายอัตโนมัติ | คุณ | ทีมที่ถนัดระบบและต้องการเพดานค่าใช้จ่ายแน่นอน |
| ไม่มี container ส่งยอดจาก webhook ตรง | ค่าฟังก์ชันที่เรียกตามจำนวนยอดขาย | ไม่มีส่วนวัดฝั่งเว็บ | คุณหรือผู้ให้บริการ attribution | ร้านที่ปิดการขายในแชทเป็นหลัก |
ห้าจุดที่บิลพุ่งโดยไม่มีใครเตือน
- ตั้ง max instance สูงเกินจำเป็น ตอนบอทหรือ crawler ยิงเข้าปลายทางวัดผล ระบบขยายเครื่องตามไปด้วย และคุณจ่ายให้ทราฟฟิกที่ไม่ใช่คน
- โปรหนัก ๆ เช่น 12.12 ทราฟฟิกกระโดดหลายเท่าในไม่กี่ชั่วโมง ถ้าไม่มีเพดานเครื่องและแจ้งเตือนงบ ใบแจ้งหนี้เดือนนั้นจะต่างจากเดือนอื่นอย่างเห็นได้ชัด
- ตั้งหลายสภาพแวดล้อม dev, staging, production อย่างละชุด คูณจำนวนเครื่องขั้นต่ำเข้าไปทั้งสามชุด บางร้านจ่ายค่า staging แพงกว่าค่าที่ใช้จริงเสียอีก
- Logging ที่เปิดดีบักไว้ ทุกคำขอถูกเขียนลงบันทึกทั้งตัว ตั้งการเก็บรักษาให้สั้นและปิดเมื่อดีบักเสร็จ
- ค่าเงิน บริการคิดเป็นดอลลาร์ งบแอดของคุณเป็นบาท ถ้ามีงบสำรองต้องคิดค่าเงินไว้ด้วย ดูความเสี่ยงเมื่อค่าเงินผันผวนกับงบแอด
เมื่อคุณไม่ต้องมี container เลย
ผมพบบ่อยว่าเหตุผลที่ร้านอยากได้ Server-side GTM คือ ‘อยากส่งยอดขายกลับ Meta กับ Google ให้ได้’ ถ้านั่นคือเหตุผลเดียว คุณไม่ต้องมี container ยอดขายในแชทเกิดนอกเบราว์เซอร์อยู่แล้ว ระบบหลังบ้านที่รู้ว่าออเดอร์ไหนปิดสามารถเรียก Conversions API ของ Meta และ API ของ Google ตรง ๆ ได้ โดยไม่ต้องผ่านเซิร์ฟเวอร์ GTM ที่เปิดค้างทั้งเดือน ค่าใช้จ่ายผันตามจำนวนออเดอร์ที่ปิดจริง
container คุ้มเมื่อคุณต้องการส่งเหตุการณ์ฝั่งเว็บแบบไม่ผ่านเบราว์เซอร์ด้วย เช่น กู้คำขอที่ถูกบล็อก หรือคุมข้อมูลก่อนส่งต่อ ถ้ายังไม่แน่ใจว่าร้านคุณอยู่กลุ่มไหน อ่านเปรียบเทียบในserver-side tracking กับ pixel และดูพื้นฐาน Conversions API สำหรับแชท ก่อนจ่ายเงินให้เครื่องที่ยังไม่มีงานให้ทำ
ขั้นตอนตัดสินใจก่อนเปิดเครื่อง
- เขียนเหตุผลที่ต้องมี container ลงกระดาษหนึ่งบรรทัด ถ้าบรรทัดนั้นคือ ‘ส่งยอดจากแชทกลับแพลตฟอร์ม’ ให้ไปดูทางเลือกสุดท้ายในตารางก่อน
- ประมาณจำนวนเหตุการณ์ต่อเดือนจากข้อมูลจริงใน GA4 แล้วถามผู้ให้บริการโฮสต์ว่าตกอยู่ในแพ็กเกจไหน จะได้รู้ล่วงหน้าว่าโตอีกเท่าไหร่จึงต้องขยับ
- ตั้งการแจ้งเตือนงบ (budget alert) และเพดานจำนวนเครื่องตั้งแต่วันแรก ไม่ใช่หลังเจอบิลสูง
- ลบสภาพแวดล้อมที่ไม่ใช้ และกำหนดวันทบทวนทุกไตรมาสว่า container ยังทำงานที่คุ้มกับค่าใช้จ่ายอยู่หรือไม่ ดูบริบทเรื่องการสร้างระบบเก็บข้อมูลของตัวเองก่อนคุกกี้หมดอายุ ประกอบการตัดสินใจ
สรุป
สิ่งที่ต้องตัดสินใจคือจ่ายค่าเครื่องที่เปิดค้างเพื่ออะไร ถ้าตอบได้แค่ว่า ‘คนอื่นก็ใช้’ ให้หยุดก่อน ถ้าตอบได้ว่าเพื่อกู้คำขอเว็บที่ถูกบล็อกและต้องการคุมข้อมูลก่อนส่งต่อ ให้เทียบสี่ทางเลือกด้วยสูตรต้นทุนข้างบนแล้วตั้งเพดานจ่ายก่อนเปิดใช้งาน
สำหรับร้านที่ปิดการขายในแชท ทางที่ถูกที่สุดคือส่งยอดขายจริงจากหลังบ้านโดยตรง แล้วค่อยเพิ่ม container เมื่อมีงานฝั่งเว็บที่เหตุผลชัดเจนรองรับ
- ต้นทุนหลักคือเครื่องที่เปิดค้างตามขั้นต่ำ ไม่ใช่จำนวนคำขอ
- ใช้สูตรอินสแตนซ์ + load balancer + logging + ค่าแรง แล้วใส่ตัวเลขจริงของคุณ
- ตั้งเพดานเครื่องและ budget alert ตั้งแต่วันแรก
- ถ้าต้องการแค่ส่งยอดจากแชท ส่งจาก webhook ตรง ไม่ต้องมี container
คำถามที่พบบ่อย
ร้านเล็กทราฟฟิกหลักร้อยต่อวันควรใช้ผู้ให้บริการโฮสต์หรือตั้งเองบน Google Cloud
ส่วนใหญ่ผู้ให้บริการโฮสต์คิดแพ็กเกจตามโควตาคำขอ ซึ่งสอดคล้องกับทราฟฟิกน้อยกว่าการเช่าเครื่องขั้นต่ำหลายตัวบน Google Cloud แต่ต้องเทียบราคาล่าสุดของทั้งสองฝั่งก่อน เพราะโครงสร้างราคาเปลี่ยนได้
ลดจำนวนอินสแตนซ์ขั้นต่ำเหลือหนึ่งตัวเพื่อประหยัดได้ไหม
ทำได้ แต่เครื่องตัวเดียวคือจุดล้มเดี่ยว ถ้าล่มระหว่างแคมเปญ ข้อมูลช่วงนั้นหายและแพลตฟอร์มไม่ได้รับสัญญาณ ควรลดเฉพาะสภาพแวดล้อมทดสอบ ส่วน production ให้ตามที่เอกสารของ Google แนะนำ
เปลี่ยนที่โฮสต์ภายหลังยากไหม
ถ้าใช้โดเมนย่อยของตัวเอง การย้ายคือเปลี่ยนปลายทางของระเบียน DNS และ import container configuration เดิม จึงไม่ยากนัก ข้อควรระวังคือช่วงที่ DNS ยังไม่กระจาย ควรย้ายนอกช่วงโปรสำคัญ
ใช้ container ร่วมกันหลายเว็บหรือหลายลูกค้าได้ไหมเพื่อหารต้นทุน
ทางเทคนิคทำได้ แต่เอเจนซี่ควรคิดเรื่องการแยกข้อมูลของลูกค้าแต่ละราย การตั้งค่า และสัญญา PDPA ให้ชัดก่อน เพราะข้อมูลของหลายธุรกิจผ่านเซิร์ฟเวอร์เดียวกัน
ค่า container นับเป็นต้นทุนแอดหรือต้นทุนระบบ
ควรแยกเป็นบรรทัด martech ของตัวเองในรายงาน เพราะถ้าหารเข้าค่าแอดโดยไม่บอก ROAS จะดูแย่ลงโดยไม่มีใครรู้ที่มา และถ้าไม่นับเลย ต้นทุนต่อยอดขายจะดูดีเกินจริง
อ่านต่อแบบเจาะลึก
ส่ง Purchase จริงกลับให้แอด ไม่ใช่แค่ Click
รู้ว่าลูกค้าที่ทัก LINE จากโฆษณากลายเป็นออเดอร์จริงกี่คน และมาจากแคมเปญไหน แล้วส่งยอดขายกลับให้ระบบโฆษณาเรียนรู้ เริ่มฟรี 14 วัน
ทดลองใช้ฟรี 14 วัน