← กลับไปหน้าบทความ
ขั้นสูง (MarTech)

ดึงกลุ่มลูกค้าจากคลังข้อมูลกลับไปยิงแอด ให้เป็นรอบอัตโนมัติ

ทีมบรรณาธิการ linli01 พ.ย. 09:28อัปเดต 01 พ.ย. 09:28อ่าน 2 นาที
ดึงกลุ่มลูกค้าจากคลังข้อมูลกลับไปยิงแอด ให้เป็นรอบอัตโนมัติ
บทความนี้จัดทำเพื่อความรู้ ชื่อธุรกิจ ตัวเลข หรือบทสนทนาที่ไม่มีแหล่งอ้างอิงกำกับเป็นกรณีตัวอย่างเพื่ออธิบายแนวคิด ดูรายละเอียดที่ นโยบายกองบรรณาธิการ

สรุปสั้น ๆ

Reverse ETL คือการดึงตารางกลุ่มลูกค้าที่นิยามด้วย SQL ในคลังข้อมูล แล้วส่งกลับไปแพลตฟอร์มโฆษณาเป็นรอบอัตโนมัติ โดยทำให้ตัวระบุเป็นรูปแบบเดียว แฮช เทียบกับรอบก่อนเพื่อเพิ่มและถอนสมาชิก และบันทึกผล ความยากจริงอยู่ที่รูปแบบเบอร์โทร การถอนคนที่ไม่ควรอยู่ในกลุ่ม และการเช็กว่าแพลตฟอร์มรับครบ ไม่ใช่การเรียก API

ทุกเช้าวันจันทร์ น้องมายด์ฝ่ายแอดของแบรนด์ครีมกันแดดแห่งหนึ่ง (สมมติ) ส่งออกไฟล์ CSV ลูกค้าที่ซื้อใน 90 วันล่าสุดจากระบบหลังบ้าน แล้วอัปโหลดเป็น Custom Audience ใน Meta ด้วยมือ เดือนแรกเธอลืมไปสองสัปดาห์ ผลคือลูกค้าที่เพิ่งซื้อเมื่อวันพุธยังถูกยิงแอด ‘ส่วนลดสำหรับลูกค้าใหม่’ ต่ออีกเกือบสิบวัน และมีลูกค้าทักมาถามในแชทว่าทำไมซื้อแล้วยังได้โปรลูกค้าใหม่

งานนี้เป็นของ reverse ETL ซึ่งกลับทิศกับ ETL เดิมที่ดึงข้อมูลเข้าคลัง ตัวนี้ดึงผลจากคลังออกไปให้เครื่องมือที่ลงมือทำงาน ในที่นี้คือแพลตฟอร์มโฆษณา ถ้าคุณมีคลังข้อมูลที่ซิงก์แชท LINE กับยอดขายอยู่แล้ว ส่วนที่เหลือไม่ยาก แต่มีกับดักที่ต้องรู้

ไฟล์ CSV ทุกสัปดาห์พังตรงไหน

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

จุดที่สี่คือไม่มีบันทึก ไม่มีใครตอบได้ว่ารอบที่แล้วส่งไปกี่แถว แพลตฟอร์มรับกี่แถว งานที่ทำด้วยมือแก้ได้ด้วยวินัย แต่วินัยของคนหนึ่งคนไม่ทนต่อวันลาพักร้อน

โครงห้าขั้นที่ใช้ได้กับทุกแพลตฟอร์ม

  1. นิยามกลุ่มเป็น SQL view หนึ่งกลุ่มต่อหนึ่ง view มีคอลัมน์ตัวระบุ (อีเมล เบอร์โทร) และสถานะความยินยอม กรองคนที่ไม่ยินยอมออกตั้งแต่ใน SQL
  2. ทำตัวระบุให้เป็นรูปแบบเดียว แล้วแฮช อีเมลเป็นตัวพิมพ์เล็กและตัดช่องว่าง เบอร์โทรเป็นรูปแบบที่แต่ละแพลตฟอร์มกำหนด แล้วแฮช SHA-256 ตามที่แพลตฟอร์มระบุ รายละเอียดอยู่ใน การทำเบอร์และชื่อไทยให้เป็นรูปแบบเดียวก่อนแฮช
  3. เทียบกับรอบก่อน เก็บรายชื่อที่ส่งไปรอบที่แล้ว แล้วคำนวณว่าใครเข้าใหม่ ใครต้องถอน ส่งเฉพาะส่วนต่าง แทนการลบทั้งกลุ่มแล้วสร้างใหม่ ซึ่งต้องรอแพลตฟอร์มประมวลผลทั้งก้อนอีกรอบ
  4. ส่งเป็นชุดตามเพดานของ API แต่ละแพลตฟอร์มจำกัดจำนวนแถวต่อคำขอ และอาจตอบกลับว่าบางแถวผิดรูปแบบ เก็บผลตอบกลับไว้
  5. บันทึกผลทุกรอบ จำนวนแถวที่ส่ง จำนวนที่รับ จำนวนที่ถอน เวลา และข้อผิดพลาด ตารางบันทึกตารางเดียวนี้ทำให้จับปัญหาได้ก่อนลูกค้าบอก

สี่กลุ่มแรกที่คุ้มกับงานตั้งต้นที่สุด

กลุ่มแรกเป็นกลุ่มที่ ‘ตัดออก’ ไม่ใช่กลุ่มที่ยิงหา และเป็นกลุ่มที่แก้เรื่องของน้องมายด์ได้ทันที ขั้นตอนฝั่งแพลตฟอร์มดูใน Meta Custom Audience จากลูกค้า LINE และต่อยอดเป็น lookalike จากข้อมูลแชท

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

ห้าจุดที่กลุ่มเสียหายโดยไม่มีใครรู้

  • รูปแบบเบอร์โทร เบอร์ไทยที่ขึ้นต้นด้วย 0 ต้องแปลงเป็นรหัสประเทศ 66 ก่อนแฮช ตามรูปแบบที่แพลตฟอร์มกำหนด (บางเจ้าต้องมีเครื่องหมาย + บางเจ้าไม่ต้อง) ถ้าผิด ค่าแฮชจะไม่ตรงกับใครเลยและไม่มี error แจ้ง
  • แถวว่างและแถวซ้ำ อีเมลว่างที่แฮชแล้วกลายเป็นค่าเดียวกันทั้งก้อน ควรกรองก่อนแฮช
  • ขนาดกลุ่มต่ำกว่าเกณฑ์ขั้นต่ำ แต่ละแพลตฟอร์มมีขนาดขั้นต่ำก่อนจะใช้ยิงได้ ต่างกันตามเจ้าและตามประเภทแคมเปญ กลุ่มที่เล็กกว่าเกณฑ์จะใช้ไม่ได้ ทั้งที่ API ตอบสำเร็จ
  • อัตราจับคู่ที่ไม่มีใครดู ส่ง 5,000 แถวแต่แพลตฟอร์มจับคู่ได้ 1,800 ก็ควรรู้ ตรวจขนาดกลุ่มที่แพลตฟอร์มรายงานหลังประมวลผลเทียบกับจำนวนที่ส่ง
  • โทเคนหมดอายุ งานที่รันทุกคืนล้มเงียบเพราะโทเคนเข้าถึงหมดอายุ ตั้งการแจ้งเตือนเมื่อรอบหนึ่งไม่ส่งผลสำเร็จ

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

อีกเรื่องคือข้อกำหนดของแต่ละแพลตฟอร์มว่าด้วยการนำข้อมูลลูกค้ามาสร้างกลุ่ม มีเงื่อนไขของตัวเอง ทั้งเรื่องแหล่งที่มาของข้อมูลและประเภทข้อมูลที่ห้ามใช้ ดู ข้อกำหนดแพลตฟอร์มเรื่อง custom audience ก่อนเปิดใช้งานกลุ่มแรก

เขียนสคริปต์เองหรือซื้อเครื่องมือ

ถ้าปลายทางมีสองสามแพลตฟอร์มและมีคนเขียนโค้ดหนึ่งคน สคริปต์ที่รันตามเวลาพร้อมตารางบันทึกก็พอ เครื่องมือ reverse ETL สำเร็จรูป ตัวอย่างที่คนรู้จักคือ Hightouch และ Census ประหยัดเวลาเมื่อมีหลายปลายทางและหลายกลุ่ม คิดค่าบริการตามจำนวนปลายทางหรือจำนวนแถว

ผมแนะนำให้เริ่มด้วยกลุ่ม ‘เพิ่งซื้อ’ กลุ่มเดียวบนสคริปต์ก่อน เพราะจะรู้ว่าปัญหาจริงของข้อมูลคุณคืออะไร แล้วค่อยตัดสินว่าจะซื้อเครื่องมือไหม

สรุป

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

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

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

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

reverse ETL ต่างจากการอัปโหลด Custom Audience เองอย่างไร

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

ต้องมี data warehouse ก่อนไหม

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

ควรรีเฟรชกลุ่มบ่อยแค่ไหน

กลุ่มที่ใช้ตัดออกอย่าง ‘เพิ่งซื้อ’ ควรรีเฟรชทุกวัน เพราะช้าหนึ่งวันคือเงินที่ยิงใส่คนที่ซื้อแล้ว กลุ่มต้นแบบสร้าง lookalike รายสัปดาห์ก็พอ

ส่งข้อมูลไปแพลตฟอร์มต้องขอความยินยอมไหม

ต้องมีฐานทางกฎหมายและแจ้งลูกค้า โดยทั่วไปธุรกิจใช้ความยินยอมสำหรับการนำข้อมูลไปสร้างกลุ่มโฆษณา ใครถอนความยินยอมต้องออกจากกลุ่มในรอบถัดไป และการส่งข้อมูลไปต่างประเทศมีเรื่องต้องทำเพิ่ม

ถ้าลูกค้าส่วนใหญ่มีแต่ LINE userId ไม่มีอีเมลหรือเบอร์ ทำอย่างไร

LINE userId จับคู่กับ Meta หรือ Google ไม่ได้ ต้องมีอีเมลหรือเบอร์โทร ลองเก็บเบอร์ตอนปิดการขาย เช่นตอนยืนยันที่อยู่จัดส่ง พร้อมความยินยอม ส่วนกลุ่มที่เหลือใช้ได้ในฝั่ง LINE เช่นข้อความออกอากาศ

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

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

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

ตรวจ Tracking ฟรี

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

วัด Conversion LINE ทุกแบรนด์ รวมศูนย์ที่เดียว

องค์กรที่มีหลายแบรนด์ หลายสาขา หลาย LINE OA linli รวม Tracking และส่ง Conversion กลับทุกแพลตฟอร์ม พร้อม Custom Limit เริ่มฟรี 14 วัน

ติดต่อทีม Sales

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

มีทั้งแอปและ LINE โฆษณาตัวเดียวกันพาคนไปจบคนละที่ จะแยกเครดิตยังไง

มีทั้งแอปและ LINE โฆษณาตัวเดียวกันพาคนไปจบคนละที่ จะแยกเครดิตยังไง

แอดตัวเดียวพาคนไปสองที่ คือแอปและแชท LINE ทำให้เครดิตแตกเป็นสองกอง บทความนี้ออกแบบวิธีเชื่อมคนคนเดียวกันและตกลงกติกาแบ่งเครดิตก่อนดูตัวเลข
โมเดลแบ่งเครดิตแบบ Markov กับ Shapley ต่างกันยังไงในภาษาคนทำแอด

โมเดลแบ่งเครดิตแบบ Markov กับ Shapley ต่างกันยังไงในภาษาคนทำแอด

Shapley ถามว่าช่องทางหนึ่งเพิ่มผลเท่าไรเมื่อเข้าทีม ส่วน Markov ถามว่าถ้าตัดช่องทางนั้นออกโอกาสซื้อหายเท่าไร บทความนี้คิดเลขให้ดูด้วยข้อมูลสมมติชุดเดียวกัน
ตรวจ ID Token ของ LINE Login ที่ฝั่งเซิร์ฟเวอร์ ก่อนจะเชื่อว่าเป็นคนนั้นจริง

ตรวจ ID Token ของ LINE Login ที่ฝั่งเซิร์ฟเวอร์ ก่อนจะเชื่อว่าเป็นคนนั้นจริง

id_token ที่ไม่ได้ตรวจลายเซ็น ผู้ออก ผู้รับ เวลาหมดอายุ และ nonce ฝั่งเซิร์ฟเวอร์ เป็นแค่ข้อความที่ใครก็แต่งได้ บทความนี้ไล่รูปร่างของการตรวจและกับดักที่พบบ่อย