← กลับไปหน้าบทความ

หน้าสินค้าส่ง price เป็น string หน้าตะกร้าส่งเป็น number: audit data layer ให้พูดภาษาเดียวกันทั้งเว็บ

02 ส.ค. 04:28 · อ่าน 2 นาที
หน้าสินค้าส่ง price เป็น string หน้าตะกร้าส่งเป็น number: audit data layer ให้พูดภาษาเดียวกันทั้งเว็บ

สรุปสั้น ๆ

data layer ที่ต่างทีมเขียนคนละช่วงเวลามักมีโครงสร้างไม่ตรงกัน เช่น ชื่อ key ต่างกัน หรือชนิดข้อมูลต่างกันสำหรับความหมายเดียวกัน ทำให้ tag ที่อ่านค่าจาก data layer ทำงานถูกในบางหน้าแต่ผิดในบางหน้าโดยไม่มี error แจ้ง การ audit ต้องไล่เทียบโครงสร้างทีละหน้าในเส้นทางลูกค้า

ร้านขายรองเท้าออนไลน์สมมติชื่อ 'สเต็ปอัพ' พบว่ามูลค่าการซื้อขายรวมที่รายงานใน GA4 ต่ำกว่าความเป็นจริงอย่างสม่ำเสมอ ทีมพัฒนาไล่เช็กโค้ดหน้ายืนยันคำสั่งซื้อแล้วยืนยันว่าส่งค่า price ถูกต้อง แต่พอเจาะลึกไปที่หน้าเพิ่มสินค้าลงตะกร้ากลับพบว่า price ถูกส่งเป็น string ที่มีเครื่องหมายจุลภาคติดมาด้วย เช่น '1,290' แทนที่จะเป็นตัวเลข 1290 ทำให้ระบบไม่สามารถคำนวณรวมค่าได้ถูกต้องตั้งแต่ขั้นตอนนั้น

ปัญหานี้ต่างจาก event schema ที่พูดถึงชื่อ event เพราะที่นี่ปัญหาอยู่ใน 'โครงสร้างข้อมูล' ที่แนบไปกับ event คือ data layer ซึ่งเป็นชั้นที่ tag manager ใช้ดึงค่าไปประมวลผลต่อ ถ้าโครงสร้างไม่ตรงกันระหว่างหน้าต่าง ๆ tag เดียวกันจะทำงานถูกในหน้าหนึ่งและพังในอีกหน้าหนึ่งโดยไม่มี error ใด ๆ เตือน

บทความนี้จะพา audit ความสอดคล้องของ data layer ข้ามหน้า ซึ่งเป็นงานที่ต้องใช้ความละเอียดมากกว่าปกติ เพราะปัญหามักซ่อนอยู่ในรายละเอียดเล็ก ๆ ที่ตาเปล่ามองข้ามง่าย

ทำไม data layer แต่ละหน้าถึงพูดกันคนละภาษา

เว็บไซต์ขนาดกลางถึงใหญ่มักถูกพัฒนาเป็นส่วน ๆ โดยทีมต่างกันหรือเอเจนซี่ต่างช่วงเวลา หน้าแรกอาจทำโดยทีม A เมื่อสองปีก่อน หน้าตะกร้าทำโดยทีม B เมื่อปีที่แล้ว แต่ละทีมมักไม่รู้ว่าทีมก่อนหน้าตั้งโครงสร้าง data layer ไว้แบบไหน จึงเขียนตามความเข้าใจของตัวเอง ผลคือ key ชื่อเดียวกันอาจมีชนิดข้อมูลต่างกัน หรือความหมายเดียวกันถูกตั้งชื่อ key ต่างกันไปเลย

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

วิธี audit โครงสร้าง data layer ข้ามหน้าในเส้นทางลูกค้า

  1. เลือกเส้นทางลูกค้าหลักที่สำคัญที่สุด เช่น หน้าสินค้า หน้าตะกร้า หน้ากรอกข้อมูล หน้ายืนยันคำสั่งซื้อ
  2. เปิดเครื่องมือนักพัฒนาในเบราว์เซอร์ แล้วพิมพ์ dataLayer ในคอนโซลเพื่อดูโครงสร้างข้อมูลดิบของแต่ละหน้า
  3. จดชื่อ key และชนิดข้อมูล (string, number, object) ของฟิลด์สำคัญ เช่น price, item_id, currency ในแต่ละหน้า แล้วนำมาเทียบกันในตารางเดียว
  4. ไฮไลต์จุดที่ key ชื่อต่างกันสำหรับความหมายเดียวกัน หรือชนิดข้อมูลไม่ตรงกัน เพราะจุดเหล่านี้คือรอยรั่วที่ต้องแก้ก่อนที่จะไปแก้ tag ใด ๆ

จุดที่พบบ่อยที่สุด: โครงสร้าง ecommerce object ไม่ตรงตามมาตรฐาน

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

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

ตารางเทียบตัวอย่างที่ควรทำ เพื่อไล่ audit ได้ง่ายขึ้น

ฟิลด์หน้าสินค้า (ตัวอย่างที่พบ)หน้าตะกร้า (ตัวอย่างที่พบ)
pricestring '1,290'number 1290
item_idproduct_idsku
currencyไม่มีฟิลด์นี้THB

ถ้าพบปัญหาหลายจุด ควรแก้จุดไหนก่อน

  • แก้ฟิลด์ที่เกี่ยวกับมูลค่าเงิน (price, value) ก่อนเสมอ เพราะกระทบตัวเลขรายได้ที่ใช้ตัดสินใจเรื่องงบโฆษณาโดยตรง
  • แก้ฟิลด์ที่ใช้ระบุตัวสินค้า (item_id, sku) เป็นลำดับถัดมา เพราะกระทบการวิเคราะห์ว่าสินค้าไหนขายดี
  • ฟิลด์เสริมอย่าง currency หรือ category ที่ไม่มีผลกระทบเร่งด่วน สามารถทยอยแก้ทีหลังได้โดยไม่ต้องรีบ

สรุป

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

  • เปิดคอนโซลเบราว์เซอร์เทียบโครงสร้าง data layer ของแต่ละหน้าในเส้นทางลูกค้า
  • แก้ฟิลด์ที่เกี่ยวกับมูลค่าเงินก่อนเสมอ เพราะกระทบการตัดสินใจเรื่องงบโดยตรง
  • ทำเอกสารมาตรฐาน data layer แชร์ให้ทุกทีมที่พัฒนาเว็บใช้อ้างอิงร่วมกัน

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

data layer กับ event schema ต่างกันยังไง

event schema คือชื่อของ event ที่ถูกยิง ส่วน data layer คือโครงสร้างข้อมูลที่แนบไปกับ event นั้น สองอย่างนี้ต้องสอดคล้องกันทั้งคู่ ถ้าอย่างใดอย่างหนึ่งเพี้ยนก็ทำให้รายงานคลาดเคลื่อนได้เหมือนกัน

จะรู้ได้ยังไงว่า price ที่ส่งเป็น string ทำให้รายงานผิดจริง

ให้ลองเปิด GA4 ecommerce report เทียบมูลค่ารวมที่ระบบคำนวณกับยอดขายจริงจากบัญชี ถ้าตัวเลขต่ำกว่าความจริงอย่างสม่ำเสมอโดยไม่มีเหตุผลอื่น ควรสงสัยชนิดข้อมูลของฟิลด์ price เป็นอันดับต้น

ต้องเช็กทุกหน้าของเว็บไซต์เลยไหม

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

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

ใช่ เพราะแต่ละระบบมักมีทีมพัฒนาต่างกันและไม่ได้สื่อสารกันเรื่องโครงสร้างข้อมูล ยิ่งเว็บมีหลายระบบต่อกัน ยิ่งต้องเข้มงวดกับการตกลงมาตรฐาน data layer ร่วมกันมากขึ้น

ควรทำเอกสารมาตรฐาน data layer ไว้ไหม

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

แก้โครงสร้าง data layer แล้วต้องแก้ tag ทั้งหมดตามด้วยไหม

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

อยากวัดผลโฆษณาเข้า LINE ให้ถึงยอดขาย?

ทดลองใช้ linli ฟรี 14 วัน ไม่ต้องใช้บัตรเครดิต

เริ่มทดลองใช้ฟรี

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

คู่มือเริ่มต้น LINE Conversion Tracking ในไทย ตั้งแต่ติดตั้งจนวัดยอดขายจริง
คู่มือเริ่มต้น LINE Conversion Tracking ในไทย ตั้งแต่ติดตั้งจนวัดยอดขายจริง
สำหรับคนที่เพิ่งเริ่มทำ LINE Conversion Tracking บทความนี้รวมทุกขั้นตอนตั้งแต่นิยาม Funnel ติดตั้งระบบ เชื่อมแพลตฟอร์ม จนถึงวางแผนช่วงทดลองใช้ให้ตัดสินใจได้จริงก่อนหมด Trial
LINE Tracking กับ PDPA ธุรกิจไทยควรเก็บข้อมูลอย่างไรให้เหมาะสม
LINE Tracking กับ PDPA ธุรกิจไทยควรเก็บข้อมูลอย่างไรให้เหมาะสม
ระบบ Tracking ไม่ได้ทำให้ธุรกิจผ่าน PDPA โดยอัตโนมัติ บทความนี้อธิบายว่าธุรกิจยังต้องรับผิดชอบอะไรเองบ้าง ตั้งแต่ Legal Basis ไปจนถึงการจำกัดข้อมูลที่ส่งไปแพลตฟอร์มโฆษณา
วิธีติดตั้ง Tracking Link และ Tracking Script สำหรับปุ่ม LINE บนเว็บไซต์
วิธีติดตั้ง Tracking Link และ Tracking Script สำหรับปุ่ม LINE บนเว็บไซต์
ก่อนติดตั้ง Tracking Link หรือ Script บนปุ่ม LINE ต้องเตรียมอะไรบ้าง บทความนี้เล่าขั้นตอนจริงตั้งแต่สิทธิ์เข้าถึงเว็บ ไปจนถึง Test Journey ก่อนเปิดใช้งาน ไม่ใช่แค่ก็อปโค้ดไปวาง