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

อ่านตัวเลข GA4 ผิดเพราะสับสนระหว่างระดับ Session กับระดับ User

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

สรุปสั้น ๆ

GA4 ผูกทุกมิติและทุกเมตริกไว้กับระดับใดระดับหนึ่งใน event, session และ user โดย First user source จำช่องทางที่พาคนเข้ามาครั้งแรกไปตลอด ส่วน Session source จำเฉพาะเซสชันที่เหตุการณ์เกิดขึ้น ถ้าอยากรู้ว่าการเข้าเว็บรอบไหนทำให้คนกดปุ่ม LINE ให้ใช้ระดับ Session แต่ถ้าอยากรู้ว่าแอดตัวไหนพาคนใหม่เข้ามา ให้ใช้ระดับ User การหยิบผิดระดับทำให้เครดิตย้ายไปอยู่คนละช่องทางได้ทั้งก้อน

ลองนึกภาพเช้าวันจันทร์ตอนประชุมสรุปผลเดือน เจ้าของร้านเปิดรายงาน GA4 หน้า User acquisition แล้วชี้ว่า ‘Meta พาคนกดปุ่ม LINE มา 310 ครั้ง Google แค่ 90 ทำไมเรายังจ่ายให้ Google เท่าเดิม’ มีเดียบายเออร์เปิดอีกหน้าหนึ่งของ GA4 พร้อมกัน แล้วเจอว่า Google พาคนกดปุ่ม LINE มา 260 ครั้ง ห่างจาก Meta ไม่ถึงเท่าตัว สองหน้าจอนี้มาจากพร็อพเพอร์ตี้เดียวกัน ข้อมูลชุดเดียวกัน และไม่มีใครกรอกเลขผิด

ความต่างมาจากระดับ (scope) ของมิติที่แต่ละหน้าใช้ หน้าแรกใช้ First user source / medium ซึ่งเป็นระดับผู้ใช้ หน้าที่สองใช้ Session source / medium ซึ่งเป็นระดับเซสชัน ทั้งสองถูกต้อง แต่ตอบคนละคำถาม และคนในห้องประชุมส่วนใหญ่ไม่รู้ตัวว่ากำลังเถียงกันคนละเรื่อง

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

GA4 แบ่งข้อมูลเป็นหลายชั้น และทุกตัวเลขอยู่ชั้นใดชั้นหนึ่ง

เวลาเปิดรายงาน เรามักมองมิติกับเมตริกเป็นของที่ใช้ปนกันได้ แต่ GA4 ไม่ได้เก็บแบบนั้น มันเก็บเป็นชั้น ๆ และแต่ละชั้นนับหน่วยไม่เหมือนกัน การรู้ว่าตัวเลขที่เราชี้อยู่เป็นหน่วยอะไรคือครึ่งหนึ่งของการอ่านให้ถูก ส่วนระดับ Item ของอีคอมเมิร์ซมีกับดักเฉพาะตัวและเขียนไว้ใน บทความเรื่อง item scope แล้ว

  • Event นับทุกครั้งที่เหตุการณ์เกิด คนเดียวกดปุ่ม LINE สามครั้งในหน้าเดียว event line_click จะได้ 3
  • Session คือช่วงที่คนอยู่บนเว็บต่อเนื่องกัน ค่าตั้งต้นหมดอายุเมื่อไม่มีกิจกรรม 30 นาที แหล่งที่มา (source / medium / campaign) ของเซสชันถูกกำหนดตอนเซสชันเริ่ม
  • User คือเบราว์เซอร์หรืออุปกรณ์ที่ GA4 จำได้ผ่าน client_id ในคุกกี้ มือถือกับโน้ตบุ๊กของคนเดียวกันจึงเป็นสองผู้ใช้ ยกเว้นคุณส่ง User-ID เข้าไปด้วย

คนเดียวกันคลิกแอดสองรอบ ได้เครดิตสองแบบที่ไม่เท่ากัน

ลองไล่เส้นทางของลูกค้าหนึ่งคนที่ซื้อกระเป๋าผ้า วันแรกเขาเห็นแอด Meta คลิกเข้าเว็บ ดูสินค้าสองหน้าแล้วปิดไป วันที่ห้าเขาพิมพ์ชื่อร้านใน Google เจอโฆษณา Search ของร้านเอง คลิกเข้ามาแล้วกดปุ่ม LINE ทันที ตารางข้างล่างคือสิ่งที่ GA4 บันทึกไว้

เหตุการณ์Session source / mediumFirst user source / medium
วันที่ 1 คลิกแอด Meta เข้าเว็บfacebook / paid_socialfacebook / paid_social
วันที่ 5 คลิกโฆษณา Search ชื่อร้านgoogle / cpcfacebook / paid_social
วันที่ 5 กดปุ่ม LINE (line_click)google / cpcfacebook / paid_social

รายงานแต่ละหน้าหยิบระดับไม่เหมือนกัน

จากตารางเดียวกัน line_click ครั้งนี้จะไปอยู่ที่ google / cpc ถ้าอ่านจากรายงาน Traffic acquisition ซึ่งใช้ระดับ Session และไปอยู่ที่ facebook / paid_social ถ้าอ่านจากรายงาน User acquisition ซึ่งใช้ระดับ User ไม่มีหน้าไหนผิด หน้าแรกบอกว่าการเข้าเว็บรอบที่ทำให้เขากดมาจาก Google หน้าที่สองบอกว่าคนนี้ถูกพาเข้าร้านครั้งแรกโดย Meta ปัญหาจริงคือมีคนตัดงบจากตัวเลขที่ตอบผิดคำถาม ส่วนเมนู Advertising > Attribution กระจายเครดิตตามโมเดลของมันเอง จึงไม่ควรเอามาเทียบแถวต่อแถวกับสองหน้านี้

อาการที่เจอบ่อยเมื่อเมตริกต่างระดับถูกเอามาปนกัน

  • Users รวมกันเกินยอดรวม ถ้าแยกตาราง Users ด้วย Session source คนที่เข้ามาผ่านสองช่องทางจะอยู่ในทั้งสองแถว ผลรวมของแถวจึงมากกว่าตัวเลข Total ด้านบน ส่วน Sessions ไม่เป็นแบบนี้เพราะหนึ่งเซสชันมีแหล่งเดียว
  • Key event rate มีสองตัวที่หน่วยต่างกัน Session key event rate คือสัดส่วนเซสชันที่มี key event อย่างน้อยหนึ่งครั้ง ส่วน User key event rate คือสัดส่วนผู้ใช้ ถ้าคนกดปุ่ม LINE สามครั้งในเซสชันเดียว Key events เท่ากับ 3 แต่ในอัตราระดับ Session นับเป็น 1 เซสชัน
  • New users สูงกว่าความจริง เพราะคนเดียวที่เปลี่ยนเครื่องหรือล้างคุกกี้จะถูกนับเป็นผู้ใช้ใหม่ ซึ่งทำให้ First user source ของเขาถูกรีเซ็ตเป็นช่องทางที่เขากลับมา และช่องนั้นมักเป็น direct

เลือกระดับจากคำถามที่ต้องตอบ ไม่ใช่จากรายงานที่เปิดอยู่

ผมเริ่มจากคำถามเสมอ แล้วค่อยหามิติที่ตอบได้ จะได้ไม่เปิดรายงานแรกที่เจอแล้วเชื่อมัน

คำถามที่ต้องตอบระดับมิติหรือรายงานที่ใช้
แอดไหนพาคนใหม่เข้ามาเป็นครั้งแรกUserFirst user source / medium / campaign, รายงาน User acquisition
การเข้าเว็บรอบไหนทำให้คนกดปุ่ม LINESessionSession source / medium / campaign, รายงาน Traffic acquisition
ช่องทางไหนดึงคนที่เคยเห็นแล้วกลับมากดSession เทียบกับ UserExploration ที่วาง Session source ไว้ข้าง First user source
ปุ่มนี้ถูกกดกี่ครั้งEventEvent count ของ line_click

ใช้ Session เป็นค่าตั้งต้น แล้วเก็บทั้งสองระดับไว้กับลีด

ถ้าต้องเลือกค่าตั้งต้นให้ทีมซื้อสื่อ ผมเลือกระดับ Session เพราะการตัดสินใจเรื่องงบรายวันถามว่า ‘ตอนนี้แอดตัวไหนทำให้คนกดอยู่’ ไม่ได้ถามว่าใครเปิดประตูให้เขาเมื่อสัปดาห์ก่อน ส่วน First user ผมเก็บเป็นรายงานแยกไว้ดูตอนประเมินว่าช่องไหนสร้างฐานคนใหม่ได้ และไม่เอาสองระดับมาอยู่ในตารางเดียวกัน

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

  1. ตอนคนกดปุ่ม LINE ให้อ่าน UTM ของเซสชันนั้นแล้วแนบไปกับลิงก์หรือรหัสอ้างอิง ชุดนี้คือ last touch ก่อนทัก
  2. ที่การเข้าเว็บครั้งแรก เก็บ UTM ลงคุกกี้ของโดเมนตัวเอง (first-party) โดยเขียนทับเฉพาะเมื่อยังไม่มีค่า ชุดนี้คือ first touch
  3. แนบทั้งสองชุดไว้กับรหัสที่ลูกค้าส่งเข้าแชทหรือกับลีดในระบบ วิธีเก็บ UTM ก่อนเข้า LINE อธิบายไว้ใน บทความเรื่อง GTM เก็บ UTM
  4. ตอนปิดการขาย ให้ยอดเงินวิ่งกลับไปหาแหล่งที่ติดอยู่กับลีดนั้น แล้วรายงานสองมุมคือ ‘ใครพาเข้ามา’ และ ‘ใครทำให้ทัก’ จากฐานข้อมูลเดียวกัน

ตรวจแดชบอร์ดเดิมให้เสร็จในสิบนาที

  1. เปิดทุกชาร์ตที่มีคำว่า ที่มา ช่องทาง หรือ source แล้วจดว่ามิติเป็นตัวไหน First user, Session หรือไม่มีคำนำหน้า
  2. ใส่ระดับลงในชื่อชาร์ต เช่น ‘กดปุ่ม LINE ตาม Session source’ คนที่เปิดทีหลังจะเลิกเดาเอง ถ้าใน Looker Studio มีตารางที่เอาเมตริกระดับ User ไปปนกับมิติระดับ Session ให้แยกเป็นสองตาราง
  3. ตรวจ custom dimension ที่ทีมเพิ่มเองว่าลงทะเบียนเป็นระดับ Event หรือ User ให้ตรงกับที่ตั้งใจ วิธีตั้งอยู่ใน บทความเรื่อง custom dimension แหล่งที่มา

สรุป

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

เมื่อทั้ง first touch และ last touch ติดอยู่กับลีดตั้งแต่ก่อนทัก ยอดขายที่ปิดทีหลังจะตอบได้ทั้งสองคำถามโดยไม่ต้องเลือกฝั่ง

  • ทุกมิติและเมตริกใน GA4 อยู่ในระดับ Event, Session หรือ User อย่างใดอย่างหนึ่ง
  • รายงานตัดสินงบรายวันใช้ Session ส่วนรายงานฐานคนใหม่ใช้ First user และไม่ปนกันในตารางเดียว
  • ทั้งสองระดับหยุดที่การกดปุ่ม LINE ยอดเงินในแชทต้องผูกด้วยข้อมูลที่เก็บเอง
  • เก็บ first touch และ last touch ไว้กับลีดทุกราย

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

Users ในรายงาน GA4 กับ Total users ต่างกันยังไง

เมตริก Users ในรายงานมาตรฐานคือ Active users ซึ่งนับคนที่มีเซสชันแบบ engaged ส่วน Total users นับทุกคนที่ยิง event ใดก็ได้ ดังนั้น Total users มากกว่าหรือเท่ากับ Active users เสมอ ถ้าสองตัวเลขห่างกันมาก ให้สงสัยว่ามีทราฟฟิกที่เข้ามาแล้วไม่ทำอะไรเลย

ทำไมผลรวม Users ในตารางมากกว่า Total ด้านบน

เกิดเมื่อแยกด้วยมิติระดับ Session เช่น Session source คนเดียวที่เข้ามาผ่านสองช่องทางจะอยู่ในทั้งสองแถว ส่วน Total นับคนนั้นครั้งเดียว ถือว่าเป็นพฤติกรรมปกติ ไม่ได้แปลว่าข้อมูลเสีย

First user source เปลี่ยนได้ไหมถ้าลูกค้ากลับมาผ่านช่องอื่น

ไม่เปลี่ยน ค่านี้ติดกับผู้ใช้ตลอดอายุที่ GA4 จำเขาได้ แต่ถ้าเขาล้างคุกกี้หรือเปลี่ยนเครื่อง GA4 จะมองเป็นผู้ใช้ใหม่และตั้ง First user source ใหม่จากช่องทางที่เขากลับมา

Session ใน GA4 หมดอายุกี่นาที ปรับได้ไหม

ค่าตั้งต้นคือไม่มีกิจกรรม 30 นาที ปรับได้ที่ Admin > Data streams > Configure tag settings > Adjust session timeout ตั้งได้ตั้งแต่ 5 นาทีไปจนเกือบ 8 ชั่วโมง ถ้าขยายให้ยาว จำนวน Sessions จะลดลงและอัตราต่อเซสชันจะเปลี่ยนตาม จึงควรจดวันที่เปลี่ยนไว้

line_click สามครั้งในเซสชันเดียวนับเป็นกี่ Key events

นับเป็น 3 ใน Key events แต่ในอัตราแปลงระดับ Session นับเป็น 1 เซสชันที่มี key event ถ้าอยากให้นับครั้งเดียวต่อเซสชัน ให้ตั้งค่าการนับของ key event ให้เป็นหนึ่งครั้งต่อเซสชัน หรือเลือกอ่านด้วยเมตริกระดับ Session ตั้งแต่ต้น

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

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

ติดต่อทีม Sales

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

แท็กยิงไม่ทันหน้าแรก ทำให้ค่า UTM หายตั้งแต่ก้าวแรกของลูกค้า

แท็กยิงไม่ทันหน้าแรก ทำให้ค่า UTM หายตั้งแต่ก้าวแรกของลูกค้า

แท็กที่ยิงได้ปกติใน Preview ยังเสียค่า UTM ได้ถ้ามันแพ้เวลากับการล้าง URL การรอ consent หรือการเปลี่ยนหน้า นี่คือวิธีทำให้เกิดซ้ำและวิธีเก็บค่าให้ทัน
เว็บแบบหน้าเดียวเปลี่ยนเนื้อหาแล้วแท็กไม่ยิงซ้ำ ตั้ง Trigger ยังไง

เว็บแบบหน้าเดียวเปลี่ยนเนื้อหาแล้วแท็กไม่ยิงซ้ำ ตั้ง Trigger ยังไง

เว็บที่เปลี่ยนหน้าโดยไม่โหลดใหม่ทำให้ Page View trigger ของ GTM ยิงแค่ครั้งแรก วิธีเลือกระหว่าง History Change กับ dataLayer และกับดักยิงซ้ำที่ตามมา
ให้เซิร์ฟเวอร์เป็นคนเขียนคุกกี้แทน JavaScript ต่างกันตรงไหนและได้อะไรกลับมา

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

คุกกี้ที่เซิร์ฟเวอร์เขียนผ่านหัว Set-Cookie อยู่ได้นานกว่าและสคริปต์อ่านไม่ได้ บทความนี้เทียบสองวิธี วิธีตั้งค่า และขอบเขตที่มันช่วยเก็บรหัสคลิกไม่ได้