วิธีตัดทราฟฟิกของตัวเองออกจากเว็บแอนะลิติกส์ — เมื่อ “ทราฟฟิกต่างประเทศเริ่มโตแล้ว!” แต่คนอ่านที่ขยันที่สุดในภาษาหลักคือตัวเราเอง

วิธีใช้เครื่องมืออ่าน

ฟังจะอ่านบทความออกเสียง อ่านเร็วแสดงวลีทีละช่วงตามความเร็วที่เลือก ฝึกภาษาใช้เปรียบเทียบบทความฉบับแปลที่มีอยู่ บันทึกจะเก็บบุ๊กมาร์กในเบราว์เซอร์นี้ และเปิดอีกครั้งได้จากรายการที่บันทึกในเครื่องเล่น

แชร์บทความนี้

แชร์บทความนี้

โฆษณา
โฆษณา

เว็บหลายภาษามักมีช่วงที่ตัวเลขดูแปลกมาก

“ทราฟฟิกภาษาหลักลดลงหรือเปล่า?” “ทำไมภาษาอังกฤษ จีน และภาษาอื่นกลับเพิ่มขึ้น?” “เดี๋ยวนะ…ยอดภาษาหลักมีการเปิดเว็บของเราเองปนอยู่ไหม?”

ทั้งสามอย่างเกิดขึ้นพร้อมกันได้

ทราฟฟิกภาษาต่างประเทศอาจโตจริง external landing ของภาษาหลักอาจอ่อนลง และคนดูแลเว็บก็เปิดบทความใหม่ เช็กลิงก์ กลับหน้าแรก รีเฟรชหลังแก้ไข จนกลายเป็น “ผู้อ่านประจำ” ของภาษาหลัก

ผู้อ่านคนนั้นก็คือเจ้าของเว็บเอง

บทความนี้อธิบายวิธีตัด browser ของตัวเองออกจาก analytics, ความต่างระหว่าง localStorage กับ Cookie, ทำไม “เปิดหน้าแล้ว” ไม่ได้แปลว่า “ลงทะเบียน owner แล้ว”, ข้อมูลเก่าจะเป็นอย่างไร และควรอ่านการเติบโตของเว็บหลายภาษาอย่างไร

1. อย่าดูแค่ pageview รวม ให้แยก external landing กับการเดินภายในเว็บก่อน

เมื่อเจ้าของเว็บตรวจหน้าภาษาหลักบ่อย pageview รวมจะสูงเกินจริงได้ง่าย

พฤติกรรมที่ปนเข้ามา เช่น

  • เปิดบทความใหม่โดยตรง
  • เข้าเรื่องจากหน้าแรก
  • คลิกลิงก์บทความที่เกี่ยวข้อง
  • ตรวจทั้งคอมและมือถือ
  • รีเฟรชหลายครั้งหลัง deploy
  • กลับมาตรวจ production ซ้ำอีก

ผู้อ่านทั่วไปอาจอ่านหนึ่งหน้าแล้วออก แต่ผู้ดูแลเว็บทำหน้าที่ทั้ง editor, QA, reader และ monitoring พร้อมกัน

ดังนั้นเว็บหลายภาษาควรแยกอย่างน้อย

  • external landing views
  • internal referred views

ถ้าภาษาต่างประเทศโตจาก external landing แต่ภาษาหลักมี internal navigation สูง การที่ภาษาหลักดูแรงมากอาจเป็นเพราะผู้ดูแลเดินอยู่ใน UI ภาษาหลักบ่อย

2. “เปิดแล้ว ลงทะเบียนหรือยัง?” — ถ้าไม่มีโค้ดเขียนค่า ก็ยัง

สมมติว่าคุณตัดสินใจให้ browser นี้เป็น owner แล้วเปิดเว็บไซต์หนึ่งครั้ง

ระบบจะลงทะเบียนให้อัตโนมัติไหม?

ไม่

browser ไม่ได้คิดเองว่า

“คนนี้ดูเหมือนเจ้าของเว็บ ต่อไปไม่ต้องนับแล้ว”

ต้องมีการบันทึกสถานะจริง เช่น

  • owner flag ใน localStorage
  • owner flag ใน Cookie
  • การตั้งค่าจากบัญชี admin ที่ล็อกอินอยู่
  • ป้าย internal traffic ที่ฝั่ง server

การเปิดหน้าเว็บคือการเข้าชม การลงทะเบียน owner คือการเปลี่ยน state

ถ้าไม่มีโค้ดเขียน state ก็ไม่มีอะไรถูกลงทะเบียน

3. localStorage หรือ Cookie แบบไหนเหมาะกว่า?

สองวิธีที่ใช้บ่อยคือ localStorage และ Cookie

localStorage

localStorage เก็บข้อมูลตาม origin และอยู่ต่อได้ข้าม browser session ปกติ

ตัวอย่าง:

localStorage.setItem("analytics_owner", "1");

ถ้า analytics ส่งจากฝั่ง browser ก็ตรวจได้ก่อนส่ง:

if (localStorage.getItem("analytics_owner") === "1") {
  return;
}

ข้อดีคือทำง่าย

ข้อจำกัดคือ server หรือ Edge Worker มองไม่เห็น localStorage ตอน HTTP request แรกเข้ามา

Cookie

Cookie สามารถถูกส่งไปพร้อม HTTP request ที่ตรงเงื่อนไข

ตัวอย่าง:

document.cookie =
  "analytics_owner=1; Path=/; Max-Age=31536000; SameSite=Lax; Secure";

server หรือ Edge Worker ตรวจ Cookie ก่อนเพิ่ม counter ได้

วิธีที่เรียบร้อยกว่าคือให้หน้า admin ที่ล็อกอินแล้วหรือ route ส่วนตัวส่ง Set-Cookie กลับมา หาก JavaScript ไม่จำเป็นต้องอ่านค่า ก็พิจารณา HttpOnly ได้

แต่ flag นี้มีไว้เพื่อ “ตัดออกจาก analytics” เท่านั้น

อย่าใช้ localStorage หรือ Cookie ที่ผู้ใช้เขียนเองได้เป็นระบบยืนยันตัวตนหรือสิทธิ์ เพราะจะเหมือนใครเขียนป้ายตัวเองว่า “ผู้บริหาร” แล้วเข้าออฟฟิศผู้บริหารได้ทันที

4. นับที่ server หรือ Edge ใช้ Cookie; ส่ง event จาก browser อย่างเดียวใช้ localStorage ได้

เกณฑ์เลือกขึ้นอยู่กับจุดที่วัด

JavaScript ใน browser เป็นคนส่ง event

localStorage มักเพียงพอ

ตรวจ owner ก่อนส่ง event

CDN, Edge Worker, server หรือ access log เป็นคนเพิ่ม PV

Cookie เหมาะกว่า

server รับ request ก่อน JavaScript ใน browser ทำงาน

localStorage อยู่ใน browser เท่านั้น Cookie มากับ request

เป้าหมายเหมือนกัน แต่จุดวัดต่างกัน

5. เว็บส่วนตัวใช้การตั้งค่าครั้งเดียวก็พอ

บริษัทใหญ่ใช้ออฟฟิศ IP, account หรือ device management ได้

เว็บที่ดูแลคนเดียวไม่จำเป็นต้องซับซ้อน

  1. เปิดหน้าตั้งค่าส่วนตัว
  2. ตั้ง owner Cookie ที่มีวันหมดอายุ
  3. request ที่มี Cookie นี้ไม่เข้าสถิติ
  4. มีวิธีลบสถานะ owner

จำไว้ว่ามันผูกกับ browser

คอม มือถือ browser อื่น profile อื่น และโหมดไม่ระบุตัวตนเป็นคนละ environment

ตั้งที่หนึ่งไม่ได้ทำให้ “ตัวคุณทุกเวอร์ชัน” หายไปจากอินเทอร์เน็ต

6. ตัวเลขเก่าไม่ลดเอง

ถ้าเริ่มตัด owner วันนี้ PV เมื่อวานจะไม่หายไป

เป้าหมายที่ใช้งานจริงมักเป็น

“จากนี้ไปไม่เอาการเข้าชมของฉันมาปน”

การแก้อดีตต้อง reprocess raw log หรือสร้าง aggregate ใหม่

สำหรับเว็บช่วงเริ่มต้น การเสียเวลาหลายชั่วโมงเพื่อแก้การเปิดเองไม่กี่สิบครั้งมักไม่คุ้ม

กำหนดวันแบ่งแล้วเดินหน้าต่อก็พอ

7. internal traffic filter ของ GA4 กับ Cookie ที่ทำเองไม่ใช่สิ่งเดียวกัน

Google Analytics 4 มีวิธีอย่างเป็นทางการในการกำหนด internal traffic ด้วย IP address และตัดออกด้วย data filter

เหมาะกับเครือข่ายออฟฟิศที่คงที่

แต่ผู้ดูแลเว็บคนเดียวอาจสลับระหว่าง Wi-Fi บ้าน, mobile data, การเดินทาง, tethering และ VPN ทำให้การใช้ IP อย่างเดียวลำบาก

ถ้าเป็น first-party analytics ที่ทำเอง Cookie หรือสถานะ login อาจสะดวกกว่า

แต่สองอย่างนี้เป็นคนละระบบ

ใช้ GA4 ก็ทำตามวิธีของ GA4 และทดสอบ filter ก่อน ใช้ระบบเองก็กรองที่จุดเก็บข้อมูลของระบบเอง

8. ดูการเติบโตหลายภาษาจาก external landing หลังตัด owner

การเปิดเว็บของตัวเองทำให้การเทียบภาษาเพี้ยนได้

สมมติยอดรวมเป็น

ภาษาหลัก 70
ภาษาต่างประเทศ 30

แต่ใน 70 มี

  • 20 ครั้งจากการตรวจของเจ้าของ
  • 20 ครั้งจาก internal navigation
  • 30 ครั้งจาก external landing

ขณะที่ 30 ของภาษาต่างประเทศแทบทั้งหมดเป็น external landing

ความหมายของตัวเลขเปลี่ยนทันที

ถ้าจะวัด discovery และ demand ให้เทียบ

external landing ของภาษาหลัก
กับ
external landing ของภาษาต่างประเทศ

และต้องแยก daily data จาก rolling window ด้วย

ยอด 7 วันอาจลดเพียงเพราะวันเก่าที่สูงหลุดออกจากหน้าต่าง ไม่ได้แปลว่าวันนี้คนอ่านหาย

9. ขั้นตอนทดสอบขั้นต่ำ

อย่าจบที่ “น่าจะใช้ได้แล้ว”

ตรวจอย่างน้อย:

  1. owner flag ถูกเก็บจริงหรือไม่
  2. เปิดหน้าปกติหนึ่งครั้ง
  3. event ไม่ถูกบันทึก หรือถูกทิ้งในฐานะ owner
  4. browser อื่นยังถูกนับตามปกติ
  5. ลบ flag แล้วการนับกลับมา

Developer tools ของ browser ตรวจ localStorage และ Cookie ได้

แค่เปิดหน้าตั้งค่าไม่ใช่หลักฐาน

คอมพิวเตอร์ทำตามโค้ดเก่งมาก แต่เดาใจคนไม่เก่งเลย

10. สรุป — ก่อนฉลองเว็บไปต่างประเทศ เอาตัวเองออกจากกลุ่มตัวอย่างก่อน

การเห็นผู้อ่านภาษาอื่นเริ่มเข้ามาเป็นเรื่องดี

แต่ภาษาหลักมักมีผู้เยี่ยมชมที่ภักดีที่สุดคนหนึ่งอยู่แล้ว นั่นคือเจ้าของเว็บ

ดังนั้น:

  • แยก external landing กับ internal navigation
  • ทำเครื่องหมาย owner browser อย่างชัดเจน
  • event ฝั่ง browser ใช้ localStorage
  • การนับฝั่ง server หรือ Edge ใช้ Cookie
  • แค่เปิดหน้าไม่ถือว่าลงทะเบียน
  • ไม่ต้องแก้ข้อมูลเก่าย้อนหลังถ้าไม่คุ้ม
  • วัด demand หลายภาษาจาก external landing หลังตัด owner

ถ้าผู้อ่านต่างประเทศกำลังมา นั่นยอดเยี่ยม

แค่ตรวจให้แน่ใจก่อนว่าคะแนนของทีมเจ้าบ้านไม่ได้ถูกเจ้าของเว็บกดเพิ่มเองร้อยครั้ง


วันนี้อ่านเรื่องนี้

แต่ละบทความตอบคำถามที่ผู้อ่านบทความนี้มักสงสัยต่อ

ดูบทความทั้งหมดบทความเรื่อง เทคโนโลยี เพิ่มเติม

แชร์บทความนี้

หากบทความนี้มีประโยชน์ คุณสามารถสนับสนุนเว็บไซต์ได้ สนับสนุน

โฆษณา

อีกสักเรื่องไหม มีอะไรสนุก ๆ บ้าง

อ่านจบแล้วก็ลองต่อเลย: เรื่องใกล้เคียงไม่กี่เรื่อง และเรื่องที่ต่างไปเลยแต่สนุก

  1. ฮิโซกะ โรคจิตขนาดนี้ แต่ทำไมเป็น "รุ่นพี่ใจดี" ได้ขนาดนี้ ภาพโค้ชที่จริยธรรมพังจากอาร์กเกาะ Greed Island
  2. กระป๋อง 9% ขนาด 500 มล. นับเป็น "หนึ่งกระป๋อง" จริงไหม เทียบเท่าเบียร์ราว 2.6 กระป๋อง
  3. ทำไม "ในฐานะสามี" "ในฐานะแฟน" "ในฐานะครอบครัว" ถึงเป็นต้นเหตุของการทะเลาะกัน

หาบทความอื่น

บทความทั้งหมด

Mendoi-chan

ผู้ดูแลเว็บไซต์

Mendoi-chan

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

โฆษณา

บทความล่าสุด

  1. 18.6 Sec Bazooka กับ Botirist เป็นคนกลุ่มเดียวกันหรือไม่? เรื่อง “สิบปีต่อมา” เป็นแค่มุก
  2. 2คำตอบข้อ 24 ใน Migiwa Hospital
  3. 3เสื้อแห้งแล้ว ทำไมยังเหม็น?
  4. 4ทำไมสร้างอะไรด้วย AI ถึงสนุกกว่าการเล่นเกมได้?
  5. 5ทำไมคลิปวิ่งท่าแปลกในสนามบาสถึงมีเพลงเหมือนฉากคว้าแชมป์?
โฆษณา