Để Google Analytics xác định rằng hai lượt truy cập riêng biệt thuộc về cùng một người dùng, một giá trị nhận dạng duy nhất (liên kết với người dùng cụ thể đó) phải được gửi cùng với mỗi lượt truy cập.
Thư viện analytics.js thực hiện việc này thông qua trường Mã ứng dụng khách, một chuỗi duy nhất được tạo ngẫu nhiên được lưu trữ trong cookie của trình duyệt. Do đó, các lượt truy cập tiếp theo vào cùng một trang web có thể được liên kết với cùng một người dùng.
Theo mặc định, analytics.js sử dụng một cookie duy nhất của bên thứ nhất có tên là
_ga
để lưu trữ Mã ứng dụng. Tuy nhiên, bạn có thể tùy chỉnh tên, miền
và thời gian hết hạn cookie của cookie. Các cookie khác do analytics.js tạo bao gồm _gid
, AMP_TOKEN
và
_gac_<property-id>
. Các cookie này lưu trữ mã nhận dạng được tạo ngẫu nhiên và thông tin chiến dịch khác về người dùng.
Việc sử dụng cookie cho phép analytics.js xác định người dùng riêng biệt trên các phiên duyệt web, nhưng không thể xác định người dùng riêng biệt trên các trình duyệt hoặc thiết bị khác nhau. Nếu trang web của bạn có hệ thống xác thực riêng, thì bạn có thể sử dụng tính năng Mã nhận dạng khách hàng (ngoài Mã ứng dụng khách) để xác định chính xác hơn một người dùng trên tất cả thiết bị mà họ sử dụng để truy cập vào trang web của bạn.
Hướng dẫn này giải thích cách tùy chỉnh các chế độ cài đặt cookie cũng như cách thiết lập trường mã nhận dạng người dùng để đo lường hoạt động của người dùng một cách chính xác hơn trong các phiên hoạt động.
Định cấu hình chế độ cài đặt trường cookie
Bảng sau đây trình bày các giá trị trường cookie mặc định mà analytics.js sử dụng:
Tên trường | Loại giá trị | Giá trị mặc định |
---|---|---|
cookieName |
văn bản | _ga |
cookieDomain |
văn bản |
Kết quả của biểu thức JavaScript sau:document.location.hostname
|
cookieExpires |
số nguyên | 63072000 (hai năm, tính bằng giây) |
cookieUpdate |
boolean |
true
|
cookieFlags |
văn bản |
|
Để sửa đổi bất kỳ giá trị nào trong số này, bạn có thể chỉ định các giá trị đó trong fieldObject
mà bạn
truyền lệnh create
. Ví dụ:
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',
});
Trường cookie phổ biến nhất cần đặt là cookieDomain
. Do đó, lệnh create
chấp nhận trường cookieDomain
làm thông số thứ ba không bắt buộc để
tiện lợi:
ga('create', 'UA-XXXXX-Y', 'blog.example.co.uk');
Cấu hình miền cookie tự động
Thẻ Google Analytics đề xuất đặt chuỗi 'auto'
cho trường cookieDomain
:
ga('create', 'UA-XXXXX-Y', 'auto');
Việc chỉ định 'auto'
làm cookieDomain
sẽ bật cấu hình miền cookie tự động. Lệnh này sẽ yêu cầu analytics.js tự động xác định miền cookie tốt nhất để sử dụng.
Cấu hình miền cookie tự động đặt cookie _ga
trên miền cấp cao nhất có thể. Ví dụ: nếu địa chỉ trang web của bạn là blog.example.co.uk
, thì analytics.js sẽ đặt miền cookie thành .example.co.uk
. Ngoài ra, nếu
analytics.js phát hiện thấy bạn đang chạy máy chủ cục bộ (ví dụ: localhost
), thì thao tác này
sẽ tự động đặt cookieDomain
thành 'none'
.
Hết hạn cookie
Mỗi khi một lượt truy cập được gửi đến Google Analytics, thời gian hết hạn cookie sẽ được cập nhật thành tổng của thời gian hiện tại và giá trị trong trường cookieExpires
. Điều này có nghĩa là nếu bạn sử dụng thời gian cookieExpires
mặc định là 2 năm và người dùng truy cập trang web của bạn mỗi tháng, thì cookie của họ sẽ không bao giờ hết hạn.
Nếu bạn đặt thời gian cookieExpires
thành 0
(không) giây, cookie sẽ chuyển thành
cookie dựa trên phiên
và hết hạn khi phiên hoạt động của trình duyệt hiện tại kết thúc:
Cập nhật cookie
Khi bạn đặt cookieUpdate
thành true
(giá trị mặc định), analytics.js sẽ
cập nhật cookie mỗi lần tải trang. Thao tác này sẽ cập nhật thời hạn cookie được đặt tương ứng với lượt truy cập gần đây nhất vào trang web. Ví dụ: nếu cookie hết hạn được đặt thành một tuần và người dùng truy cập bằng cùng một trình duyệt sau mỗi năm ngày, thì thời hạn cookie sẽ được cập nhật cho mỗi lượt truy cập, do đó sẽ không bao giờ hết hạn.
Khi bạn đặt thành false
, các cookie sẽ không được cập nhật trong mỗi lượt tải trang. Điều này có ảnh hưởng của việc
hết hạn cookie so với lần đầu tiên người dùng truy cập vào
trang web.
Cờ cookie
Gắn thêm cờ vào cookie khi đặt. Cờ phải được phân tách bằng dấu chấm phẩy.
Lấy Mã ứng dụng khách từ cookie
Bạn không nên trực tiếp truy cập vào các tập hợp cookie analytics.js, vì định dạng cookie có thể thay đổi trong tương lai. Thay vào đó, nhà phát triển nên sử dụng
readyCallback
để chờ
cho đến khi analytics.js được tải, sau đó nhận giá trị clientId
được lưu trữ trên
trình theo dõi.
ga(function(tracker) { var clientId = tracker.get('clientId'); });
Tắt cookie
Trong một số trường hợp, bạn có thể muốn sử dụng cơ chế lưu trữ của riêng mình (chẳng hạn như localStorage
hoặc Worker Worker) để lưu giữ mã ứng dụng khách trong các phiên hoạt động mà không cần sử dụng cookie. Bạn có thể ngăn Analytics.js đặt cookie bằng cách đặt trường storage
thành 'none'
.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none' });
Nếu đang tự lưu trữ trường clientId
, bạn cần đặt trường cliendId
khi tạo trình theo dõi.
ga('create', 'UA-XXXXX-Y', { 'storage': 'none', 'clientId': '76c24efd-ec42-492a-92df-c62cfd4540a3' });
Để vô hiệu hoá cookie _gac_<property-id>
, hãy đặt trường storeGac
thành false
trong lệnh create
:
ga('create', 'UA-XXXXX-Y', {
storeGac: false,
});
Sử dụng localStorage để lưu trữ ID ứng dụng khách
Mã mẫu sau đây cho biết cách bạn có thể sửa đổi thẻ JavaScript để sử dụng localStorage
nhằm lưu trữ Mã ứng dụng khách thay vì cookie:
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 cho phép phân tích nhóm phiên, trên thiết bị, bằng cách sử dụng chuỗi ID duy nhất, ổn định và không nhận dạng cá nhân đại diện cho người dùng. Để tìm hiểu lý do bạn nên triển khai User-ID, hãy xem bài viết Lợi ích khi sử dụng tính năng User-ID.
Để triển khai Mã nhận dạng khách hàng bằng analytics.js:
- Cung cấp mã chuỗi duy nhất, ổn định và không nhận dạng cá nhân của bạn để đại diện cho từng người dùng đã đăng nhập. Mã này thường do hệ thống xác thực cung cấp.
- Đặt Mã nhận dạng khách hàng trên trình theo dõi:
ga('create', 'UA-XXXXX-Y', 'auto', { userId: USER_ID }); ga('send', 'pageview');
Xử lý quy trình xác thực sau khi tải trang
Khi tạo Ứng dụng trang đơn hoặc các trang web động khác xử lý việc đăng nhập của người dùng sau lần tải trang ban đầu, quá trình đặt giá trị mã nhận dạng người dùng trên trình theo dõi không thể xảy ra tại thời điểm tạo.
Trong những trường hợp như vậy, bạn có thể sử dụng lệnh set
để đặt giá trị trên công cụ theo dõi ngay khi biết.
// 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');
Khi sử dụng phương pháp này, các lượt truy cập được gửi trước khi trường userId
được đặt sẽ không chứa các giá trị mã nhận dạng người dùng. Tuy nhiên, thông qua một quy trình có tên là Hợp nhất phiên, Google Analytics có thể liên kết các lượt truy cập này với đúng người dùng tại thời điểm xử lý.