ดึงรายงาน LINE Ads ด้วย API เข้าแดชบอร์ดตัวเอง เลิกก๊อปตัวเลขด้วยมือ
สรุปสั้น ๆ
pipeline ที่ใช้ได้จริงดึงรายงานรายวันของ LINE Ads เก็บลงตารางดิบ แล้วเชื่อมกับยอดขายที่ปิดในแชทด้วยรหัสแคมเปญตัวเดียวกัน จุดที่มักพลาดไม่ใช่การดึง แต่เป็นคีย์ที่ไม่ตรง เขตเวลาที่ต่างกัน และตัวเลขคอนเวอร์ชันที่แก้ย้อนหลังได้ จึงต้องดึงทับหลายวันล่าสุดทุกครั้ง
เช้าวันจันทร์ นักวิเคราะห์ของเอเจนซีเปิด 14 บัญชีโฆษณา ก๊อปค่าใช้จ่ายและคลิกของสัปดาห์ที่แล้วลงชีต ใช้เวลาราวสองชั่วโมง ตัวเลขนี้เป็นตัวอย่างสมมติ แต่ถ้าเคยทำงานแบบนี้จะรู้ว่าปัญหาไม่ได้อยู่ที่เวลา อยู่ที่ตัวเลขผิดหนึ่งช่องแล้วไม่มีใครเห็นจนผ่านไปสามสัปดาห์
แดชบอร์ดของเราที่มีอยู่ดึงข้อมูลจาก Google และ Meta เป็นหลัก ฝั่ง LINE Ads ยังถูกก๊อปด้วยมือ บทความนี้ออกแบบวิธีดึงจาก API ของ LINE Ads ตรง ๆ ขั้นตอนขอสิทธิ์ ชื่อ endpoint และชื่อฟิลด์ที่ระบบให้มา ผมไม่ยืนยันจากความจำ ให้ตรวจกับเอกสารผู้พัฒนาของ LINE Ads ฉบับล่าสุดและเงื่อนไขของบัญชีที่ใช้
ตัดสินใจก่อนว่าจะดึงอะไร
อย่าเริ่มจากเขียนโค้ด ให้เริ่มจากคำถามว่าแดชบอร์ดต้องตอบอะไร ถ้าตอบเรื่องต้นทุนต่อยอดขายที่ปิดจริง ข้อมูลจากแพลตฟอร์มที่ต้องใช้มีไม่มาก ที่เหลือมาจากฝั่งแชท
| ระดับ | ข้อมูลที่ควรเก็บ | ใช้ทำอะไร |
|---|---|---|
| บัญชี | ค่าใช้จ่ายรายวัน | ตรวจให้ตรงกับบิลจริง |
| แคมเปญ | ค่าใช้จ่าย การแสดงผล คลิก | จับคู่กับยอดขายตามรหัสแคมเปญ |
| กลุ่มโฆษณา | ค่าใช้จ่าย คลิก | ดูว่ากลุ่มเป้าหมายไหนกินงบ |
| โฆษณา | ค่าใช้จ่าย คลิก คอนเวอร์ชันที่แพลตฟอร์มนับ | เทียบครีเอทีฟกับยอดทักและยอดปิด |
ลำดับงานตั้งแต่ขอสิทธิ์จนถึงกราฟ
- ขอสิทธิ์เข้าถึง API ตามกระบวนการของ LINE Ads และตรวจว่าบัญชีเอเจนซีกับบัญชีลูกค้าขอสิทธิ์ต่างกันหรือไม่ ผมไม่ยืนยันขั้นตอนนี้ ให้ทำตามเอกสาร
- เก็บ credential ในที่เก็บความลับ ไม่ใส่ในชีตหรือโค้ดที่แชร์กัน และวางแผนการหมุนกุญแจตามแนวทางใน การหมุน credential
- ตั้งงานดึงทุกวันในระดับโฆษณา เก็บค่าดิบลงตารางโดยไม่ปรับอะไร การรวมยอดทำทีหลังด้วย SQL
- บันทึกแบบ upsert โดยใช้คีย์ บัญชี + โฆษณา + วันที่ รันซ้ำกี่รอบก็ไม่ทำให้แถวซ้ำ
- เชื่อมกับตารางยอดขายจากแชทด้วยรหัสแคมเปญ แล้วค่อยป้อนเข้าแดชบอร์ด วิธีต่อกับ Looker Studio อยู่ใน แดชบอร์ด LINE OA บน Looker Studio
ทำไมต้องดึงย้อนหลังทับทุกวัน
ตัวเลขคอนเวอร์ชันที่แพลตฟอร์มนับอาจเปลี่ยนย้อนหลังตามหน้าต่างการนับที่ตั้งไว้ ถ้าดึงแค่เมื่อวานแล้วเก็บเลย ตัวเลขของสามวันก่อนจะค้างเป็นค่าเก่าตลอดไป วิธีที่ปลอดภัยคือดึงช่วงเจ็ดวันล่าสุดทับทุกวัน เจ็ดเป็นแค่ตัวเลขตั้งต้นของผม ให้ปรับตามหน้าต่างนับของบัญชีคุณที่อธิบายใน หน้าต่างการนับคอนเวอร์ชัน
อีกเรื่องคือเขตเวลา ถ้า API ตัดวันตามเขตเวลาหนึ่งแต่ยอดขายในระบบตัดวันตามอีกเขตหนึ่ง ยอดของคืนวันอาทิตย์จะไปอยู่คนละสัปดาห์ ตรวจให้ชัดตั้งแต่วันแรก ปัญหานี้อธิบายไว้ใน ความต่างของเขตเวลา
คีย์ที่ทำให้ค่าแอดกับยอดขายมาเจอกัน
- ใช้รหัสแคมเปญที่ระบบออกให้ ไม่ใช้ชื่อแคมเปญ เพราะชื่อถูกแก้ได้และมักมีคนเติมคำท้ายภายหลัง
- ให้ลิงก์ปลายทางของแอดพ่วงรหัสเดียวกันไปกับการทักเข้า OA เพื่อแท็กที่มาของแชทตั้งแต่ข้อความแรก
- ถ้าทีมตั้งชื่อ UTM กันคนละแบบ ให้บังคับด้วยตารางแปลง ไม่หวังให้ทุกคนจำกฎเดียวกันได้ ดู เรื่องชื่อ UTM ที่เพี้ยนตามเวลา
- เก็บแถว ‘ไม่ทราบที่มา’ ไว้ในแดชบอร์ดอย่างเปิดเผย อย่าซ่อนหรือกระจายไปให้ทุกแคมเปญ เพราะสัดส่วนของมันบอกคุณภาพของระบบ
สี่จุดที่ pipeline เงียบแล้วเลขผิดโดยไม่มีใครรู้
วิธีจับทั้งสี่ข้อคือเตือนอัตโนมัติเมื่อค่าแอดรวมของเมื่อวานต่างจากหน้าจอแพลตฟอร์มเกินเกณฑ์ที่ตกลงกัน เกณฑ์นี้คุณเลือกเอง ตั้งตามความเสี่ยงที่ทีมรับได้ แล้วบันทึกลง แดชบอร์ดสุขภาพของ pipeline
- โทเค็นหมดอายุ งานรันสำเร็จแต่ได้ศูนย์แถว แดชบอร์ดแสดงค่าแอดเป็นศูนย์ ทุกคนนึกว่าหยุดยิง
- ชนเพดานจำนวนคำขอ ได้ข้อมูลมาครึ่งเดียว ต้องมีการลองใหม่ที่หน่วงเวลาตามที่ออกแบบไว้ใน กลยุทธ์ลองใหม่เมื่อชนเพดาน
- ค่าใช้จ่ายรวมหรือไม่รวมภาษีมูลค่าเพิ่ม ทำให้เทียบกับบิลไม่ตรง ต้องจดไว้ว่าตัวเลขแต่ละคอลัมน์รวมอะไร
- รันซ้ำแล้วแถวซ้ำเพราะไม่ได้ทำ upsert ค่าแอดจึงเป็นสองเท่า
เขียนเองหรือใช้ตัวเชื่อมสำเร็จรูป
ถ้าคุณมีสามบัญชีและไม่มีใครเขียนโค้ด ตัวเชื่อมที่ตั้งเวลาดึงรายงานลงชีตก็พอ ถ้าเกินสิบบัญชีหรือต้องแยกสิทธิ์รายลูกค้า การเขียนเองเริ่มคุ้ม เพราะตัวเชื่อมสำเร็จรูปคิดราคาตามจำนวนบัญชีหรือแถว และมักไม่ยอมให้คุณคุมลอจิกการดึงทับ
ผมเอนไปทางเขียนเองเมื่อทีมมีวิศวกรอยู่แล้ว เพราะ pipeline แบบนี้เล็ก ส่วนที่แพงจริงคือการเฝ้าดูและแก้เมื่อ API เปลี่ยน ซึ่งตัวเชื่อมสำเร็จรูปก็ไม่ได้ทำให้ทั้งหมด ลองเทียบข้อดีข้อเสียตามกรอบใน สร้างเองหรือซื้อ
สรุป
ก่อนจะลงมือเขียน ให้ทดลองเงียบ ๆ สองสัปดาห์ ดึงด้วยโปรแกรมและก๊อปด้วยมือคู่กัน เทียบผลทุกวัน ถ้าตัวเลขสองฝั่งตรงกันสิบสี่วันติด จึงปิดงานก๊อปมือได้ ถ้าไม่ตรง สาเหตุที่เจอจะกลายเป็นรายการตรวจของ pipeline ในอนาคต
ส่วนที่ผู้บริหารสนใจคือต้นทุนต่อยอดขายที่ปิด ไม่ใช่การดึงข้อมูลเก่ง ดังนั้นอย่าลืมต่อฝั่งยอดขายให้เสร็จก่อนเริ่มตกแต่งกราฟ
- เก็บค่าดิบรายโฆษณา แล้วรวมยอดทีหลังด้วย SQL
- ดึงทับหลายวันล่าสุดทุกวัน และบันทึกแบบ upsert
- ใช้รหัสแคมเปญเป็นคีย์ ไม่ใช้ชื่อแคมเปญ
- ตั้งการเตือนเมื่อค่าแอดต่างจากหน้าจอแพลตฟอร์ม
- รันคู่กับการก๊อปมือสองสัปดาห์ก่อนเลิกวิธีเดิม
คำถามที่พบบ่อย
API ของ LINE Ads ใครขอใช้ได้บ้าง
เงื่อนไขและขั้นตอนการขออนุมัติเปลี่ยนได้ ผมไม่ยืนยันจากความจำ ให้อ่านเอกสารผู้พัฒนาของ LINE Ads และสอบถามผ่านช่องทางที่เอกสารระบุ โดยเฉพาะกรณีเอเจนซีที่ดูแลหลายบัญชี
ดึงแล้วทำไมค่าแอดไม่ตรงหน้าจอแพลตฟอร์ม
เช็กสามอย่างตามลำดับ คือเขตเวลาที่ตัดวัน การรวมหรือไม่รวมภาษี และวันที่ดึง เพราะตัวเลขบางช่วงยังถูกปรับย้อนหลัง ส่วนใหญ่ความต่างหลักร้อยบาทมาจากสามจุดนี้
ต้องเก็บข้อมูลดิบไว้นานแค่ไหน
ขึ้นกับว่าต้องเทียบย้อนหลังกี่ปี และนโยบายเก็บข้อมูลของบริษัท ข้อมูลระดับโฆษณารายวันมีขนาดเล็ก เก็บนานได้ ต่างจากข้อมูลแชทที่มีข้อมูลส่วนบุคคลและต้องมีเหตุผลเรื่องระยะเวลาเก็บ
ควรดึงรายชั่วโมงไหมจะได้เห็นแบบเรียลไทม์
ส่วนใหญ่ไม่จำเป็น ตัวเลขคอนเวอร์ชันของแอดยังไม่นิ่งภายในวันเดียว การตัดสินใจเรื่องงบรายชั่วโมงมักเกิดจากเลขที่ยังไม่ชัด ดึงรายวันแล้วใช้ตัวเลขฝั่งแชทประกอบก็เพียงพอ
ถ้าลูกค้าเป็นคนถือบัญชีโฆษณา เอเจนซีดึงข้อมูลได้ไหม
ขึ้นกับสิทธิ์ที่ลูกค้ามอบและสัญญาระหว่างกัน ควรระบุไว้เป็นลายลักษณ์อักษรว่าข้อมูลที่ดึงเก็บที่ไหน ใครเข้าถึงได้ และต้องลบเมื่อสิ้นสุดสัญญาหรือไม่
อ่านต่อแบบเจาะลึก
วัด Conversion LINE ทุกแบรนด์ รวมศูนย์ที่เดียว
องค์กรที่มีหลายแบรนด์ หลายสาขา หลาย LINE OA linli รวม Tracking และส่ง Conversion กลับทุกแพลตฟอร์ม พร้อม Custom Limit เริ่มฟรี 14 วัน
ติดต่อทีม Sales