ทดลองใช้ฟรี 148 คน จ่ายเงินจริง 1 คน
10 พฤศจิกายน 2569 · ThaiPo
มีคน 148 คนเริ่มทดลองใช้ฟรีกับระดับการแปลที่ดีที่สุดของ ThaiPo จ่ายเงินจริงหนึ่งคน
คิดเป็นราว 0.7 เปอร์เซ็นต์ และไม่มีวิธีพูดแบบไหนที่ทำให้มันฟังดูดีขึ้น เราเลยจัดการกับมันแบบ production incident: ติด instrument หา root cause แก้ แล้วกลับมาอ่านข้อมูลอีกรอบ โพสต์นี้คือบันทึกเรื่องนั้น รวมถึงช่วงที่เราเข้าใจผิดไปก่อนด้วย

ก่อนอื่น เช็กก่อนว่าตัวเลขนั้นเป็นตัวเลขจริงไหม
ความตื่นตระหนกมาก่อนเวลาหนึ่งสัปดาห์ ตอนที่หน้า admin โชว์ว่ามี 113 คนอยู่ในช่วงทดลองใช้และแทบไม่มีใครจ่ายเงิน trial ตัวนี้เปิดตัวพร้อม backfill ที่เริ่มนับเวลาของทุกคนพร้อมกัน trial ทุกอันจึงเพิ่งมีอายุหนึ่งหรือสองวัน ยังไม่มีอันไหนไปถึงวันสุดท้ายเลย
conversion rate จึงไม่ได้ต่ำ มันแค่ยังไม่มีอยู่จริง เราไม่แตะราคา แล้วใช้สัปดาห์นั้นเตรียมให้แน่ใจว่า พอผลจริงมาถึง เราจะมองเห็นมัน
ติด instrument ก่อนตั้งทฤษฎี
นโยบายของเราคือ Google Analytics เป็นที่เก็บ event เพียงที่เดียว ไม่มีตาราง events ใน Postgres ไม่มีระบบ tracking ทำเองที่ต้องมานั่งเสียใจทีหลัง แต่นโยบายนี้ใช้ได้ก็ต่อเมื่อ event ไปถึงจริง และของเรามีสามตัวที่ไปไม่ถึง
- ตัว trial เอง Analytics เห็นการเริ่ม trial 2 ครั้ง จากของจริง 113 ครั้ง backfill สร้าง row แต่ไม่ได้ยิง event อะไรเลย
- คนสมัครมาจากไหน ตาราง first-touch attribution ของเรามีศูนย์ row สำหรับการสมัครมากกว่าห้าสิบราย ลิงก์สมัครทำ internal redirect ที่ทำ query string หล่นหาย campaign tag เลยไปไม่ถึงหน้าที่มีหน้าที่บันทึกมัน เราแก้ให้ส่ง tag ต่อผ่าน redirect และแปะ first-party cookie ไว้ระหว่างทาง attribution คือข้อเท็จจริงหนึ่งข้อ เขียนครั้งเดียวตอนสมัคร
- เงิน subscription ที่จ่ายสำเร็จไม่เคยส่ง purchase event จากฝั่ง server มีแต่ browser ที่ส่ง ผู้ซื้อของเราเข้ามาทาง LINE และ in-app browser ของ LINE ทำ tag ฝั่ง client หล่น ยอดขายจริงทุกรายการที่เราเคยได้จึงล่องหนจาก analytics
นิสัยที่ได้ติดตัวมาจากเรื่องนี้: อะไรที่ browser อาจมองไม่เห็น ให้ส่ง event จาก server ในตัวอย่างชุดหนึ่ง analytics ฝั่ง client ยกเครดิตการสมัคร 2 จาก 41 ราย ให้กับช่องทางที่ database ของเราเองบอกว่าเป็นตัวสร้างการสมัครส่วนใหญ่
traffic ไม่ได้มีปัญหา ประตูต่างหากที่ปิดอยู่
ข้อค้นพบจริงข้อแรก: การสมัครรายวันตกลงประมาณสิบเท่าในเวลาไม่ถึงสัปดาห์ (38, 30, 16, 3, 1, 1) ขณะที่ session นิ่งอยู่ที่ 380 ถึง 500 ต่อวัน นี่คือ regression และมันตรงกับจังหวะที่เรา redesign หน้า landing page พอดี
redesign รอบนั้นชี้ปุ่ม sticky บนมือถือไปที่ลิงก์เพิ่มเพื่อนของ LINE การ follow บอทไม่ได้สร้างบัญชีบนเว็บ การสมัครจากมือถือจึงตกจาก 84 เหลือ 7 เราชี้ปุ่มกลับไปที่หน้า login แล้วก็รู้สึกว่าตัวเองฉลาดอยู่ได้ประมาณหนึ่งวัน
จากนั้นเราแยก funnel ตาม source ในเจ็ดวัน: 3,747 session, กดปุ่มสมัคร 1,157 ครั้ง, 254 คนเริ่ม login, สมัครสำเร็จ 99 ราย คนที่มาจาก LINE เปลี่ยนการเริ่ม login 94 ครั้งเป็นการสมัคร 56 ราย ประมาณ 60 เปอร์เซ็นต์ ส่วนคนที่มาจาก Facebook และ Instagram เป็นเจ้าของการกดราว 1,150 จาก 1,157 ครั้งนั้น และได้การสมัครประมาณ 4 ราย หนึ่งในสามของเปอร์เซ็นต์
Facebook กับ Instagram เปิดลิงก์ใน in-app browser ของตัวเอง Google ปฏิเสธ OAuth ใน embedded webview และ cookie ของ OAuth ก็ทำ state หายระหว่างเดินทางไปกลับ ปุ่มสมัครของเราเป็นทางตันสำหรับ traffic กลุ่มนั้นเกือบทั้งหมด ในขณะที่ traffic กำลังสูงที่สุดเท่าที่เคยมีมา
วิธีแก้เล็กนิดเดียว จับ token ใน user agent (FBAN, FBAV, Instagram, Line/ และพวกพ้อง) เพื่อตัดสินว่าผู้เข้าชมอยู่ใน in-app browser หรือเปล่า ถ้าใช่ ปุ่มสมัครทุกปุ่มบน landing page จะกลายเป็น deep link เพิ่มเพื่อนของ LINE ซึ่งส่งต่อไปยังแอป LINE และพาออกจาก webview ไปเลย คนอื่นที่เหลือยังได้หน้า login เหมือนเดิม การอ่าน user agent บน server ทำให้หน้านั้นหลุดจาก static rendering แต่สำหรับหน้าที่โฆษณาชี้มา นี่คือ trade ที่ถูกต้อง
ที่ตลกคือ ปุ่มของ redesign ถูกสำหรับคนที่มาจาก in-app browser และผิดสำหรับ browser ปกติ ส่วนวิธีแก้ของเราก็กลับด้านกันพอดี คำตอบคือต้องมีทั้งคู่ แล้วเลือกให้ผู้เข้าชมทีละคน
เพิ่มบอทแล้วก็ไม่พูดอะไรสักคำ
การส่งคนเข้า LINE จะมีประโยชน์ก็ต่อเมื่อมีอะไรเกิดขึ้นที่นั่น การนับแชทหนึ่งต่อหนึ่งกับบอทรอบก่อนบอกเราไว้แล้วว่าปกติเกิดอะไร: 247 แชท ในนั้น 210 แชทมีการแปลเป็นศูนย์ คิดเป็น 85 เปอร์เซ็นต์ และแชทเงียบเกือบทั้งหมดไม่เคยส่งข้อความเลยสักข้อความ ไม่มีอะไรพัง dead-letter queue ว่างเปล่า คนเพิ่มตัวแปลภาษาเข้ามา แล้วก็ไม่รู้ว่าจะทำอะไรกับมันต่อ
การกวาดดูรอบหลังอีก 1,251 ข้อความจาก 234 แชทหนึ่งต่อหนึ่งทำให้ภาพชัดขึ้นอีก จากประมาณ 114 จังหวะที่เห็นชัดว่าคนกำลังมองหาอะไรบางอย่าง ประมาณ 75 จังหวะเป็นฟีเจอร์ที่มีอยู่แล้ว มีแค่ 7 ที่เป็นของที่เรายังไม่ได้สร้าง root cause เกือบจะเป็นมุกตลก: ข้อความที่พิมพ์ ถึงบอท ถูกแปลแทนที่จะถูกตอบ พิมพ์ "help" แล้วคุณจะได้คำว่า "help" กลับมาเป็นภาษาไทยที่แปลอย่างงดงาม
ตอนนี้พิมพ์ "help" เฉยๆ จึงได้การ์ด help กลับมา และข้อความทักทายมี chip "ดูตัวอย่าง" ให้กดครั้งเดียว งานแรกของ product ที่ให้ใช้ฟรีคือทำให้คนได้ใช้สักครั้ง
สิ่งที่เราทุ่มใส่ trial
- เริ่มจ่ายเงินได้โดยไม่มีกำแพง สามในสี่ของ cohort ทดลองใช้ช่วงแรกเป็น follower ใน LINE ที่ไม่มีบัญชีบนเว็บ จึงจ่ายเงินไม่ได้ถ้าไม่ไปสมัครแยกอีกรอบ ตอนนี้ลิงก์แบบ tokenized จากในแชทพิสูจน์ได้ว่าคุณเป็นใคร สร้างบัญชีให้ตรงนั้น แล้วพาตรงไป checkout
- nudge engine ทิปวันละหนึ่งข้อพร้อมตัวนับถอยหลัง ส่งให้คนที่อยู่ระหว่าง trial ไม่ส่งเข้ากลุ่มเด็ดขาด และไม่ส่งให้คนที่จ่ายเงินอยู่แล้ว
- win-back ที่พังอยู่สามชั้น flag ของมันปิดอยู่ service ที่เป็นคนส่งไม่มี credential สำหรับส่งข้อความ และคงจะ log คำว่า skip อย่างสุภาพไปตลอดกาล แถมไม่มีอะไร schedule มันเลย เราเจอครบทั้งสามข้อก่อน trial แรกจะหมดอายุ
พอถึงวันที่ cohort นี้หมดอายุ มี 85 คนได้รับประกาศเริ่มต้น 116 คนได้ทิปรายวัน และ 84 คนได้ข้อความแจ้งจบ trial พวกเขาได้รับการบอกกล่าว ซ้ำแล้วซ้ำอีก พร้อมช่องทางจ่ายเงินที่ใช้งานได้จริง
trial 148 ราย จ่าย 1 ราย
แล้วมันพังตรงไหนกันแน่
funnel การอัปเกรดในช่วง 35 วัน: 22 คนเปิดดูแพลน 5 คนเลือกแพลน 3 คนเริ่ม checkout 2 คนจ่าย checkout แปลงได้สองในสาม ท่อจ่ายเงินไม่มีปัญหา จุดที่ถล่มอยู่ก่อน checkout ตรงขั้น "ตัดสินใจว่าของนี้คุ้มที่จะจ่าย" และไม่มีปุ่มไหนแก้เรื่องนั้นได้
จาก 148 คน มีแค่ 35 คนที่เป็นผู้ใช้ที่ activate แล้ว 61 คนไม่มีบัญชีเลย 41 คนใช้บอทเฉพาะในกลุ่ม และข้อเสนอในแชททุกอันจำกัดไว้แค่แชทหนึ่งต่อหนึ่ง พวกเขาจึงไม่เคยเห็นสักอัน และสำหรับทุกคน free tier ยังแปลให้ต่อหลัง trial จบ สิ่งที่ระดับเสียเงินเพิ่มให้คือคุณภาพ ซึ่งส่วนมากอยู่ในภาษาที่คนจ่ายอ่านไม่ออก ไม่มีใครรู้สึกว่าเสียของที่ตัวเองมองไม่เห็นมาตั้งแต่แรก
สถานะตามจริงจึงเป็นแบบนี้ funnel ทำงานได้ในเชิงกลไก: คนเข้ามาได้จากทุก browser ใครก็จ่ายเงินได้โดยไม่ชนกำแพง login และเรามองเห็นทุกขั้น พอโฆษณาลดลง การสมัครก็ตกเหลือประมาณห้ารายต่อสัปดาห์ ข้อจำกัดที่รัดจริงคือ traffic กับ fit: ใครเข้ามา และสิ่งที่เราเก็บเงินเป็นสิ่งที่เขารู้สึกได้หรือเปล่า นั่นไม่ใช่ปุ่มที่พัง
สิ่งที่อยากย้อนไปบอกตัวเองให้เร็วกว่านี้
- วัดก่อน redesign เราปล่อย redesign ลงไปใน funnel ที่ตัวเองมองไม่เห็น แล้วใช้เวลาหลายวันกว่าจะรู้ว่าทำครึ่งไหนพัง
- in-app browser คืออีก platform หนึ่งทดสอบการสมัครจากข้างในแอปที่โฆษณาของคุณไปโผล่ ของเราใช้ไม่ได้ในนั้น
- งานแรกของ product ที่ให้ใช้ฟรีคือทำให้คนได้ใช้สักครั้ง ความเงียบ 85 เปอร์เซ็นต์ไม่ใช่ปัญหาเรื่องราคา
- พูดตัวเลขที่ไม่น่าฟังออกมาดังๆ1 ใน 148 เป็นเครื่องมือ debug ที่ดีกว่า "conversion อ่อนไปนิด" เยอะมาก
ThaiPo ออกแบบ สร้าง และดูแลโดยนักพัฒนาคนเดียว Steven Acreman
ลองใช้ในแชทของคุณเอง
ThaiPo อยู่ใน LINE และแปลทุกข้อความให้สองทาง ฟรีตลอดไป เริ่มใช้ฟรี หรือ เพิ่มเพื่อน @thaipo.ai ใน LINE แล้วบอทจะส่งลิงก์สมัครให้ในแชทเลย