เพื่อให้ Google Analytics ระบุได้ว่า Hit ที่แตกต่างกัน 2 รายการเป็นของผู้ใช้เดียวกัน คุณจึงต้องส่งตัวระบุที่ไม่ซ้ำซึ่งเชื่อมโยงกับผู้ใช้รายนั้นพร้อมกับ Hit แต่ละรายการ
ไลบรารี analytics.js ดำเนินการนี้ได้ผ่านทางช่องรหัสไคลเอ็นต์ ซึ่งเป็นสตริงที่สร้างขึ้นแบบสุ่มและไม่ซ้ำกัน โดยจะจัดเก็บไว้ในคุกกี้ของเบราว์เซอร์ การเข้าชมเว็บไซต์เดียวกันในภายหลังจึงเชื่อมโยงกับผู้ใช้รายเดียวกันได้
โดยค่าเริ่มต้น analytics.js ใช้คุกกี้ของบุคคลที่หนึ่งรายการเดียวชื่อ _ga
เพื่อจัดเก็บรหัสไคลเอ็นต์ แต่คุณสามารถปรับแต่งชื่อ โดเมน และเวลาหมดอายุของคุกกี้ได้ คุกกี้อื่นๆ ที่ analytics.js สร้างขึ้น ได้แก่ _gid
, AMP_TOKEN
และ _gac_<property-id>
คุกกี้เหล่านี้จะจัดเก็บรหัสอื่นๆ ที่สร้างขึ้นมา
แบบสุ่มและข้อมูลแคมเปญเกี่ยวกับผู้ใช้รายนั้น
การใช้คุกกี้ทำให้ analytics.js ระบุผู้ใช้ที่ไม่ซ้ำในเซสชันการท่องเว็บได้ แต่จะระบุผู้ใช้ที่ไม่ซ้ำในเบราว์เซอร์หรืออุปกรณ์ต่างๆ ไม่ได้ หากเว็บไซต์มีระบบการตรวจสอบสิทธิ์ของตัวเอง คุณอาจใช้ฟีเจอร์ User ID นอกเหนือจาก Client-ID เพื่อระบุผู้ใช้ได้แม่นยำขึ้นในอุปกรณ์ทั้งหมดที่ใช้ในการเข้าถึงเว็บไซต์ของคุณ
คู่มือนี้อธิบายวิธีปรับแต่งการตั้งค่าคุกกี้และวิธีตั้งค่าช่องรหัสผู้ใช้เพื่อให้วัดกิจกรรมของผู้ใช้ในเซสชันต่างๆ ได้แม่นยํายิ่งขึ้น
การกำหนดการตั้งค่าช่องคุกกี้
ตารางต่อไปนี้แสดงค่าในช่องคุกกี้เริ่มต้นที่ analytics.js ใช้
ชื่อช่อง | ประเภทค่า | ค่าเริ่มต้น |
---|---|---|
cookieName |
ข้อความ | _ga |
cookieDomain |
ข้อความ |
ผลลัพธ์ของนิพจน์ JavaScript ต่อไปนี้document.location.hostname
|
cookieExpires |
จำนวนเต็ม | 63072000 (2 ปีในหน่วยวินาที) |
cookieUpdate |
boolean |
true
|
cookieFlags |
ข้อความ |
|
หากต้องการแก้ไขค่าเหล่านี้ คุณระบุค่าได้ใน fieldObject
ซึ่งส่งผ่านคำสั่ง create
เช่น
ga('create', 'UA-XXXXX-Y', {
'cookieName': 'gaCookie',
'cookieDomain': 'blog.example.co.uk',
'cookieExpires': 60 * 60 * 24 * 28 // Time in seconds.
'cookieUpdate': 'false',
'cookieFlags': 'SameSite=None; Secure',
});
ช่องคุกกี้ที่มักจะตั้งค่ามากที่สุดคือ cookieDomain
ดังนั้น คำสั่ง create
จึงยอมรับช่อง cookieDomain
เป็นพารามิเตอร์ที่ 3 ที่ไม่บังคับเพื่อให้ความสะดวกดังนี้
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
การกำหนดค่าโดเมนคุกกี้อัตโนมัติ
แท็ก Google Analytics ที่แนะนำจะกำหนดสตริง 'auto'
สำหรับช่อง cookieDomain
ดังนี้
ga('create', 'UA-XXXXX-Y', 'auto');
การระบุ 'auto'
เป็น cookieDomain
จะเปิดใช้การกำหนดค่าโดเมนของคุกกี้อัตโนมัติ ซึ่งจะบอกให้ analytics.js ระบุโดเมนคุกกี้ที่ควรใช้โดยอัตโนมัติ
การกำหนดค่าโดเมนของคุกกี้อัตโนมัติจะตั้งค่าคุกกี้ _ga
ในโดเมนระดับสูงสุดที่คุกกี้นั้นทำได้ เช่น หากที่อยู่เว็บไซต์คือ blog.example.co.uk
analytics.js จะตั้งค่าโดเมนคุกกี้เป็น .example.co.uk
นอกจากนี้ หาก analytics.js ตรวจพบว่าคุณกําลังเรียกใช้เซิร์ฟเวอร์ในเครื่อง (เช่น localhost
) ระบบจะตั้งค่า cookieDomain
เป็น 'none'
โดยอัตโนมัติ
การหมดอายุของคุกกี้
ทุกครั้งที่มีการส่ง Hit ไปยัง Google Analytics ระบบจะอัปเดตเวลาหมดอายุของคุกกี้เป็นเวลาปัจจุบันบวกกับค่าของช่อง cookieExpires
ซึ่งหมายความว่าหากคุณใช้เวลา cookieExpires
ตามค่าเริ่มต้น 2 ปี และผู้ใช้เข้าชมเว็บไซต์ทุกเดือน คุกกี้ของผู้ใช้จะไม่มีวันหมดอายุ
หากคุณตั้งเวลา cookieExpires
เป็น 0
(ศูนย์) วินาที คุกกี้จะเปลี่ยนเป็นคุกกี้ตามเซสชัน และจะหมดอายุทันทีที่เซสชันของเบราว์เซอร์ปัจจุบันสิ้นสุดลง
การอัปเดตของคุกกี้
เมื่อตั้งค่า cookieUpdate
เป็น true
(ค่าเริ่มต้น) analytics.js จะอัปเดตคุกกี้เมื่อโหลดหน้าเว็บแต่ละครั้ง โดยจะอัปเดตการหมดอายุของคุกกี้เป็นการตั้งค่าที่สัมพันธ์กับการเข้าชมเว็บไซต์ครั้งล่าสุด ตัวอย่างเช่น หากตั้งค่าการหมดอายุของคุกกี้ไว้ที่ 1 สัปดาห์และผู้ใช้เข้าชมโดยใช้เบราว์เซอร์เดียวกันทุก 5 วัน การหมดอายุของคุกกี้จะอัปเดตเมื่อมีการเข้าชมแต่ละครั้ง ซึ่งก็จะทำให้ไม่มีการหมดอายุ
เมื่อตั้งค่าเป็น false
คุกกี้จะไม่อัปเดตเมื่อหน้าเว็บโหลดแต่ละครั้ง ซึ่งเป็นผลมาจากการหมดอายุของคุกกี้สัมพันธ์กับครั้งแรกที่ผู้ใช้เข้าชมเว็บไซต์
การแจ้งเกี่ยวกับคุกกี้
ใส่ Flag เพิ่มเติมต่อท้ายคุกกี้เมื่อตั้งค่า โดยต้องคั่น Flag แต่ละรายการด้วยเครื่องหมายเซมิโคลอน
การรับรหัสไคลเอ็นต์จากคุกกี้
คุณไม่ควรเข้าถึงชุดคุกกี้ analytics.js โดยตรง เนื่องจากรูปแบบคุกกี้อาจเปลี่ยนแปลงได้ในอนาคต นักพัฒนาซอฟต์แวร์ควรใช้ readyCallback
เพื่อรอจนกว่า analytics.js จะโหลด จากนั้นรับค่า clientId
ที่จัดเก็บไว้ในเครื่องมือติดตาม
ga(function(tracker) { var clientId = tracker.get('clientId'); });
การปิดใช้งานคุกกี้
ในบางกรณี คุณอาจต้องการใช้กลไกพื้นที่เก็บข้อมูลของคุณเอง (เช่น localStorage
หรือ Service Worker) เพื่อคงรหัสไคลเอ็นต์ในเซสชันต่างๆ โดยไม่ต้องใช้คุกกี้ คุณปิดไม่ให้ analytics.js ตั้งค่าคุกกี้ได้โดยการตั้งค่าช่อง storage
เป็น 'none'
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
หากจัดเก็บช่อง clientId
ด้วยตนเอง คุณจะต้องตั้งค่าช่อง cliendId
เมื่อสร้างตัวติดตาม
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
หากต้องการปิดใช้คุกกี้ _gac_<property-id>
ให้ตั้งค่าช่อง storeGac
เป็น false
ในคำสั่ง create
ดังนี้
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
การใช้ localStorage เพื่อจัดเก็บรหัสไคลเอ็นต์
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีแก้ไขแท็ก JavaScript เพื่อใช้ localStorage
ในการจัดเก็บ Client-ID แทนคุกกี้
var GA_LOCAL_STORAGE_KEY = 'ga:clientId';
if (window.localStorage) {
ga('create', 'UA-XXXXX-Y', {
'storage': 'none',
'clientId': localStorage.getItem(GA_LOCAL_STORAGE_KEY)
});
ga(function(tracker) {
localStorage.setItem(GA_LOCAL_STORAGE_KEY, tracker.get('clientId'));
});
}
else {
ga('create', 'UA-XXXXX-Y', 'auto');
}
ga('send', 'pageview');
User-ID
User ID ทำให้สามารถวิเคราะห์กลุ่มเซสชันในอุปกรณ์ต่างๆ โดยใช้สตริงรหัสแบบถาวรที่ไม่ซ้ำกันและไม่สามารถระบุตัวบุคคลได้ในการแทนตัวผู้ใช้ หากต้องการทราบว่าเหตุใดคุณจึงควรใช้ User ID โปรดดูประโยชน์ของการใช้ฟีเจอร์ User ID
วิธีใช้ User ID กับ analytics.js
- ระบุรหัสสตริงที่ไม่ซ้ำกัน ระบุตัวผู้ใช้ไม่ได้ และระบุตัวบุคคลนั้นได้ที่ไม่ซ้ำกันเพื่อแสดงถึงผู้ใช้ที่ลงชื่อเข้าใช้แต่ละราย รหัสนี้มักมาจากระบบการตรวจสอบสิทธิ์
- ตั้งค่า User ID ในอุปกรณ์ติดตามดังนี้
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
การจัดการการตรวจสอบสิทธิ์หลังจากการโหลดหน้าเว็บ
เมื่อสร้างแอปพลิเคชันหน้าเว็บเดียวหรือเว็บไซต์แบบไดนามิกอื่นๆ ที่จัดการการลงชื่อเข้าใช้ของผู้ใช้หลังจากการโหลดหน้าเว็บเริ่มต้น กระบวนการตั้งค่า User-ID ในตัวติดตามจะไม่เกิดขึ้นในขณะที่สร้าง
ในกรณีดังกล่าว คุณจะใช้คําสั่ง set
เพื่อตั้งค่าในเครื่องมือติดตามได้ทันทีที่ทราบ
// Creates the tracker and sends a pageview as normal // since the `userId` value is not yet known. ga('create', 'UA-XXXXX-Y', 'auto'); ga('send', 'pageview'); // At a later time, once the `userId` value is known, // sets the value on the tracker. ga('set', 'userId', USER_ID); // Setting the userId doesn't send data to Google Analytics. // You must also use a pageview or event to send the data. ga('send', 'event', 'authentication', 'user-id available');
เมื่อใช้วิธีนี้ Hit ที่ส่งก่อนตั้งค่าช่อง userId
จะไม่มีค่ารหัสผู้ใช้ อย่างไรก็ตาม ด้วยกระบวนการที่เรียกว่าการรวมเซสชัน Google Analytics จะสามารถเชื่อมโยง Hit เหล่านี้กับผู้ใช้ที่ถูกต้องได้ขณะประมวลผล