← กลับไปหน้าบทความ
แพลตฟอร์มโฆษณา

ทำไมยอดที่เห็นในแคมเปญนับ Conversion ซ้ำสองรอบ

ทีมบรรณาธิการ linli12 ส.ค. 04:51อัปเดต 12 ส.ค. 04:51อ่าน 3 นาที
ทำไมยอดที่เห็นในแคมเปญนับ Conversion ซ้ำสองรอบ
บทความนี้จัดทำเพื่อความรู้ ชื่อธุรกิจ ตัวเลข หรือบทสนทนาที่ไม่มีแหล่งอ้างอิงกำกับเป็นกรณีตัวอย่างเพื่ออธิบายแนวคิด ดูรายละเอียดที่ นโยบายกองบรรณาธิการ

สรุปสั้น ๆ

ยอด Conversion ที่นับซ้ำมักเกิดจากสามจุด คือ Event เดียวกันถูกส่งซ้ำเพราะไม่มี Unique ID, หลายแคมเปญยิงถึงคนกลุ่มเดียวกันแล้วทุกแคมเปญแย่งอ้าง Conversion เดียวกัน และแอดมินบันทึกสถานะซ้ำมือ วิธีแก้คือกำหนด Deduplication Key ที่ชัดเจนตั้งแต่ต้นทาง ไม่ใช่ไปนับรวมยอดทีหลัง

เจ้าของธุรกิจรายหนึ่งเคยส่งภาพหน้าจอมาให้ผมดู แคมเปญ A แจ้งว่าปิดการขายได้ 40 ออเดอร์ แคมเปญ B แจ้งว่าปิดได้ 35 ออเดอร์ รวมกันแล้ว 75 ออเดอร์ แต่พอเอายอดขายจริงในเดือนนั้นมาเทียบ มีแค่ 52 ออเดอร์เท่านั้น คำถามของเขาคือ ระบบพังหรือเปล่า

คำตอบคือระบบไม่ได้พัง แต่มันทำในสิ่งที่ถูกออกแบบมาให้ทำ คือรายงานตามมุมมองของตัวเอง แต่ละแคมเปญไม่รู้ว่าคนที่ปิดการขายคนนี้เคยเห็นแคมเปญอื่นมาก่อนด้วยหรือเปล่า ถ้าไม่มีตัวกลางที่คอยเช็คและกันซ้ำ ยอดที่บวกกันจากหลายแหล่งจึงเกินความจริงเสมอ

บทความนี้จะไล่ให้เห็นว่าการนับซ้ำเกิดจากจุดไหนบ้างใน LINE Ads campaign attribution แล้ววางระบบกันซ้ำยังไงให้ตัวเลขที่เห็นในแต่ละแคมเปญใกล้เคียงความจริงมากที่สุด

อาการที่บอกว่ากำลังนับ Conversion ซ้ำ

สัญญาณที่ชัดที่สุดคือยอดรวม Conversion จากทุกแคมเปญเมื่อบวกกันแล้ว สูงกว่ายอดขายจริงที่บันทึกในระบบหลังบ้านอย่างมีนัยสำคัญ ไม่ใช่คลาดเคลื่อนไม่กี่เปอร์เซ็นต์ แต่บวกกันแล้วเกินจริงเป็นสิบ ๆ เปอร์เซ็นต์ อีกสัญญาณหนึ่งคือ ลูกค้าคนเดียวที่ทักซ้ำหลายครั้งในหลายวัน ถูกนับเป็น Lead ใหม่ทุกครั้งที่ทัก ทั้งที่จริงเป็นคนเดิม กำลังตามงานเดิม

ปัญหานี้อันตรายเพราะไม่ใช่แค่ตัวเลขสวยเกินจริง แต่มันทำให้การตัดสินใจเทงบผิดทาง แคมเปญที่ดูเหมือนได้ผลดีเพราะ Conversion สูง อาจจริง ๆ แล้วแค่ได้อานิสงส์จากแคมเปญอื่นที่ทำงานหนักกว่า แต่ถูกแคมเปญที่ยิงทีหลังแย่งอ้างไปเฉย ๆ

สามสาเหตุหลักที่ทำให้ยอดบวกซ้ำ

จากที่เจอมาหลายเคส สาเหตุการนับซ้ำมักไม่ได้มาจากจุดเดียว แต่เป็นการซ้อนกันของหลายปัจจัยพร้อมกัน:

  • Event ถูกส่งซ้ำโดยไม่มี Unique ID — เช่น ระบบยิง Event ปิดการขายทุกครั้งที่มีการอัปเดตสถานะ Order แม้จะเป็น Order เดิมที่แค่แก้ไขข้อมูลจัดส่ง
  • หลายแคมเปญยิงถึงคนกลุ่มเดียวกัน — เมื่อ Audience ของแคมเปญ A กับ B ทับซ้อนกันมาก คนคนเดียวอาจคลิกทั้งสองแคมเปญในช่วงเวลาใกล้กัน แล้วแต่ละแคมเปญนับว่าตัวเองพาเขามาปิดการขาย
  • แอดมินบันทึกสถานะซ้ำมือ — เช่น พิมพ์ปิดการขายในระบบสองครั้งเพราะลืมว่าเคยกดไปแล้ว หรือใช้สองระบบคู่ขนานที่ไม่เชื่อมกัน
  • ไม่มี Dedup Window ที่ชัดเจน — ถ้าไม่กำหนดกรอบเวลาว่า Event ประเภทเดียวกันจาก Identifier เดียวกันภายในกี่ชั่วโมงให้นับเป็นรายการเดียว ระบบก็จะนับทุกครั้งที่มีการยิง Event เข้ามา

ทำไม Multi-touch กับ Last-click ให้ตัวเลขไม่เท่ากัน

อีกสาเหตุที่ทำให้คนสับสนว่า ‘ทำไมยอดไม่ตรง’ คือโมเดล Attribution ที่ต่างกัน ไม่ใช่การนับซ้ำเสมอไป ถ้าลูกค้าคนหนึ่งคลิกแอด A ก่อน แล้วอีกสามวันคลิกแอด B แล้วค่อยทักปิดการขาย โมเดลแบบ Last-click จะให้เครดิตทั้งหมดกับแอด B ส่วนโมเดลแบบ Multi-touch จะแบ่งเครดิตให้ทั้งสองแอดตามสัดส่วนที่กำหนด

ความต่างของโมเดลนี้ไม่ใช่ความผิดพลาด แต่เป็นมุมมองที่เลือกใช้ ปัญหาจะเกิดเมื่อแต่ละแพลตฟอร์มโฆษณารายงานแบบ Last-click ของตัวเอง โดยไม่รู้ว่ามีแพลตฟอร์มอื่นเกี่ยวข้องด้วย ทำให้เมื่อเอารายงานจากทุกแพลตฟอร์มมาบวกกัน เครดิตของ Conversion เดียวถูกนับซ้ำในหลายที่พร้อมกัน

โมเดล Attributionวิธีให้เครดิตความเสี่ยงเมื่อบวกข้ามแพลตฟอร์ม
Last-click (ต่อแพลตฟอร์ม)แพลตฟอร์มสุดท้ายที่คลิกก่อนปิดการขายได้เครดิตเต็มสูง เพราะแต่ละแพลตฟอร์มไม่รู้จักกัน มักอ้าง Conversion เดียวกันซ้ำ
First-clickแพลตฟอร์มแรกที่คลิกได้เครดิตเต็มปานกลาง มักประเมินค่าแคมเปญปลายทางต่ำเกินจริง
Multi-touch แบบแบ่งสัดส่วนแบ่งเครดิตตามจุดสัมผัสทั้งหมดในเส้นทางต่ำกว่า แต่ต้องมีระบบกลางที่เห็นทุกจุดสัมผัส

วางระบบกันซ้ำด้วย Deduplication Key

ทางแก้ที่ตรงจุดที่สุดคือกำหนด Deduplication Key ตั้งแต่ต้นทาง แทนที่จะปล่อยให้แต่ละระบบนับอิสระแล้วมาหักลบทีหลัง หลักการคือทุก Event ที่มีความหมายเดียวกันต้องมี Identifier ที่ไม่ซ้ำกัน เช่น รหัส Order เดียวกันต้องไม่ถูกยิง Event ปิดการขายซ้ำสองครั้ง แม้จะมีการอัปเดตสถานะย่อยหลังจากนั้นก็ตาม

  1. กำหนด Unique ID ให้กับทุก Lead และทุก Order ตั้งแต่จุดแรกที่เกิดขึ้นในระบบ ไม่ใช่สร้างใหม่ทุกครั้งที่มีการอัปเดต
  2. ตั้งกฎว่า Event ประเภทปิดการขายจะยิงได้แค่ครั้งเดียวต่อ Order ID เดียว หากมีการแก้ไขสถานะภายหลัง ให้ใช้ Event ประเภทอื่นแยกต่างหาก ไม่ใช้ Event เดิมซ้ำ
  3. กำหนด Dedup Window เช่น ถ้า Identifier เดียวกันส่ง Event ประเภทเดียวกันเข้ามาซ้ำภายใน 24 ชั่วโมง ให้นับเป็นรายการเดียว
  4. ให้ระบบกลางเป็นคนตัดสินว่า Conversion นี้ควรให้เครดิตแคมเปญไหน แทนที่จะให้แต่ละแพลตฟอร์มโฆษณาตัดสินใจเอง แล้วค่อยส่งต่อไปยังแต่ละแพลตฟอร์มตามการเชื่อมต่อแบบ Server-to-serverที่กำหนดไว้

ฝั่งแอดมิน/Sales ต้องปรับกระบวนการอะไรบ้าง

ต่อให้ระบบเทคนิคออกแบบดีแค่ไหน ถ้าฝั่งคนที่บันทึกข้อมูลยังทำงานแบบเดิม ปัญหาก็ยังเกิดซ้ำได้ สิ่งที่ควรปรับคือ ให้แอดมินมีจุดเดียวในการบันทึกสถานะปิดการขาย ไม่ใช่บันทึกทั้งในตารางส่วนตัวและในระบบกลางพร้อมกัน เพราะจะทำให้มีสองแหล่งข้อมูลที่ไม่ตรงกัน และเมื่อมีการดึงข้อมูลไปใช้ อาจหยิบมาจากทั้งสองแหล่งโดยไม่รู้ตัว

อีกจุดที่ควรทำคือฝึกให้แอดมินรู้จักเช็คก่อนว่าลูกค้าที่ทักเข้ามาใหม่เป็นคนเดิมที่เคยคุยไว้หรือเปล่า โดยเฉพาะร้านที่มีแอดมินหลายคนหมุนเวรกัน เพราะถ้าไม่เช็ค อาจเปิด Lead ใหม่ซ้ำให้คนเดิมโดยไม่รู้ตัว ทำให้ Lead Count บวมเกินจริงตั้งแต่ต้นทาง ก่อนที่จะไปถึงขั้น Conversion ด้วยซ้ำ

เมื่อมีหลายบัญชีโฆษณายิงถึงกลุ่มเป้าหมายเดียวกัน

ธุรกิจที่มีหลายทีมหรือหลายเอเจนซี่ดูแลแอดพร้อมกัน มักเจอปัญหานี้หนักกว่าใคร เพราะแต่ละบัญชีโฆษณาต่างคนต่างยิง Audience ที่ทับซ้อนกันโดยไม่รู้ตัว วิธีลดปัญหานี้คือให้ทุกบัญชีส่ง UTM หรือ Campaign ID ที่แยกจากกันชัดเจนเข้าสู่ระบบกลางเดียว เพื่อให้เห็นภาพรวมว่าจริง ๆ แล้ว Lead แต่ละคนมาจากบัญชีไหนก่อน ไม่ใช่ปล่อยให้แต่ละบัญชีรายงานแยกกันแล้วไม่มีใครเห็นภาพรวม

ตัวอย่างสมมติ: ไล่ดูว่ายอด 75 ออเดอร์ที่นับได้จริง ๆ คือ 52 ยังไงมาจากไหน

ลองสมมติต่อจากเคสต้นเรื่อง แคมเปญ A รายงานปิดการขาย 40 ออเดอร์ แคมเปญ B รายงาน 35 ออเดอร์ เมื่อไล่ตรวจทีละรายการโดยเทียบ Order ID กับ Click ID ต้นทาง พบว่ามี 18 ออเดอร์ที่ลูกค้าคลิกทั้งแคมเปญ A และ B ในช่วงเวลาใกล้กัน ก่อนจะทักปิดการขาย ทั้งสองแคมเปญจึงต่างรายงานว่าตัวเองพาเขามาปิด ทำให้ 18 ออเดอร์นี้ถูกนับซ้ำเป็น 36 รายการในรายงานรวม

นอกจากนี้ยังพบอีก 5 ออเดอร์ที่แอดมินบันทึกสถานะปิดการขายซ้ำสองครั้งในระบบ เพราะมีการแก้ไขที่อยู่จัดส่งภายหลัง ซึ่งไปกระตุ้น Event ปิดการขายให้ยิงซ้ำโดยไม่ตั้งใจ เมื่อหักรายการซ้ำทั้งสองประเภทออกจากยอดรวม 75 รายการ ตัวเลขที่เหลือจะใกล้เคียงกับยอดขายจริง 52 ออเดอร์ทันที ซึ่งสะท้อนว่าปัญหาไม่ได้อยู่ที่ระบบนับผิด แต่อยู่ที่ไม่มีการกันซ้ำตั้งแต่ต้นทางตามที่อธิบายไปข้างต้น

กรณีแบบนี้ยังชี้ให้เห็นอีกจุดหนึ่งด้วยคือ การให้เครดิตทั้งหมดกับแคมเปญ B ในฐานะ Last-click ก็ไม่ใช่คำตอบที่สมบูรณ์เสมอไป เพราะแคมเปญ A อาจเป็นตัวที่ทำให้ลูกค้าเริ่มสนใจตั้งแต่แรก การมีข้อมูลระดับนี้ช่วยให้ทีมตัดสินใจได้ว่าจะให้น้ำหนักงบประมาณกับแคมเปญไหนต่อ แทนที่จะตัดงบแคมเปญ A ทิ้งเพียงเพราะดูเหมือนไม่มี Conversion เข้ามาโดยตรง

บทเรียนจากเคสนี้คือ ก่อนจะสรุปว่าแคมเปญไหนทำผลงานดีหรือแย่ ควรไล่ตรวจรายการจริงอย่างน้อยสักหนึ่งรอบ แทนที่จะเชื่อยอดรวมที่แต่ละแพลตฟอร์มรายงานมาเฉย ๆ เพราะความเสียหายที่แท้จริงไม่ได้อยู่ที่ตัวเลขผิด แต่อยู่ที่การเทงบเพิ่มให้แคมเปญที่ดูเหมือนได้ผลดีทั้งที่จริง ๆ แล้วกำลังกินเครดิตจากแคมเปญอื่นอยู่

รูทีนตรวจสอบที่ควรทำเป็นประจำทุกเดือน

การกันซ้ำไม่ใช่สิ่งที่ตั้งค่าครั้งเดียวแล้วจบ ควรมีรูทีนตรวจสอบสม่ำเสมอ เพราะแคมเปญใหม่ที่เพิ่มเข้ามาหรือ Integration ที่เปลี่ยนแปลง อาจทำให้ Dedup Key เดิมใช้ไม่ได้ผลอีกต่อไป

  • เทียบยอด Conversion รวมจากทุกแคมเปญกับยอดขายจริงในระบบหลังบ้านทุกเดือน ถ้าห่างกันเกิน 10-15% ควรตรวจหาสาเหตุทันที
  • สุ่มตรวจ Order 10-20 รายการว่าถูกนับเป็น Conversion กี่ครั้งในระบบ ควรเป็นครั้งเดียวเสมอ
  • ตรวจว่าแคมเปญใหม่ที่เพิ่งเปิดมี Campaign ID ซ้ำกับแคมเปญเก่าที่ปิดไปแล้วหรือไม่ เพราะบางแพลตฟอร์มนำ ID เก่ากลับมาใช้ใหม่ได้

สรุป

ยอด Conversion ที่นับซ้ำในหลายแคมเปญไม่ใช่เรื่องของระบบพัง แต่เป็นผลจากการไม่มีจุดกลางที่คอยกันซ้ำและตัดสินใจให้เครดิตอย่างมีหลักการ ยิ่งมีหลายแคมเปญ หลายบัญชี หลายแอดมิน ยิ่งต้องมีวินัยเรื่อง Identifier และ Dedup Key ตั้งแต่ต้นทาง

สิ่งที่ควรทำต่อไปคือกลับไปดูว่าตอนนี้มี Unique ID ผูกกับ Lead และ Order ทุกตัวหรือยัง แล้วตั้งรูทีนเทียบยอดกับความจริงทุกเดือน เพื่อจับสัญญาณการนับซ้ำได้ตั้งแต่เนิ่น ๆ ก่อนที่มันจะพาไปสู่การตัดสินใจเทงบผิดทาง

  • ยอดบวกซ้ำมักมาจาก Event ไม่มี Unique ID, Audience ทับซ้อนข้ามแคมเปญ หรือแอดมินบันทึกซ้ำมือ
  • Last-click ต่อแพลตฟอร์มมีความเสี่ยงนับซ้ำสูงสุดเมื่อบวกข้ามแพลตฟอร์มกัน
  • แก้ด้วย Deduplication Key ที่ต้นทาง แล้วตรวจเทียบยอดกับความจริงเป็นประจำทุกเดือน

คำถามที่พบบ่อย

ยอด Conversion ในแต่ละแคมเปญไม่ตรงกับยอดขายจริง ปกติไหม

คลาดเคลื่อนเล็กน้อยจากช่วงเวลาบันทึกข้อมูลถือว่าปกติ แต่ถ้าคลาดเคลื่อนมากเป็นสิบเปอร์เซ็นต์ขึ้นไปทุกเดือน ควรตรวจว่ามีการนับซ้ำหรือ Attribution Model ที่ทำให้หลายแคมเปญอ้าง Conversion เดียวกันพร้อมกัน

ควรใช้ Last-click หรือ Multi-touch สำหรับ LINE Ads

ขึ้นกับความซับซ้อนของเส้นทางลูกค้า ถ้าธุรกิจส่วนใหญ่ปิดการขายจากแคมเปญเดียวไม่กี่วัน Last-click ก็เพียงพอและเข้าใจง่าย แต่ถ้าลูกค้าเจอหลายแคมเปญก่อนตัดสินใจ ควรพิจารณา Multi-touch เพื่อไม่ให้ประเมินค่าแคมเปญต้นทางต่ำเกินจริง

Dedup Window ควรตั้งไว้กี่ชั่วโมง

ไม่มีค่าตายตัว ขึ้นกับพฤติกรรมการอัปเดตสถานะของทีม ถ้าทีมอัปเดตสถานะเดิมบ่อยในวันเดียวกัน 24 ชั่วโมงมักเพียงพอ แต่ธุรกิจที่มี Sales Cycle ยาวอาจต้องขยายกรอบเวลาให้เหมาะกับรอบการทำงานจริง

ถ้าใช้หลายเอเจนซี่ดูแลแอดพร้อมกัน จะกันซ้ำยังไง

ควรให้ทุกเอเจนซี่ใช้ระบบติดตามกลางเดียวกันและตั้ง Campaign ID ที่แยกกันชัดเจน แล้วดูภาพรวมที่จุดเดียว แทนที่จะให้แต่ละเอเจนซี่รายงานแยกกันโดยไม่มีจุดกลางที่เห็นความทับซ้อนของ Audience

แอดมินหลายคนหมุนเวรกัน เสี่ยงบันทึกซ้ำมากแค่ไหน

เสี่ยงพอสมควรถ้าไม่มีระบบเช็คว่าลูกค้าคนนี้เคยมีประวัติแล้วหรือยัง ทางที่ดีคือให้ระบบค้นหาประวัติจาก LINE User ID อัตโนมัติก่อนเปิด Lead ใหม่ทุกครั้ง เพื่อลดการเปิดซ้ำโดยไม่ตั้งใจ

ตรวจแล้วเจอว่านับซ้ำจริง ควรแก้ย้อนหลังหรือแก้แค่ไปข้างหน้า

ควรแก้กระบวนการไปข้างหน้าเป็นหลักเพื่อไม่ให้ปัญหาสะสมต่อ ส่วนข้อมูลย้อนหลังถ้าจะแก้ ต้องระบุให้ชัดว่าปรับข้อมูลช่วงไหนด้วยเหตุผลอะไร เพื่อให้การเปรียบเทียบผลลัพธ์ก่อนหลังยังมีความหมาย ไม่ใช่แก้เงียบ ๆ แล้วเทียบตัวเลขข้ามช่วงที่นิยามต่างกัน

ลองตรวจด้วยตัวเอง

ตรวจ Tracking โฆษณาเข้า LINE

ใส่ URL หน้า Landing ของคุณ แล้วดูว่าเส้นทาง Ads → LINE ของคุณวัดผลได้จริงหรือขาดตรงไหน

ตรวจ Tracking ฟรี

ใช้ฟรี ไม่ต้องสมัคร ไม่เก็บข้อมูลที่คุณกรอก

รู้ว่าโฆษณาเข้า LINE ทำยอดขายจริงแค่ไหน

linli ติดตามลูกค้าตั้งแต่คลิกโฆษณา กดเพิ่มเพื่อน ทักแชท จนปิดการขาย พร้อมส่ง Conversion กลับแพลตฟอร์มโฆษณา เริ่มฟรี 14 วัน

ทดลองใช้ฟรี 14 วัน

บทความที่เกี่ยวข้อง

ยิงแอดหลายแคมเปญพร้อมกัน จะรู้ได้ยังไงว่า Lead แต่ละคนมาจากไหน

ยิงแอดหลายแคมเปญพร้อมกัน จะรู้ได้ยังไงว่า Lead แต่ละคนมาจากไหน

พอรันแคมเปญพร้อมกันเกิน 5 ตัว การพิมพ์ชื่อแคมเปญเข้า CRM ด้วยมือเริ่มพังทุกครั้ง บทความนี้เล่าวิธีเก็บ campaign lead ใน CRM จาก LINE ให้แม่นแม้แคมเปญจะเพิ่มขึ้นเรื่อย ๆ
แอดมินตอบไวขึ้นทุกเดือน แต่ตัวเลข Lost Lead จาก LINE กลับไม่ลดเลย

แอดมินตอบไวขึ้นทุกเดือน แต่ตัวเลข Lost Lead จาก LINE กลับไม่ลดเลย

หลายทีมภูมิใจว่าปีนี้ตอบแชทเร็วขึ้นมาก แต่พอเปิดดูสัดส่วน Lead ที่หลุดไปกลับเท่าเดิมหรือแย่กว่าเดิม บทความนี้ชวนดูว่าทำไม Speed to Lead อย่างเดียวไม่พอ และควรวัด Lost Lead แยกตามช่องทางโฆษณาแบบไหนถึงจะเจอสาเหตุจริง
เทียบ Attribution จาก Ads Manager อย่างเดียว กับต่อ CRM เข้าไปวัดถึงยอดปิดจริง ต่างกันตรงไหน

เทียบ Attribution จาก Ads Manager อย่างเดียว กับต่อ CRM เข้าไปวัดถึงยอดปิดจริง ต่างกันตรงไหน

ยิงแอดสามแพลตฟอร์มพร้อมกันแล้วเปิด Ads Manager แต่ละตัวดูยอด มักได้ตัวเลขที่เชื่อไม่ได้ เพราะแต่ละแพลตฟอร์มนับ Attribution แบบแยกส่วนของตัวเอง บทความนี้เทียบให้เห็นว่าต่อ CRM เข้าไปแล้วมองเห็นอะไรที่ Ads Manager เพียงอย่างเดียวมองไม่เห็น