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 bestätigt haben, dass Ihre Ereignisse richtig strukturiert sind, sollten Sie Ihre Implementierung überprüfen, um sicherzugehen, dass Sie die richtigen Schlüssel verwenden.

Sie können den Validierungsserver entweder direkt aufrufen oder den Google Analytics Event Builder verwenden. Mit dem Google Analytics Event Builder können Sie Ereignisse interaktiv erstellen und sie mithilfe des Measurement Protocol-Validierungsservers validieren.

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

Ereignisse zur Validierung senden

Der einzige Unterschied bei der Anfrage für Ereignisse, die an den 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 folgende Vorgehensweise bei der Validierung:

  • Verwenden Sie während der Entwicklung strenge Validierungsprüfungen mit einer der folgenden Optionen:
    • Anfragen mit dem Event Builder validieren
    • 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 Menge der vom Measurement Protocol abgelehnten Daten zu minimieren.

Beispiel für ein ungültiges Ereignis

Im folgenden Code wird ein ungültiges Ereignis an den Measurement Protocol-Validierungsserver gesendet:

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

Im folgenden Code sehen Sie, wie ein gültiges Ereignis an den Measurement Protocol-Validierungsserver 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 sehen Sie 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 ungültigen Feld.
description String Eine Beschreibung des Fehlers.
validationCode ValidationCode Ein Validierungscode, der dem Fehler entspricht.

ValidationCode

Wert Beschreibung
VALUE_INVALID Der für fieldPath angegebene Wert ist ungültig. Weitere Informationen
VALUE_REQUIRED Für fieldPath wurde kein erforderlicher Wert angegeben.
NAME_INVALID Der angegebene Name war ungültig. Weitere Informationen
NAME_RESERVED Der angegebene Name war einer der reservierten Namen. Weitere Informationen finden Sie unter Reservierte Namen.
VALUE_OUT_OF_BOUNDS Der angegebene Wert war zu groß. Weitere Informationen
EXCEEDED_MAX_ENTITIES Die Anfrage enthielt zu viele Parameter. Weitere Informationen
NAME_DUPLICATED Derselbe Name wurde in der Anfrage mehrmals angegeben.