Nutzereigenschaften senden

Nutzereigenschaften beschreiben Segmente Ihrer Nutzerbasis, z. B. Spracheinstellungen oder geografische Standorte. Einige Nutzereigenschaften werden in Analytics automatisch protokolliert. Wenn Sie zusätzliche Eigenschaften erfassen möchten, können Sie pro Projekt bis zu 25 zusätzliche Nutzereigenschaften einrichten. Unter Benutzerdefinierte Nutzereigenschaften erfahren Sie, wie Sie Nutzereigenschaften festlegen und registrieren.

Nutzereigenschaften verbessern die Nutzersegmentierung. Die Daten zu Nutzereigenschaften sind jedoch häufig nur serverseitig verfügbar. Mit dem Measurement Protocol können Sie clientseitige Messungen mit serverseitigen Daten ergänzen. Das ist mit reinen clientseitigen Lösungen in der Regel nicht möglich.

Reservierte Namen

Einige Namen von Nutzereigenschaften sind reserviert und können nicht in Messungen verwendet werden:

  • first_open_time
  • first_visit_time
  • last_deep_link_referrer
  • user_id
  • first_open_after_install

Außerdem dürfen Namen von Nutzereigenschaften nicht mit folgenden Zeichen oder Präfixen beginnen:

  • google_
  • ga_
  • firebase_

Nutzungsbeispiel

In diesem Beispiel hat Ihr CRM eine Nutzereigenschaft (customer_tier), die Sie Ihren Messungen hinzufügen möchten. customer_tier kann auf premium oder standard festgelegt werden. So erhalten Sie diese Nutzereigenschaft in Ihren Berichten:

Zuerst muss der Client ein add_payment_info-Ereignis zusammen mit einem Aufruf an eine Server-API senden, die Zugriff auf Ihr CRM-System hat:

Clientcode

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

Ihr Server ergänzt die Messung dann mit der Nutzereigenschaft customer_tier über das Measurement Protocol:

Servercode

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

Diese Nutzereigenschaft meldet die beiden Segmente premium und standard.

Ausführliche Informationen zum S0}Senden von Ereignissen mit dem Measurement Protocol finden Sie unter Ereignisse senden.

Zeitstempel überschreiben

Das Measurement Protocol verwendet für jede Nutzereigenschaft in der Anfrage den ersten Zeitstempel, der in der folgenden Liste gefunden wird:

  1. Der timestamp_micros des Eintrags in user_properties.
  2. Der timestamp_micros der Anfrage.
  3. Der Zeitpunkt, zu dem das Measurement Protocol die Anfrage empfängt.

Im folgenden Beispiel wird ein Zeitstempel auf Anfrageebene gesendet, der für alle Nutzereigenschaften in der Anfrage gilt. Daher weist das Measurement Protocol den Nutzereigenschaften customer_tier und customer_group einen Zeitstempel von requestUnixEpochTimeInMicros zu.

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

Im folgenden Beispiel werden sowohl ein Zeitstempel auf Anfrageebene als auch ein Zeitstempel für die Nutzereigenschaft customer_tier gesendet. Daher weist das Measurement Protocol der Nutzereigenschaft customer_tier einen Zeitstempel von customerTierUnixEpochTimeInMicros und der Nutzereigenschaft customer_group einen Zeitstempel von requestUnixEpochTimeInMicros zu.

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