Nutzereigenschaften senden

Nutzereigenschaften beschreiben Nutzersegmente wie 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. Weitere Informationen zum Festlegen und Registrieren von Nutzereigenschaften

Nutzereigenschaften verbessern die Nutzersegmentierung, aber Daten zu Nutzereigenschaften sind oft nur serverseitig verfügbar. Mit dem Measurement Protocol können Sie clientseitige Analysen mit serverseitigen Daten ergänzen. Das ist in der Regel nur mit clientseitigen Lösungen nicht möglich.

Reservierte Namen

Einige Namen von Nutzereigenschaften sind reserviert und können nicht für Analysen 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

Im folgenden Beispiel enthält Ihr CRM eine Nutzer-Property (customer_tier), die Sie Ihren Analysen hinzufügen möchten. customer_tier kann auf premium oder standard festgelegt werden. So erhalten Sie diese Nutzerattribute in Ihren Berichten:

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

Client-Code

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

Ihr Server ergänzt die Analyse dann mit der Nutzer-Property 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)
    })
  });
}

Für diese Nutzereigenschaft werden die beiden Segmente premium und standard gemeldet.

Weitere Informationen zum Senden von Ereignissen mit dem Measurement Protocol

Zeitstempel überschreiben

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

  1. Die timestamp_micros des Eintrags in user_properties.
  2. Die timestamp_micros der Anfrage.
  3. Der Zeitpunkt, zu dem die Measurement Protocol-Anfrage empfangen wird.

Im folgenden Beispiel wird ein Zeitstempel auf Anfrageebene gesendet, der für alle Nutzer-Properties in der Anfrage gilt. Daher wird für die Nutzereigenschaften customer_tier und customer_group im Measurement Protocol der Zeitstempel requestUnixEpochTimeInMicros zugewiesen.

{
  "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 wird dem customer_tier im Measurement Protocol der Zeitstempel customerTierUnixEpochTimeInMicros und dem customer_group der Zeitstempel requestUnixEpochTimeInMicros zugewiesen.

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