Ereignisse validieren

Wählen Sie Ihre Plattform aus:

Das Google Analytics Measurement Protocol gibt keine HTTP-Fehlercodes zurück, selbst wenn ein Ereignis falsch formatiert ist oder erforderliche Parameter fehlen. Damit Ihre Ereignisse auf jeden Fall gültig sind, sollten Sie sie mit dem Measurement Protocol-Validierungsserver testen, bevor Sie sie in die Produktion übernehmen. Nachdem Sie überprüft haben, ob Ihre Ereignisse richtig strukturiert sind, sollten Sie Ihre Implementierung verifizieren, um sicherzustellen, dass Sie die richtigen Schlüssel verwenden.

Sie können den Validierungsserver entweder direkt aufrufen oder das Google Analytics Event Builder-Tool verwenden. Mit dem Google Analytics Event Builder können Sie Ereignisse interaktiv erstellen und mit dem Measurement Protocol-Validierungsserver validieren.

In diesem Leitfaden wird beschrieben, wie Sie Ereignisse an den Validierungsserver des Measurement Protocol für Google Analytics senden und die Antwort interpretieren.

Ereignisse zur Validierung senden

Der einzige Unterschied bei der Anfrage für Ereignisse, die an das Measurement Protocol und den Measurement Protocol-Validierungsserver gesendet werden, ist die URL.

Server URL
Measurement Protocol /mp/collect
Measurement Protocol-Validierungsserver /debug/mp/collect

Alle anderen Anfragefelder sind gleich.

Wir empfehlen die folgende Vorgehensweise zur Validierung:

  • Verwenden Sie während der Entwicklung strenge Validierungsprüfungen mit einer der folgenden Optionen:
    • Validieren Sie Anfragen mit dem Event Builder.
    • Senden Sie Anfragen an den Validierungsserver, wobei validation_behavior auf ENFORCE_RECOMMENDATIONS festgelegt ist.
  • Senden Sie in der Produktion Anfragen ohne validation_behavior, um die vom Measurement Protocol abgelehnten Daten zu minimieren.

Beispiel für ein ungültiges Ereignis

Der folgende Code zeigt ein ungültiges Ereignis, das an den Validierungsserver des Measurement Protocol gesendet wird:

const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";

fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    app_instance_id: "APP_INSTANCE_ID",
    validation_behavior: "ENFORCE_RECOMMENDATIONS",
    events: [{
      // Event names must start with an alphabetic character.
      name: "_badEventName",
      params: {},
    }]
  })
});

Beispiel für ein gültiges Ereignis

Der folgende Code zeigt ein gültiges Ereignis, das an den Validierungsserver des Measurement Protocol gesendet wird. Diese Anfrage würde ein leeres validationMessages-Array in der Antwort zurückgeben, wie im Abschnitt Validierungsantwort gezeigt.

const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";

fetch(`https://www.google-analytics.com/debug/mp/collect?firebase_app_id=${firebaseAppId}&api_secret=${apiSecret}`, {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    app_instance_id: "APP_INSTANCE_ID",
    validation_behavior: "ENFORCE_RECOMMENDATIONS",
    events: [{
      name: "level_up",
      params: {
        level: 2,
        character: "MyHero"
      },
    }]
  })
});

Validierungsantwort

Hier ist die Antwort des Validierungsservers auf das Beispiel für ein ungültiges Ereignis.

{
  "validationMessages": [
    {
      "fieldPath": "events",
      "description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
      "validationCode": "NAME_INVALID"
    }
  ]
}

Hier ist die Antwort des Validierungsservers auf eine Anfrage ohne Validierungsprobleme:

{
  "validationMessages": []
}

Antwort

Schlüssel Typ Beschreibung
validationMessages Array<ValidationMessage> Ein Array von Validierungsmeldungen.

ValidationMessage

Schlüssel Typ Beschreibung
fieldPath String Der Pfad zum Feld, das ungültig war.
description String Eine Fehlerbeschreibung.
validationCode ValidationCode Ein Validierungscode, der dem Fehler entspricht.

ValidationCode

Wert Beschreibung
VALUE_INVALID Der für fieldPath angegebene Wert war ungültig. Weitere Informationen zu Einschränkungen
VALUE_REQUIRED Ein erforderlicher Wert für fieldPath wurde nicht angegeben.
NAME_INVALID Der angegebene Name war ungültig. Weitere Informationen zu Einschränkungen
NAME_RESERVED Der angegebene Name ist einer der reservierten Namen. Siehe reservierte Namen.
VALUE_OUT_OF_BOUNDS Der angegebene Wert war zu groß. Weitere Informationen zu Einschränkungen
EXCEEDED_MAX_ENTITIES Die Anfrage enthielt zu viele Parameter. Weitere Informationen zu Einschränkungen
NAME_DUPLICATED In der Anfrage wurde derselbe Name mehrmals angegeben.