Wyślij właściwości użytkownika

Właściwości użytkownika opisują segmenty Twoich użytkowników, np. ich ustawienia języka lub położenie geograficzne. Analytics automatycznie rejestruje niektóre właściwości użytkownika. Jeśli chcesz zbierać dodatkowe właściwości, możesz skonfigurować do 25 dodatkowych właściwości użytkownika na projekt. Więcej informacji o konfigurowaniu i rejestrowaniu właściwości użytkownika znajdziesz w artykule Niestandardowe właściwości użytkownika.

Właściwości użytkownika ulepszają segmentację użytkowników, ale dane właściwości użytkownika są często dostępne tylko po stronie serwera. Measurement Protocol umożliwia uzupełnianie pomiarów po stronie klienta danymi po stronie serwera, co jest zwykle niemożliwe przy użyciu tylko rozwiązań po stronie klienta.

Zarezerwowane nazwy

Niektóre nazwy właściwości użytkownika są zarezerwowane i nie można ich używać w pomiarach:

  • first_open_time
  • first_visit_time
  • last_deep_link_referrer
  • user_id
  • first_open_after_install

Oprócz tego nazwy właściwości użytkownika nie mogą się zaczynać od:

  • google_
  • ga_
  • firebase_

Przykład użycia

W tym przykładzie Twój system CRM ma właściwość użytkownika (customer_tier), którą chcesz dodać do pomiarów. customer_tier może mieć wartość premium lub standard. Aby uzyskać tę właściwość użytkownika w raportach, wykonaj te czynności:

Najpierw klient musi wysłać zdarzenie add_payment_info wraz z wywołaniem interfejsu API serwera, który ma dostęp do Twojego systemu CRM:

kod klienta

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

Serwer uzupełnia pomiar o customer_tierwłaściwość użytkownika za pomocą Measurement Protocol:

kod serwera

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)
    })
  });
}

Ta właściwość użytkownika raportuje 2 segmenty: premium i standard.

Więcej informacji o wysyłaniu zdarzeń za pomocą Measurement Protocol znajdziesz w artykule Wysyłanie zdarzeń.

Zastąp sygnaturę czasową

Measurement Protocol używa pierwszej sygnatury czasowej, którą znajdzie na poniższej liście, dla każdej właściwości użytkownika w żądaniu:

  1. timestamp_micros wpisu w user_properties.
  2. timestamp_micros żądania.
  3. Czas, w którym Measurement Protocol otrzymał żądanie.

W tym przykładzie wysyłany jest sygnatura czasowa na poziomie żądania, która ma zastosowanie do wszystkich właściwości użytkownika w żądaniu. W efekcie Measurement Protocol przypisuje właściwościom użytkownika customer_tier i customer_group sygnaturę czasową requestUnixEpochTimeInMicros.

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

Ten przykład wysyła sygnaturę czasową na poziomie żądania i sygnaturę czasową właściwości użytkownika customer_tier. W efekcie Measurement Protocol przypisuje customer_tier sygnaturę czasową customerTierUnixEpochTimeInMicros, a customer_group sygnaturę czasową requestUnixEpochTimeInMicros.

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