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 ustawianiu i rejestrowaniu właściwości użytkownika znajdziesz w artykule Niestandardowe właściwości użytkownika.
Właściwości użytkownika ułatwiają 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 rozszerzanie pomiarów po stronie klienta o dane 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. Wartość customer_tier może być ustawiona na premium lub standard. Aby uzyskać tę właściwość użytkownika w raportach, wykonaj te czynności:
Najpierw poproś klienta o wysłanie zdarzenia 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ą
Protokół Measurement Protocol używa pierwszego sygnatury czasowej, którą znajdzie na poniższej liście, w przypadku 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
}
}
}
W tym przykładzie wysyłana jest sygnatura czasowa na poziomie żądania i sygnatura czasowa właściwości użytkownika customer_tier. W efekcie Measurement Protocol przypisuje zdarzeniu customer_tier sygnaturę czasową customerTierUnixEpochTimeInMicros, a zdarzeniu customer_group sygnaturę czasową requestUnixEpochTimeInMicros.
"timestamp_micros": requestUnixEpochTimeInMicros,
"user_properties": {
"customer_tier": {
"value": customerTierValue,
"timestamp_micros": customerTierUnixEpochTimeInMicros
},
"customer_group": {
"value": customerGroupValue
}
}