Chọn nền tảng của bạn:
Measurement Protocol của Google Analytics không trả về mã lỗi HTTP, ngay cả khi một sự kiện bị sai định dạng hoặc thiếu các tham số bắt buộc. Để xác minh rằng các sự kiện của bạn hợp lệ, bạn nên thử nghiệm sự kiện với máy chủ xác thực Measurement Protocol trước khi đưa vào sử dụng chính thức.
Sau khi xác thực rằng các sự kiện của bạn được cấu trúc đúng cách, bạn nên
xác minh cách triển khai để đảm bảo rằng bạn đang sử dụng đúng khoá.
Bạn có thể gọi trực tiếp máy chủ xác thực hoặc sử dụng Google Analytics Trình tạo sự kiện. Trình tạo sự kiện của Google Analytics cho phép bạn tạo sự kiện một cách tương tác và sử dụng máy chủ xác thực Measurement Protocol để xác thực các sự kiện đó.
Hướng dẫn này mô tả cách gửi sự kiện đến Measurement Protocol cho máy chủ xác thực của Google Analytics và diễn giải phản hồi.
Gửi sự kiện để xác thực
Điểm khác biệt duy nhất trong yêu cầu đối với các sự kiện được gửi đến Measurement Protocol và máy chủ xác thực Measurement Protocol là URL.
| Máy chủ | URL |
|---|---|
| Measurement Protocol | /mp/collect |
| Máy chủ xác thực Measurement Protocol | /debug/mp/collect |
Tất cả các trường yêu cầu khác đều giống nhau.
Bạn nên áp dụng phương pháp xác thực sau:
- Sử dụng các lượt kiểm tra xác thực nghiêm ngặt trong quá trình phát triển bằng cách sử dụng một trong các lựa chọn sau:
- Xác thực yêu cầu bằng Trình tạo sự kiện.
- Gửi yêu cầu đến máy chủ xác thực với
validation_behaviorđược đặt thànhENFORCE_RECOMMENDATIONS.
- Trong quá trình sử dụng chính thức, hãy gửi yêu cầu mà không đặt
validation_behaviorđể giảm thiểu dữ liệu bị Measurement Protocol từ chối.
Ví dụ về một sự kiện không hợp lệ
Đoạn mã sau đây cho thấy một sự kiện không hợp lệ được gửi đến máy chủ xác thực Measurement Protocol:
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
// Event names must start with an alphabetic character.
name: "_badEventName",
params: {},
}]
})
});
Ví dụ về một sự kiện hợp lệ
Đoạn mã sau đây cho thấy một sự kiện hợp lệ được gửi đến máy chủ xác thực Measurement Protocol. Yêu cầu này sẽ tạo ra một mảng trống validationMessages
trong phản hồi, như minh hoạ trong phần Phản hồi xác thực.
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({
app_instance_id: "APP_INSTANCE_ID",
validation_behavior: "ENFORCE_RECOMMENDATIONS",
events: [{
name: "level_up",
params: {
level: 2,
character: "MyHero"
},
}]
})
});
Phản hồi xác thực
Dưới đây là phản hồi của máy chủ xác thực đối với ví dụ về sự kiện không hợp lệ.
{
"validationMessages": [
{
"fieldPath": "events",
"description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
"validationCode": "NAME_INVALID"
}
]
}
Dưới đây là phản hồi của máy chủ xác thực đối với một yêu cầu không có vấn đề về xác thực:
{
"validationMessages": []
}
Phản hồi
| Khoá | Loại | Mô tả |
|---|---|---|
validationMessages |
Mảng<ValidationMessage> | Một mảng gồm các thông báo xác thực. |
ValidationMessage
| Khoá | Loại | Mô tả |
|---|---|---|
fieldPath |
chuỗi | Đường dẫn đến trường không hợp lệ. |
description |
chuỗi | Mô tả về lỗi. |
validationCode |
ValidationCode | Mã xác thực tương ứng với lỗi. |
ValidationCode
| Giá trị | Mô tả |
|---|---|
VALUE_INVALID |
Giá trị được cung cấp cho fieldPath không hợp lệ. Xem các giới hạn.
|
VALUE_REQUIRED |
Bạn chưa cung cấp giá trị bắt buộc cho fieldPath. |
NAME_INVALID |
Tên được cung cấp không hợp lệ. Xem các giới hạn. |
NAME_RESERVED |
Tên được cung cấp là một trong các tên dành riêng. Xem các tên dành riêng. |
VALUE_OUT_OF_BOUNDS |
Giá trị được cung cấp quá lớn. Xem các giới hạn. |
EXCEEDED_MAX_ENTITIES |
Có quá nhiều tham số trong yêu cầu. Xem các giới hạn. |
NAME_DUPLICATED |
Bạn đã cung cấp cùng một tên nhiều lần trong yêu cầu. |