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. Aby dowiedzieć się, jak ustawiać i rejestrować właściwości użytkownika, przeczytaj artykuł Niestandardowe właściwości użytkownika.
Właściwości użytkownika ulepszają segmentację użytkowników, ale dane o właściwościach 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 zwykle jest niemożliwe przy użyciu samych 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 przykładzie poniżej Twój system CRM ma właściwość użytkownika (customer_tier), którą chcesz dodać do pomiarów. Wartość customer_tier można ustawić na premium lub standard. Aby uzyskać tę właściwość użytkownika w raportach:
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\"}"]
);
Następnie serwer uzupełnia pomiar o właściwość użytkownika customer_tier 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.
Szczegółowe informacje 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 tej liście, w przypadku każdej właściwości użytkownika w żądaniu:
timestamp_microswpisu wuser_properties.timestamp_microsprośby.- Czas, w którym Measurement Protocol otrzymuje żądanie.
W tym przykładzie wysyłana jest sygnatura czasowa na poziomie żądania, która dotyczy 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 zarówno sygnatura czasowa na poziomie żądania, jak 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
}
}