Gửi thuộc tính người dùng

Thuộc tính người dùng mô tả các phân khúc trong cơ sở người dùng, chẳng hạn như lựa chọn ưu tiên về ngôn ngữ hoặc vị trí địa lý. Analytics tự động ghi lại một số thuộc tính người dùng. Nếu muốn thu thập thêm các thuộc tính, bạn có thể thiết lập thêm tối đa 25 thuộc tính người dùng cho mỗi dự án. Hãy xem phần Thuộc tính người dùng tuỳ chỉnh để tìm hiểu cách đặt và đăng ký thuộc tính người dùng.

Thuộc tính người dùng giúp cải thiện việc phân khúc người dùng, nhưng dữ liệu thuộc tính người dùng thường chỉ có ở phía máy chủ. Measurement Protocol cho phép bạn tăng cường các phép đo phía máy khách bằng dữ liệu phía máy chủ. Thông thường, bạn không thể thực hiện việc này chỉ bằng các giải pháp phía máy khách.

Tên dành riêng

Một số tên thuộc tính người dùng đã được dành riêng và không thể sử dụng trong hoạt động đo lường:

  • first_open_time
  • first_visit_time
  • last_deep_link_referrer
  • user_id
  • first_open_after_install

Ngoài ra, tên thuộc tính người dùng không được bắt đầu bằng:

  • google_
  • ga_
  • firebase_

Ví dụ về cách sử dụng

Trong ví dụ sau, hệ thống quản lý quan hệ khách hàng (CRM) của bạn có một thuộc tính người dùng (customer_tier) mà bạn muốn thêm vào số liệu đo lường. Bạn có thể đặt customer_tier thành một trong hai giá trị premium hoặc standard. Để nhận thuộc tính người dùng này trong báo cáo, bạn sẽ làm như sau:

Trước tiên, hãy để ứng dụng gửi một sự kiện add_payment_info cùng với một lệnh gọi đến API máy chủ có quyền truy cập vào hệ thống CRM của bạn:

mã khách hàng

FirebaseAnalytics.logEvent("add_payment_info")
ServerAPI.addCustomerTier(
  FirebaseAnalytics.getAppInstanceId(),
  "[{name: \"add_payment_info\"}"]
);

Sau đó, máy chủ của bạn sẽ tăng cường hoạt động đo lường bằng thuộc tính người dùng customer_tier thông qua Measurement Protocol:

server code

const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";

function addCustomerTier(appInstanceId, events) {

  // Request the customer tier from the CRM.
  const customerTier = getCustomerTier(appInstanceId);

  const queryParams = `?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`;
  fetch(`https://www.google-analytics.com/mp/collect${queryParams}`, {
    method: "POST",
    headers: {
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      "app_instance_id": "APP_INSTANCE_ID",
      "user_properties": {
        "customer_tier": {
          "value": "CUSTOMER_TIER"
        }
      },
      "events": JSON.parse(events)
    })
  });
}

Thuộc tính người dùng này báo cáo 2 phân khúc premiumstandard.

Hãy xem phần Gửi sự kiện để biết thông tin chi tiết về cách gửi sự kiện bằng Measurement Protocol.

Ghi đè dấu thời gian

Measurement Protocol sử dụng dấu thời gian đầu tiên mà giao thức này tìm thấy trong danh sách sau cho từng thuộc tính người dùng trong yêu cầu:

  1. timestamp_micros của mục trong user_properties.
  2. timestamp_micros của yêu cầu.
  3. Thời gian Measurement Protocol nhận được yêu cầu.

Ví dụ sau đây gửi dấu thời gian ở cấp yêu cầu áp dụng cho tất cả thuộc tính người dùng trong yêu cầu. Do đó, Measurement Protocol sẽ chỉ định cho cả thuộc tính người dùng customer_tiercustomer_group dấu thời gian requestUnixEpochTimeInMicros.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "user_properties": {
      "customer_tier": {
        "value": customerTierValue
      },
      "customer_group": {
        "value": customerGroupValue
      }
  }
}

Ví dụ sau đây gửi cả dấu thời gian ở cấp yêu cầu và dấu thời gian cho thuộc tính người dùng customer_tier. Do đó, Measurement Protocol sẽ chỉ định cho customer_tier dấu thời gian là customerTierUnixEpochTimeInMicros và cho customer_group dấu thời gian là requestUnixEpochTimeInMicros.

"timestamp_micros": requestUnixEpochTimeInMicros,
"user_properties": {
    "customer_tier": {
      "value": customerTierValue,
      "timestamp_micros": customerTierUnixEpochTimeInMicros
    },
    "customer_group": {
      "value": customerGroupValue
    }
}