TikTok Events API ไม่ขึ้นสักตัวหลังต่อ LINE ต้องเช็กตรงไหนก่อนโทษโค้ด

สรุปสั้น ๆ
server side TikTok Events API LINE คือการส่ง Event จากเซิร์ฟเวอร์ธุรกิจตรงไปยัง TikTok แทนที่จะพึ่ง Pixel บนหน้าเว็บอย่างเดียว ถ้า Event ไม่ขึ้นเลยสักตัว ให้ไล่ตรวจ Access Token, event_time, Event Code ที่ TikTok กำหนดตายตัว และ Identifier อย่าง ttclid ก่อน เพราะสามอย่างนี้คือจุดที่ทำให้ทั้งชุดถูกปฏิเสธตั้งแต่ต้นทาง
ทีมการตลาดของธุรกิจขายคอร์สออนไลน์ยิงแอด TikTok เข้า LINE มาสักพัก มีคนทักเข้ามาทุกวัน แอดมินก็บันทึก Lead ในระบบตามปกติ แต่พอเปิด Events Manager ของ TikTok ขึ้นมาดูกลับไม่เห็น Event ฝั่ง Server เข้ามาเลยสักตัวตั้งแต่วันแรกที่เชื่อมต่อ ทั้งที่ทีมพัฒนายืนยันว่าโค้ดที่ยิง Event ทำงานไม่มี Error ขึ้นเลยในฝั่งของตัวเอง
สถานการณ์แบบนี้ต่างจากกรณีของ Meta ตรงที่ TikTok มักไม่แสดง Event บางส่วนแบบเงียบ ๆ แต่มักปฏิเสธทั้งชุดตั้งแต่ต้นทางถ้ามี Field หรือ Header ที่ไม่ตรงตามที่กำหนด นั่นแปลว่าเมื่อไม่เห็น Event ขึ้นเลยแม้แต่ตัวเดียว ควรสงสัยเรื่องพื้นฐานของการเรียก API ก่อนไปไล่หาปัญหาที่ซับซ้อนอย่าง Deduplication
บทความนี้จะไล่ดูว่า TikTok Events API ต่างจาก Pixel ฝั่งเว็บตรงไหน ต้องส่ง Field และ Identifier อะไรบ้าง แล้วควรไล่ Debug ตามลำดับใดเมื่อ Event ไม่เข้าเลยสักตัวหลังต่อเข้ากับ Flow ของ LINE ถ้ายังไม่คุ้นกับแนวคิดพื้นฐานของการยิง Event จากฝั่งเซิร์ฟเวอร์ ลองอ่าน server side tracking LINE ก่อนเป็นพื้นฐานได้
TikTok Events API ต่างจาก Pixel บนหน้าเว็บตรงไหน
Pixel บนหน้าเว็บของ TikTok ทำงานโดยให้เบราว์เซอร์ของผู้ใช้เป็นคนยิง Event กลับไปยัง TikTok โดยตรง วิธีนี้ติดตั้งง่ายแต่มีจุดอ่อนเดียวกับแพลตฟอร์มอื่น คือถูก Ad Blocker หรือการตั้งค่าความเป็นส่วนตัวของเบราว์เซอร์บล็อกได้ Events API เปลี่ยนให้เซิร์ฟเวอร์ของธุรกิจเป็นคนยิง Event แทน ทำให้ Event ที่เกิดขึ้นหลังจากผู้ใช้ออกจากหน้าเว็บไปแล้ว เช่น การเปลี่ยนสถานะ Lead หลังทักเข้า LINE สามารถส่งกลับไปได้โดยไม่ต้องพึ่งเบราว์เซอร์ของผู้ใช้อีกต่อไป
ข้อแตกต่างสำคัญที่ทีมมักมองข้ามคือ TikTok กำหนด Event Code ของตัวเองที่ตายตัวสำหรับแต่ละประเภทเหตุการณ์ เช่น Event ที่หมายถึงการติดต่อหรือการสมัคร ต้องใช้ชื่อ Event ตามที่ TikTok เอกสารกำหนดไว้เป๊ะ ไม่สามารถตั้งชื่อ Event เองแบบอิสระเหมือนบาง Field ของแพลตฟอร์มอื่น ถ้าใช้ชื่อ Event ที่ไม่อยู่ในรายการที่รองรับ ระบบมักปฏิเสธ Event นั้นตั้งแต่ต้นทาง
Field ที่ต้องมีครบก่อนยิง Event หนึ่งตัว
Event หนึ่งตัวที่ส่งผ่าน Events API ต้องประกอบด้วยชื่อ Event ที่ตรงตามที่ TikTok กำหนด เวลาที่เหตุการณ์เกิดขึ้นจริงในรูปแบบ Unix Timestamp ไม่ใช่เวลาที่ระบบประมวลผล Event นั้น รหัส Event ที่ใช้กันการนับซ้ำ และ Object ที่บรรจุข้อมูลผู้ใช้สำหรับจับคู่ตัวตน ถ้าขาด Field ใดไปแม้แต่ตัวเดียว ระบบมักปฏิเสธทั้ง Request ไม่ใช่แค่ Event นั้นตัวเดียว ซึ่งต่างจากบางแพลตฟอร์มที่ยอมรับ Event บางส่วนแล้วข้ามส่วนที่ผิด
อีกจุดที่ทำให้ Event ทั้งชุดถูกปฏิเสธคือ Access Token หรือ Pixel Code ที่ใช้เรียก API ไม่ตรงกับบัญชีที่เปิด Events API ไว้ โดยเฉพาะเมื่อทีมมีหลายบัญชีโฆษณาและหยิบ Token ผิดตัวมาใช้ในระบบ ซึ่งเป็นสาเหตุอันดับต้น ๆ ของกรณีที่ Event ไม่ขึ้นเลยสักตัวตั้งแต่วันแรกที่เชื่อมต่อ
Identifier ที่ TikTok ใช้จับคู่ Event กับผู้ใช้จริง
เหมือนกับแพลตฟอร์มอื่น TikTok ให้คะแนนคุณภาพการจับคู่จาก Identifier ที่ส่งมา ยิ่งมีหลายตัวที่สอดคล้องกัน โอกาส Match ก็ยิ่งสูงขึ้น แต่ Field และรูปแบบที่ TikTok ต้องการมีรายละเอียดต่างจาก Meta อยู่บ้าง จึงไม่ควรก็อป Field Mapping จากฝั่ง Meta มาใช้ตรง ๆ
| Identifier | ใช้ทำอะไร | ข้อควรระวัง |
|---|---|---|
| ttclid | จับคู่ Event กับคลิกโฆษณา TikTok โดยตรง | ต้องเก็บจาก URL Parameter ก่อนออกจากหน้าเว็บ ไม่งั้นหายถาวร |
| external_id | ผูก Event กับ Lead ID ภายในระบบขาย | ควร Hash ด้วย SHA-256 และต้องตรงกับค่าที่ใช้ฝั่ง Pixel |
| email / phone (Hashed) | เสริมคุณภาพ Match เมื่อ ttclid ไม่มี | ต้อง Normalize รูปแบบก่อน Hash ตามเอกสารล่าสุดของ TikTok |
| ip / user_agent | ยืนยันบริบทของอุปกรณ์ที่เกิด Event | ต้องเป็นค่าจริงของผู้ใช้ปลายทาง ไม่ใช่ของเซิร์ฟเวอร์ธุรกิจ |
ใช้ Test Events Tool ของ TikTok แล้วยังไม่พอตรงไหน
TikTok มีเครื่องมือสำหรับทดสอบ Event คล้ายกับแพลตฟอร์มอื่น ซึ่งช่วยยืนยันว่า Request ที่ส่งไปมีรูปแบบถูกต้องตามโครงสร้างที่กำหนด แต่เครื่องมือนี้ตรวจแค่ความถูกต้องของรูปแบบข้อมูล ไม่ได้บอกว่า Event จะถูกนำไปใช้ Optimize แคมเปญจริงได้หรือไม่ ทีมจึงต้องแยกให้ออกระหว่างคำว่า Event ผ่านการทดสอบ กับ Event ถูกใช้งานจริงในการเพิ่มประสิทธิภาพโฆษณา
ข้อควรระวังคือ Event ที่ทดสอบผ่านเครื่องมือนี้บางกรณีต้องเปิดโหมดทดสอบเฉพาะ ถ้าลืมปิดโหมดทดสอบก่อนปล่อยขึ้นใช้งานจริง Event ที่ส่งเข้ามาในภายหลังอาจยังถูกจัดเป็น Event ทดสอบต่อไปโดยไม่รู้ตัว ทำให้ตัวเลขในรายงานจริงดูน้อยกว่าที่ควรเป็นมาก
กัน Event ซ้ำระหว่าง Pixel กับ Events API ด้วย Event ID
เมื่อธุรกิจใช้ทั้ง Pixel บนหน้าเว็บและ Events API จากฝั่งเซิร์ฟเวอร์พร้อมกันสำหรับ Event เดียวกัน เช่น การกดปุ่มไป LINE ที่ยิงจากทั้งสองฝั่ง ต้องใช้รหัส Event เดียวกันในทั้งสองทางเพื่อให้ TikTok รู้ว่าเป็นเหตุการณ์เดียวกันและนับครั้งเดียว ถ้ารหัส Event ของสองฝั่งไม่ตรงกัน ระบบจะนับเป็นสอง Event แยกกัน ทำให้ตัวเลข Conversion สูงเกินจริงและทำให้การวิเคราะห์ผิดเพี้ยนไป
ควรออกแบบให้รหัส Event นี้ถูกสร้างจากจุดเดียวตั้งแต่ต้นทาง เช่น สร้างตอนผู้ใช้กดปุ่มบนหน้าเว็บ แล้วส่งรหัสเดียวกันนี้ติดไปกับข้อมูลที่ผูกกับ Lead ในระบบขาย เพื่อให้ฝั่ง Server เรียกใช้รหัสเดิมได้เมื่อต้องส่ง Event ตามหลังในภายหลัง ไม่ใช่สร้างรหัสใหม่ทุกครั้งที่มีการยิง Event
ลำดับ Debug เมื่อ Event ไม่ขึ้นเลยสักตัวหลังต่อระบบ
เมื่อเจอสถานการณ์ที่ไม่เห็น Event ขึ้นเลยแม้แต่ตัวเดียว ควรไล่ตรวจตามลำดับนี้แทนที่จะรื้อระบบทั้งหมดทันที เพราะส่วนใหญ่สาเหตุอยู่ที่จุดพื้นฐานไม่กี่จุด
- ตรวจว่า Access Token และ Pixel Code ที่ใช้เรียก API ตรงกับบัญชีโฆษณาที่เปิด Events API ไว้จริงหรือไม่
- ตรวจว่าชื่อ Event ที่ส่งไปตรงกับรายการ Event ที่ TikTok รองรับตามเอกสารล่าสุดหรือไม่ ไม่ใช่ชื่อที่ทีมตั้งขึ้นเอง
- ตรวจว่า event_time เป็น Unix Timestamp ที่ถูกต้อง ไม่ใช่รูปแบบวันที่แบบอื่นที่ระบบตีความผิด
- ตรวจว่าโหมดทดสอบถูกปิดแล้วสำหรับ Traffic จริง และไม่มี Test Event Code หลงเหลืออยู่ในโค้ด Production
- ถ้ายังไม่พบสาเหตุ ให้ลองยิง Event ตัวอย่างที่มี Field ครบที่สุดเท่าที่ทำได้ผ่าน Test Events Tool ก่อน แล้วค่อยเทียบกับ Event ที่ระบบจริงยิงออกไป เพื่อหาว่า Field ไหนขาดหายไป
ข้อผิดพลาดที่พบบ่อยเวลาต่อ TikTok Events API เข้ากับ Flow LINE
สมมติทีมหนึ่งเก็บข้อมูลตัวอย่าง (ข้อมูลสมมติ) จากการไล่ Debug 20 เคสที่ Event ไม่ขึ้น พบว่าสาเหตุกระจุกอยู่ไม่กี่รูปแบบตามตารางนี้ ซึ่งช่วยให้เห็นว่าควรเริ่มตรวจจากจุดไหนก่อนตามความถี่ที่เจอจริง
| สาเหตุ (ตัวอย่างสมมติ) | สัดส่วนที่เจอ | วิธีแก้ |
|---|---|---|
| Access Token ผิดบัญชี | ราว 8 ใน 20 เคส | ตรวจว่า Token ผูกกับบัญชีที่เปิด Events API เดียวกับที่ดู Events Manager |
| ชื่อ Event ไม่อยู่ในรายการที่รองรับ | ราว 6 ใน 20 เคส | เทียบชื่อ Event กับเอกสารล่าสุด ไม่ตั้งชื่อเอง |
| event_time ผิดรูปแบบ | ราว 4 ใน 20 เคส | แปลงเป็น Unix Timestamp ก่อนส่งทุกครั้ง |
| ลืมปิดโหมดทดสอบ | ราว 2 ใน 20 เคส | ตรวจ Flag ทดสอบก่อน Deploy ขึ้น Production ทุกครั้ง |
ควรส่ง Value และ Currency ไปกับ Event ไหน ไม่ใช่ทุก Event
Field Value และ Currency ช่วยให้ TikTok คำนวณ ROAS ในรายงานได้ แต่ไม่ใช่ Event ทุกตัวควรแนบมูลค่าไปด้วย เพราะ Event ต้นน้ำอย่างการกดปุ่มไป LINE หรือการเพิ่มเพื่อนยังไม่มีมูลค่าที่แท้จริงเกิดขึ้น การใส่ตัวเลขประมาณการเข้าไปเองโดยไม่มีที่มา อาจทำให้รายงาน ROAS ที่ทีมดูภายหลังบิดเบือนจากความเป็นจริง
แนวทางที่ปลอดภัยกว่าคือแนบ Value เฉพาะ Event ที่มีมูลค่าจริงรองรับ เช่น Order ที่ปิดการขายแล้วในระบบขาย โดยดึงยอดจากข้อมูลเดียวกับที่ใช้บันทึก first party data LINE conversion ไม่ใช่ตัวเลขที่ทีมการตลาดประมาณเอง ส่วน Event ที่อยู่ระหว่างทางอย่าง Lead หรือ Qualified Lead ควรส่งแบบไม่มี Value หรือระบุว่าเป็นมูลค่าประมาณการที่แยกจากยอดขายจริงอย่างชัดเจน เพื่อไม่ให้ทีมที่ดูรายงานสับสนว่านี่คือรายได้ที่รับรู้แล้ว
Rate Limit และข้อจำกัดด้านนโยบายที่ต้องรู้ก่อนส่งจำนวนมาก
เมื่อธุรกิจมี Lead จำนวนมากต่อวัน การยิง Event ผ่าน Events API แบบทีละคำขอจำนวนมากในเวลาสั้น ๆ อาจชนกับข้อจำกัดด้านอัตราการเรียกที่ TikTok กำหนดไว้ ควรตรวจเอกสารล่าสุดว่าระบบรองรับการส่งเป็นชุดหรือไม่ และออกแบบคิวการส่งให้กระจายเวลาอย่างเหมาะสม แทนที่จะยิงพร้อมกันทั้งหมดในจังหวะเดียว ปัญหานี้ใกล้เคียงกับสิ่งที่ต้องระวังตอนเชื่อม click ID ที่ขาดหายระหว่างทาง เพราะยิ่งคิวส่งช้าหรือดีเลย์มาก ยิ่งเพิ่มความเสี่ยงที่ Identifier บางตัวจะหมดอายุก่อนถูกใช้งาน
อีกเรื่องที่ต้องระวังคือนโยบายการใช้ข้อมูลของ TikTok เข้มงวดเรื่องประเภทข้อมูลที่ส่งเข้าระบบ โดยเฉพาะข้อมูลที่จัดเป็นข้อมูลอ่อนไหวตามบริบทธุรกิจ เช่น ข้อมูลสุขภาพหรือการเงินที่ละเอียดเกินความจำเป็น ธุรกิจที่ใช้ server side Meta CAPI LINE อยู่แล้วไม่ควรใช้ Field Mapping ชุดเดียวกันมาส่งให้ TikTok โดยไม่ตรวจสอบก่อน เพราะเงื่อนไขและ Field ที่รองรับไม่เหมือนกัน
สรุป
เมื่อ Event ไม่ขึ้นเลยสักตัวหลังต่อ TikTok Events API เข้ากับ Flow ที่ส่ง Event จาก LINE ปัญหามักไม่ได้ซับซ้อนอย่างที่คิด ส่วนใหญ่อยู่ที่ Access Token ผิดบัญชี ชื่อ Event ไม่ตรงตามที่รองรับ หรือรูปแบบเวลาไม่ถูกต้อง ซึ่งเป็นจุดพื้นฐานที่ควรไล่ตรวจก่อนสงสัยเรื่อง Deduplication หรือ Rate Limit
การแยกสภาพแวดล้อมทดสอบออกจาก Traffic จริงอย่างชัดเจน และตรวจ Identifier ให้ครบตามที่ TikTok ต้องการ ช่วยลดเวลาที่ต้องเสียไปกับการไล่ Debug ทีละจุดในภายหลัง
- Event ไม่ขึ้นเลยสักตัวมักมาจาก Access Token ผิดบัญชี หรือชื่อ Event ไม่ตรงตามที่รองรับ
- Field และ Identifier ของ TikTok ไม่เหมือน Meta ห้ามก็อป Mapping ข้ามแพลตฟอร์ม
- รหัส Event ต้องตรงกันระหว่าง Pixel กับ Events API เพื่อกัน Event ซ้ำ
- แยกโหมดทดสอบออกจาก Traffic จริงให้ชัดเจน ก่อนปล่อยขึ้น Production
คำถามที่พบบ่อย
Events API ของ TikTok ต้องใช้คู่กับ Pixel เสมอไปหรือไม่
ไม่จำเป็นเสมอไป แต่ TikTok แนะนำให้ใช้คู่กันเพื่อเพิ่มโอกาสจับคู่ Event ให้ครบ ถ้าใช้คู่กันต้องตั้งรหัส Event ให้ตรงกันทั้งสองฝั่งเพื่อกัน Event ซ้ำ
ทำไม Event ที่ทดสอบผ่านแล้วยังไม่ถูกใช้ Optimize แคมเปญ
มักเกิดจากโหมดทดสอบยังไม่ถูกปิด หรือ Event ที่ส่งเข้าระบบยังแนบค่าที่ใช้เฉพาะตอนทดสอบอยู่ ควรตรวจว่า Traffic จริงไม่มีค่าทดสอบติดไปด้วย
ttclid หายบ่อยเพราะอะไร
ส่วนใหญ่เกิดจากไม่ได้เก็บค่าจาก URL Parameter ไว้ก่อนที่ผู้ใช้จะออกจากหน้าเว็บไปยัง LINE ทำให้เมื่อ Lead ถูกสร้างในภายหลัง ไม่มีค่านี้ให้ผูกกับ Event แล้ว
ใช้ Field Mapping เดียวกับที่ตั้งไว้ให้ Meta ได้ไหม
ไม่ควร เพราะ Field และรูปแบบ Identifier ที่ TikTok ต้องการมีรายละเอียดต่างจาก Meta ควรตรวจเอกสารของ TikTok เองก่อนตั้งค่า ไม่ใช่ก็อป Mapping ข้ามแพลตฟอร์ม
ควรส่ง Event ทุกสถานะของ Lead กลับไปให้ TikTok หรือไม่
ควรพิจารณาจากปริมาณ ความสม่ำเสมอ และความล่าช้าของแต่ละ Event ก่อน ไม่ใช่ส่งทุกสถานะเพราะคิดว่ายิ่งเยอะยิ่งดี Event ที่ปริมาณน้อยหรือดีเลย์มากอาจไม่เหมาะเป็น Event หลักสำหรับ Optimize
linli ช่วยเรื่องการต่อ TikTok Events API ได้แค่ไหน
ขึ้นอยู่กับ Integration และ Credential ที่เปิดใช้งานในแต่ละบัญชี ธุรกิจยังต้องตรวจสอบ Event Mapping และรายการ Event ที่ต้องการส่งกลับให้ตรงกับสิ่งที่ตั้งค่าไว้ในบัญชีโฆษณา TikTok ของตัวเอง
ลองตรวจด้วยตัวเอง
Click-ID Inspector
วางลิงก์โฆษณา TikTok ของคุณ แล้วดูว่า ttclid กับ UTM อยู่ครบก่อนเข้า LINE หรือไม่
เช็กลิงก์ฟรี →ใช้ฟรี ไม่ต้องสมัคร ไม่เก็บข้อมูลที่คุณกรอก
อ่านต่อแบบเจาะลึก
รู้ว่าโฆษณาเข้า LINE ทำยอดขายจริงแค่ไหน
linli ติดตามลูกค้าตั้งแต่คลิกโฆษณา กดเพิ่มเพื่อน ทักแชท จนปิดการขาย พร้อมส่ง Conversion กลับแพลตฟอร์มโฆษณา เริ่มฟรี 14 วัน
ทดลองใช้ฟรี 14 วันบทความที่เกี่ยวข้อง

อัปโหลด Offline Conversion เข้า Google Ads เอง กับให้ระบบส่งอัตโนมัติ ต่างกันตรงไหน

แอดตัวไหนใน LINE ที่ปิดการขายได้จริง ไม่ใช่แค่มีคนทัก
