Gửi các sự kiện Measurement Protocol đến Google Analytics

Hướng dẫn này giải thích cách bạn có thể gửi Luồng ứng dụng và web Google Analytics Measurement Protocol sự kiện sang một máy chủ Google Analytics để bạn có thể xem các sự kiện Measurement Protocol trong Báo cáo Google Analytics.

Hãy chọn nền tảng bạn muốn xem trong hướng dẫn này:

Định dạng yêu cầu

Measurement Protocol của Google Analytics chỉ hỗ trợ các yêu cầu HTTP POST.

Để gửi một sự kiện, hãy sử dụng định dạng sau:

POST /mp/collect HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
<payload_data>

Bạn phải cung cấp những thông tin sau trong URL yêu cầu:

  • api_secret: BÍ MẬT API được tạo trong giao diện người dùng Google Analytics.

    Để tạo khoá bí mật mới, hãy chuyển đến mục Quản trị > Luồng dữ liệu > chọn luồng của bạn > Measurement Protocol > Tạo.

  • measurement_id: Mã đo lường được liên kết với một luồng, nằm trong Giao diện người dùng của Google Analytics trong mục Quản trị > Luồng dữ liệu > chọn luồng > Mã đo lường.

    measurement_id không phải là Mã luồng của bạn.

Hãy xem tham số truy vấn để tham khảo đầy đủ.

Bạn phải cung cấp các thông tin sau trong nội dung yêu cầu:

  • client_id: Giá trị nhận dạng duy nhất của ứng dụng. Điều này khác với Firebase app_instance_id. Sử dụng gtag.js('get').
  • user_id: Không bắt buộc. Giá trị nhận dạng duy nhất của người dùng. Chỉ có thể chứa UTF-8 ký tự. Tham khảo bài viết User-ID cho bản phân tích trên nhiều nền tảng để biết thêm thông tin về mã nhận dạng này.

  • consent: Không bắt buộc. Tìm hiểu cách đặt sự đồng ý phần cài đặt.

  • timestamp_micros: Không bắt buộc. Thời gian bắt đầu của hệ thống Unix, tính bằng micrô giây, đối với các sự kiện và thuộc tính người dùng trong yêu cầu. Nếu không được chỉ định, mặc định là thời gian yêu cầu.

  • events: Một mảng các mục sự kiện. Bạn có thể thêm nhiều sự kiện vào một của bạn.

    Để hoạt động của người dùng hiển thị trong các báo cáo như Thời gian thực, Bạn phải cung cấp engagement_time_msecsession_id trong params cho event. Tham số engagement_time_msec sẽ phản ánh thời gian tương tác của sự kiện tính bằng mili giây.

    Ví dụ:

  {
   "client_id": "123456.7654321",
   "events": [
     {
        "name": "campaign_details",
        "params": {
          "campaign_id": "google_1234",
          "campaign": "Summer_fun",
          "source": "google",
          "medium": "cpc",
          "term": "summer+travel",
          "content": "logolink",
          "session_id": "123",
          "engagement_time_msec": "100"
        }
     }
   ]
  }

Mặc dù session_start là một sự kiện đặt trước tên, việc tạo một session_id mới sẽ tạo một phiên mới mà không cần gửi session_start. Tìm hiểu cách phiên được tính.

Dùng thử

Sau đây là ví dụ mà bạn có thể sử dụng để gửi sự kiện tutorial_begin đến tài khoản Google của mình Máy chủ Analytics:

const measurement_id = `G-XXXXXXXXXX`;
const api_secret = `<secret_value>`;

fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
  method: "POST",
  body: JSON.stringify({
    client_id: 'XXXXXXXXXX.YYYYYYYYYY',
    events: [{
      name: 'tutorial_begin',
      params: {},
    }]
  })
});

Ghi đè dấu thời gian

Measurement Protocol sử dụng dấu thời gian đầu tiên có trong danh sách sau đây cho mỗi sự kiện trong yêu cầu:

  1. timestamp_micros của sự kiện.
  2. timestamp_micros của yêu cầu.
  3. Thời gian mà Measurement Protocol nhận được yêu cầu.

Ví dụ sau đây sẽ gửi một dấu thời gian ở cấp yêu cầu áp dụng cho tất cả các sự kiện trong yêu cầu. Do đó, Measurement Protocol sẽ chỉ định cả Các sự kiện tutorial_beginjoin_group có dấu thời gian là requestUnixEpochTimeInMicros.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin"
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}

Ví dụ sau đây gửi cả dấu thời gian ở cấp yêu cầu và cấp sự kiện . Do đó, Measurement Protocol sẽ chỉ định tutorial_begin dấu thời gian là tutorialBeginUnixEpochTimeInMicrosjoin_group sự kiện có dấu thời gian là requestUnixEpochTimeInMicros.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin",
      "timestamp_micros": tutorialBeginUnixEpochTimeInMicros
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}

Các điểm hạn chế

Khi gửi sự kiện Measurement Protocol đến Google, bạn phải tuân thủ các giới hạn sau đây Số liệu phân tích:

  • Yêu cầu có thể có tối đa 25 sự kiện.
  • Sự kiện có thể có tối đa 25 thông số.
  • Sự kiện có thể có tối đa 25 thuộc tính người dùng.
  • Tên thuộc tính người dùng chỉ được có tối đa 24 ký tự.
  • Giá trị thuộc tính người dùng chỉ được có tối đa 36 ký tự.
  • Tên sự kiện chỉ được có tối đa 40 ký tự và chỉ được chứa chữ và số và phải bắt đầu bằng một ký tự chữ cái.
  • Tên thông số (bao gồm cả thông số mặt hàng) chỉ được có tối đa 40 ký tự, chỉ có thể chứa các ký tự chữ và số và dấu gạch dưới, đồng thời phải bắt đầu bằng một ký tự chữ cái.
  • Giá trị thông số bao gồm cả giá trị thông số mặt hàng phải có 100 ký tự hoặc ít hơn đối với tài sản Google Analytics chuẩn và có tối đa 500 ký tự cho tài sản Google Analytics 360.
  • Thông số mục có thể có tối đa 10 thông số tuỳ chỉnh.
  • Nội dung bài đăng phải nhỏ hơn 130kB.
  • Các sự kiện Measurement Protocol trong ứng dụng được gửi đến Google Analytics không điền sẵn dữ liệu Tìm kiếm đối tượng trong Google Ads cho người dùng ứng dụng.

Để biết thêm yêu cầu đối với từng trường hợp sử dụng, hãy xem các trường hợp sử dụng phổ biến.