Xác thực sự kiện

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ành ENFORCE_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.