ทำไมยอดใน Ads Manager ถึงไม่ตรงกับยอดที่แอดมินปิดจริงหลัง hash ข้อมูลลูกค้า

สรุปสั้น ๆ
ยอดใน Ads Manager มักไม่เท่ากับยอดที่แอดมินปิดจริง เพราะการ hash ข้อมูลลูกค้าเพื่ออัปโหลด Offline Conversion ไม่ได้แปลว่าทุกแถวจะจับคู่กับผู้ใช้ในระบบโฆษณาได้สำเร็จ สาเหตุหลักมักมาจากการ Normalize ข้อมูลก่อน hash ไม่ตรงตามรูปแบบที่แพลตฟอร์มกำหนด เช่น รูปแบบเบอร์โทร ตัวพิมพ์เล็กใหญ่ของอีเมล หรือช่องว่างที่หลงเหลืออยู่ ทำให้ Match Rate ต่ำกว่าที่ควรจะเป็นโดยไม่มีใครรู้ตัวจนกว่าจะไล่ตรวจทีละขั้นตอน
ทีมหนึ่งที่ผมช่วยตรวจให้ ปิดการขายผ่าน LINE ได้จริง 40 รายในเดือนหนึ่ง แล้วเอาข้อมูลไป hash และอัปโหลดเป็น Offline Conversion กลับ Google Ads ตามขั้นตอนปกติ แต่พอเปิดดู Ads Manager กลับเห็นตัวเลข Conversion แค่ 22 รายการ ทีมงงว่าหายไปไหนเกือบครึ่ง ทั้งที่ Process ที่ทำก็เหมือนเดือนก่อน ๆ ไม่มีอะไรเปลี่ยน
ปัญหานี้เป็นเรื่องที่พบได้บ่อยกว่าที่คิด เพราะการ hash ข้อมูลลูกค้าเป็นแค่ขั้นตอนหนึ่งในกระบวนการทั้งหมด ไม่ใช่ตัวการันตีว่าข้อมูลนั้นจะจับคู่กับผู้ใช้ในระบบโฆษณาได้สำเร็จ ถ้าขั้นตอนก่อนหน้านั้นมีจุดผิดเพี้ยนแม้เพียงเล็กน้อย เช่น การจัดรูปแบบข้อมูลก่อน hash ไม่ตรงตามที่แพลตฟอร์มกำหนด ค่า Hash ที่ได้ก็จะไม่ตรงกับที่แพลตฟอร์มมีอยู่ในระบบ แล้วแถวนั้นก็จะไม่ถูกจับคู่
บทความนี้จะไล่ดูทีละขั้นตอนว่าทำไมยอดใน Ads Manager ถึงไม่ตรงกับยอดที่แอดมินปิดจริง ตั้งแต่การเตรียมข้อมูลก่อน hash ไปจนถึงจุดตรวจสอบที่ควรทำก่อนอัปโหลดทุกครั้ง
ทำไมต้อง hash ข้อมูลลูกค้าก่อนอัปโหลด Offline Conversion
การ hash ข้อมูลลูกค้าเป็นขั้นตอนที่แปลงข้อมูลอย่างเบอร์โทรหรืออีเมลให้กลายเป็นชุดตัวอักษรที่อ่านย้อนกลับไม่ได้ ก่อนส่งให้แพลตฟอร์มโฆษณา วิธีนี้ช่วยลดความเสี่ยงที่ข้อมูลส่วนบุคคลดิบจะรั่วไหลระหว่างทาง เพราะสิ่งที่ส่งออกไปเป็นค่า Hash ไม่ใช่ข้อมูลต้นฉบับ
แพลตฟอร์มโฆษณาฝั่งของตัวเองก็มีข้อมูลผู้ใช้ที่ผ่านการ hash ด้วยวิธีเดียวกันอยู่แล้ว เมื่อได้รับค่า Hash จากฝั่งธุรกิจ ระบบจะเทียบว่าค่า Hash นั้นตรงกับค่าที่มีอยู่ในระบบหรือไม่ ถ้าตรงกันก็ถือว่าจับคู่สำเร็จและนับเป็น Conversion ของผู้ใช้คนนั้น
จุดสำคัญที่ต้องเข้าใจคือกระบวนการ hash ต้องใช้อัลกอริทึมและรูปแบบข้อมูลที่ตรงกันทุกประการ ถ้าข้อมูลต้นฉบับก่อน hash ต่างกันแม้แค่ตัวอักษรเดียว เช่น ตัวพิมพ์เล็กใหญ่ที่ต่างกัน ค่า Hash ที่ได้จะต่างกันโดยสิ้นเชิง ทำให้จับคู่ไม่สำเร็จทันที
ข้อผิดพลาดตอน Normalize ข้อมูลก่อน hash ที่พบบ่อยที่สุด
ปัญหาที่พบบ่อยที่สุดคือรูปแบบเบอร์โทร ทีมมักเก็บเบอร์โทรจากฟอร์มในรูปแบบที่ไม่สม่ำเสมอ บางรายการมีเลข 0 นำหน้า บางรายการใส่รหัสประเทศ บางรายการมีขีดหรือช่องว่างคั่น ถ้าไม่ Normalize ให้เป็นรูปแบบเดียวกันตามที่แพลตฟอร์มกำหนดก่อน hash ค่า Hash ที่ได้จากเบอร์เดียวกันจะออกมาไม่เหมือนกัน
ปัญหาที่สองคือตัวพิมพ์เล็กใหญ่ของอีเมล อีเมลที่พิมพ์ด้วยตัวใหญ่บางส่วนกับอีเมลเดียวกันที่พิมพ์ด้วยตัวเล็กทั้งหมด จะให้ค่า Hash ต่างกัน ทั้งที่เป็นอีเมลเดียวกันในความเป็นจริง แพลตฟอร์มส่วนใหญ่กำหนดให้แปลงเป็นตัวพิมพ์เล็กทั้งหมดก่อน hash เสมอ
ปัญหาที่สามคือช่องว่างที่หลงเหลืออยู่หน้าหรือหลังข้อมูล ซึ่งมักเกิดจากการคัดลอกข้อมูลมาจากไฟล์ Excel หรือระบบอื่น ช่องว่างที่มองไม่เห็นด้วยตาเปล่านี้ทำให้ค่า Hash เปลี่ยนไปโดยที่ทีมไม่รู้ตัว เพราะเมื่อเปิดดูข้อมูลในตารางจะดูเหมือนถูกต้องทุกอย่าง
Match Rate คืออะไร ทำไมยิ่งต่ำยิ่งกระทบยอดที่เห็น
Match Rate คือสัดส่วนของแถวข้อมูลที่อัปโหลดไป แล้วจับคู่กับผู้ใช้ในระบบของแพลตฟอร์มได้สำเร็จ เทียบกับจำนวนแถวทั้งหมดที่ส่งไป ถ้าอัปโหลดไป 40 รายการ แต่จับคู่ได้แค่ 22 รายการ Match Rate ของรอบนั้นจะอยู่ที่ประมาณ 55 เปอร์เซ็นต์ ซึ่งถือว่าต่ำกว่าที่ควรจะเป็นสำหรับข้อมูลที่ผ่านการเตรียมอย่างถูกต้อง
Match Rate ที่ต่ำไม่ได้แปลว่าลูกค้าคนนั้นไม่มีตัวตนในระบบแพลตฟอร์ม ส่วนใหญ่มักเป็นเพราะรูปแบบข้อมูลก่อน hash ไม่ตรงกับที่แพลตฟอร์มมีอยู่ ทำให้แม้จะเป็นคนเดียวกันจริง ระบบก็จับคู่ไม่ได้เพราะค่า Hash ไม่ตรงกัน
สิ่งที่ทีมมักเข้าใจผิดคือคิดว่ายอดที่เห็นใน Ads Manager คือยอดขายทั้งหมดที่เกิดขึ้นจริง ทั้งที่ในความเป็นจริงมันคือยอดที่จับคู่สำเร็จเท่านั้น ธุรกิจที่ปิดขาย 40 รายอาจเห็นตัวเลขใน Ads Manager แค่ 22 ราย ไม่ใช่เพราะยอดขายจริงลดลง แต่เพราะกระบวนการจับคู่ไม่สมบูรณ์
ผลกระทบของ Match Rate ต่ำไม่ได้หยุดแค่ตัวเลขที่ดูน้อยลงในรายงาน แต่ยังกระทบการเรียนรู้ของระบบ Smart Bidding ด้วย เพราะแพลตฟอร์มใช้ข้อมูล Conversion ที่จับคู่สำเร็จเป็นสัญญาณหลักในการหาลูกค้าที่มีแนวโน้มคล้ายกัน ถ้าสัญญาณที่ได้รับมีแค่ครึ่งเดียวของยอดขายจริง ระบบก็จะเรียนรู้จากกลุ่มตัวอย่างที่ไม่ครบถ้วน ซึ่งอาจทำให้การหาลูกค้าใหม่คลาดเคลื่อนจากกลุ่มเป้าหมายที่ต้องการจริงไปบ้าง
ตารางจุดตรวจสอบก่อนอัปโหลด แยกตามประเภทข้อมูล
ก่อนอัปโหลดทุกครั้ง ควรไล่ตรวจตามตารางนี้:
| ประเภทข้อมูล | รูปแบบที่ควรเป็นก่อน hash | ข้อผิดพลาดที่พบบ่อย |
|---|---|---|
| เบอร์โทร | รูปแบบสากลตามที่แพลตฟอร์มกำหนด ไม่มีขีดหรือช่องว่าง | ใส่เลข 0 นำหน้าปนกับไม่ใส่ ทำให้ไม่สม่ำเสมอ |
| อีเมล | ตัวพิมพ์เล็กทั้งหมด ไม่มีช่องว่างหน้าหลัง | คัดลอกจาก Excel แล้วมีช่องว่างแฝงอยู่ |
| ชื่อ-นามสกุล | ตามที่แพลตฟอร์มกำหนดรูปแบบ ถ้าใช้ประกอบการจับคู่ | สะกดผิดหรือใช้ชื่อเล่นแทนชื่อจริง |
| วันที่และเวลา Conversion | รูปแบบและ Time Zone ตรงตามที่แพลตฟอร์มกำหนด | ใช้ Time Zone เครื่องตัวเองโดยไม่แปลงให้ตรง |
ขั้นตอนตรวจความถูกต้องก่อนอัปโหลดแบบใช้ได้จริง
ลำดับงานที่ควรทำก่อนอัปโหลดทุกรอบมีดังนี้:
- ดึงข้อมูลลูกค้าที่จะอัปโหลดมาไว้ในตารางเดียว แล้วสุ่มตรวจสิบถึงยี่สิบแถวว่ารูปแบบเบอร์โทรและอีเมลสม่ำเสมอตามที่แพลตฟอร์มกำหนดหรือไม่
- เขียนขั้นตอน Normalize เป็นสคริปต์หรือสูตรที่ใช้ซ้ำได้ทุกรอบ แทนการแก้ทีละแถวด้วยมือ เพื่อลดโอกาสพลาดจากความไม่สม่ำเสมอของคน
- ทำ hash ตามอัลกอริทึมที่แพลตฟอร์มกำหนดหลังผ่านขั้นตอน Normalize แล้วเท่านั้น ไม่ทำ hash จากข้อมูลดิบที่ยังไม่ผ่านการปรับรูปแบบ
- อัปโหลดไฟล์ทดสอบจำนวนน้อยก่อน เพื่อเช็ก Match Rate เบื้องต้น ก่อนอัปโหลดไฟล์เต็มจำนวนของทั้งเดือน
- หลังอัปโหลดจริงแล้ว บันทึก Match Rate ของแต่ละรอบไว้เปรียบเทียบ ถ้าตกลงผิดปกติจากรอบก่อนหน้า ให้กลับไปตรวจขั้นตอน Normalize ก่อนสงสัยสาเหตุอื่น
ทำแบบนี้แล้วพัง เพราะจุดเหล่านี้มักถูกมองข้าม
- ใช้ทีมต่างคนต่างกรอกข้อมูลเบอร์โทรลงระบบโดยไม่มีมาตรฐานเดียวกัน ทำให้ข้อมูลก่อน hash มีหลายรูปแบบปนกันในไฟล์เดียว
- แก้ไขข้อมูลใน Excel ด้วยมือก่อนอัปโหลด แล้วมีบางแถวที่พิมพ์ผิดหรือเว้นวรรคเกินโดยไม่รู้ตัว เพราะตาเปล่ามองไม่เห็นช่องว่างแฝง
- ใช้อัลกอริทึม hash ผิดเวอร์ชันจากที่แพลตฟอร์มกำหนด เพราะทีมเทคนิคอ้างอิงจากเอกสารเก่าที่ไม่ได้อัปเดตตามการเปลี่ยนแปลงล่าสุด
- ไม่ได้เช็ก Time Zone ของวันที่ Conversion ให้ตรงกับที่แพลตฟอร์มกำหนด ทำให้บางรายการถูกนับผิดวัน หรือหลุดออกจากช่วงเวลาที่ระบบยอมรับ
- อัปโหลดไฟล์ที่มีแถวซ้ำจากลูกค้าคนเดิมหลายครั้งโดยไม่กรองก่อน ทำให้ตัวเลขที่นับได้สูงเกินจริงในบางรอบ สลับกับรอบที่ Match Rate ต่ำจนดูเหมือนไม่สม่ำเสมอ
เทียบยอดกับข้อมูลจาก LINE ให้ตรงกันได้อย่างไร
หลังอัปโหลด Offline Conversion แล้ว ควรมีขั้นตอนเทียบยอดระหว่างตัวเลขที่แอดมิน LINE บันทึกว่าปิดขายจริง กับตัวเลข Conversion ที่ปรากฏใน Ads Manager เป็นประจำทุกรอบ ไม่ใช่เช็กแค่ตอนที่รู้สึกว่าตัวเลขผิดปกติ เพราะปัญหา Match Rate อาจเกิดขึ้นเงียบ ๆ โดยไม่มีสัญญาณเตือนชัดเจน
ถ้าพบว่ายอดต่างกันมาก ควรแยกวิเคราะห์ว่าความต่างมาจาก Match Rate ที่ต่ำ หรือมาจากสาเหตุอื่น เช่น การอัปโหลดไม่ครบทุกรายการ หรือมีความล่าช้าในการบันทึกยอดขายจากฝั่งแอดมิน เพราะแต่ละสาเหตุต้องแก้ด้วยวิธีต่างกัน
วิธีที่ช่วยแยกสาเหตุได้ชัดขึ้นคือทำตารางเทียบรายชื่อลูกค้าที่ปิดขายจริงกับรายชื่อที่อัปโหลดไปแล้ว ถ้าพบว่ามีลูกค้าที่ปิดขายจริงแต่ไม่มีอยู่ในไฟล์ที่อัปโหลดเลย แสดงว่าปัญหาอยู่ที่ขั้นตอนการรวบรวมข้อมูลก่อนอัปโหลด ไม่ใช่ปัญหาเรื่อง Match Rate แต่ถ้าลูกค้าทุกคนอยู่ในไฟล์ที่อัปโหลดแล้วแต่ยัง Match ไม่สำเร็จ ปัญหาจึงน่าจะอยู่ที่ขั้นตอน Normalize และ hash ที่ต้องกลับไปตรวจอีกครั้ง
linli ช่วยในจุดที่เชื่อมข้อมูล Lead และ Order ที่เกิดขึ้นใน LINE เข้ากับ Identifier ที่เก็บมาตั้งแต่ต้นทาง เพื่อเตรียมชุดข้อมูลที่พร้อมสำหรับกระบวนการ hash และอัปโหลดต่อไป แต่ความแม่นยำของ Match Rate สุดท้ายยังขึ้นกับว่าทีมเตรียมข้อมูลก่อน hash ให้ตรงตามมาตรฐานของแต่ละแพลตฟอร์มมากแค่ไหน อ่านเพิ่มเติมเรื่องการกันข้อมูลซ้ำได้ที่ server side deduplication conversion
สรุป
ยอดใน Ads Manager ที่ไม่ตรงกับยอดที่แอดมินปิดจริง ส่วนใหญ่ไม่ได้เกิดจากความผิดพลาดของทีมขาย แต่เกิดจากรายละเอียดเล็ก ๆ ในขั้นตอน Normalize ข้อมูลก่อน hash ที่มองข้ามได้ง่าย การไล่ตรวจทีละขั้นตอนอย่างเป็นระบบจึงสำคัญกว่าการเดาสาเหตุ
ธุรกิจที่วางกระบวนการเตรียมข้อมูลให้สม่ำเสมอตั้งแต่ต้น และมีขั้นตอนตรวจสอบ Match Rate เป็นประจำ จะเห็นตัวเลข Conversion ที่ใกล้เคียงความเป็นจริงมากขึ้น และลดเวลาที่เสียไปกับการไล่หาสาเหตุทุกครั้งที่ตัวเลขดูผิดปกติ
- ยอดที่หายไปมักไม่ใช่ยอดขายที่ไม่เกิดขึ้นจริง แต่เป็นยอดที่จับคู่ไม่สำเร็จเพราะข้อมูลก่อน hash ไม่ตรงรูปแบบ
- ปัญหาส่วนใหญ่มาจากรูปแบบเบอร์โทร ตัวพิมพ์อีเมล และช่องว่างแฝงที่มองไม่เห็นด้วยตาเปล่า
- ทดสอบด้วยไฟล์เล็กก่อนอัปโหลดจริง แล้วบันทึก Match Rate ทุกรอบไว้เทียบกัน
คำถามที่พบบ่อย
Match Rate เท่าไหร่ถึงถือว่าปกติ
ไม่มีตัวเลขตายตัวที่ใช้ได้กับทุกธุรกิจ เพราะขึ้นกับคุณภาพและครบถ้วนของข้อมูลที่มี ทีมควรเทียบ Match Rate ของตัวเองในแต่ละรอบว่าคงที่หรือผันผวนผิดปกติ มากกว่าไปเทียบกับตัวเลขของธุรกิจอื่น
hash ข้อมูลแล้ว ยังต้องเก็บข้อมูลดิบไว้ไหม
ควรเก็บตามนโยบายและระยะเวลาที่ธุรกิจกำหนดไว้ เพื่อใช้ตรวจสอบย้อนหลังหรือแก้ไขข้อผิดพลาดในการ Normalize ได้ แต่ต้องดูแลการเก็บรักษาให้ปลอดภัยตามที่กฎหมายและนโยบายภายในกำหนด
ทำไมบางเดือน Match Rate สูงกว่าบางเดือน ทั้งที่ Process เหมือนกัน
อาจเกิดจากสัดส่วนลูกค้าที่มีข้อมูลอยู่ในระบบแพลตฟอร์มต่างกันในแต่ละเดือน หรือมีการเปลี่ยนแปลงเล็กน้อยในขั้นตอน Normalize ที่ทีมไม่ทันสังเกต ควรตรวจสอบทั้งสองปัจจัยก่อนสรุปว่าเกิดจากอะไร
ใช้เครื่องมือ hash ออนไลน์ทั่วไปได้ไหม
ควรใช้เฉพาะเครื่องมือหรือวิธีที่ตรงตามอัลกอริทึมและรูปแบบที่แพลตฟอร์มโฆษณากำหนดไว้ในเอกสารทางการเท่านั้น เครื่องมือทั่วไปอาจใช้อัลกอริทึมหรือการเข้ารหัสตัวอักษรที่ต่างกัน ทำให้ค่า Hash ไม่ตรงกับที่แพลตฟอร์มคาดหวัง
ข้อมูลลูกค้าที่มีเฉพาะเบอร์โทร ไม่มีอีเมล อัปโหลดได้ไหม
ได้ตามที่แพลตฟอร์มรองรับ แต่การมีข้อมูลหลายประเภทมักช่วยเพิ่มโอกาสจับคู่สำเร็จมากกว่าการมีข้อมูลประเภทเดียว ควรตรวจสอบว่าแพลตฟอร์มที่ใช้งานอยู่รองรับการอัปโหลดด้วยข้อมูลบางส่วนหรือไม่
ต้องอัปโหลดถี่แค่ไหนถึงจะเหมาะสม
ความถี่ที่เหมาะสมขึ้นกับปริมาณ Conversion และความล่าช้าที่ยอมรับได้ของธุรกิจ บางทีมอัปโหลดทุกวัน บางทีมอัปโหลดทุกสัปดาห์ สิ่งสำคัญกว่าคือความสม่ำเสมอของรูปแบบข้อมูลในทุกรอบที่อัปโหลด
ลองตรวจด้วยตัวเอง
Google Ads → LINE Checker
ตรวจหน้า Landing ของคุณว่า gclid, UTM และเส้นทางเข้า LINE พร้อมส่ง Conversion กลับ Google Ads หรือยัง
ตรวจความพร้อมฟรี →ใช้ฟรี ไม่ต้องสมัคร ไม่เก็บข้อมูลที่คุณกรอก
อ่านต่อแบบเจาะลึก
รู้ว่าโฆษณาเข้า LINE ทำยอดขายจริงแค่ไหน
linli ติดตามลูกค้าตั้งแต่คลิกโฆษณา กดเพิ่มเพื่อน ทักแชท จนปิดการขาย พร้อมส่ง Conversion กลับแพลตฟอร์มโฆษณา เริ่มฟรี 14 วัน
ทดลองใช้ฟรี 14 วันบทความที่เกี่ยวข้อง

ยอด Conversion ขึ้นสองเท่าในแดชบอร์ด ทั้งที่มีลูกค้าจริงแค่คนเดียว แก้ยังไง

ผูก First-party ID ตั้งแต่ต้นทาง กันข้อมูล Attribution หลุดตอนแคมเปญเปลี่ยน
