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_timefirst_visit_timelast_deep_link_referreruser_idfirst_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:
timestamp_microswpisu wuser_properties.timestamp_microsżądania.- 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
}
}