Nutzereigenschaften senden

Nutzereigenschaften beschreiben Nutzersegmente, z. B. die Spracheinstellung oder den geografischen Standort. 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 benutzerdefinierten 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 in 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 Nutzereigenschaft (customer_tier), die Sie Ihren Analysen hinzufügen möchten. customer_tier kann auf premium oder standard festgelegt werden. So würden Sie diese Nutzereigenschaft in Ihre Berichte aufnehmen:

Lassen Sie den Client zuerst 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 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)
    })
  });
}

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

Hier finden Sie weitere Informationen zum Senden von Ereignissen über das Measurement Protocol.

Zeitstempel überschreiben

Das Measurement Protocol verwendet den ersten Zeitstempel, der in der folgenden Liste für jede Nutzereigenschaft 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 Anfrage im Measurement Protocol eingeht.

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