Ereignisse validieren

Plattform auswählen:

Der Google Analytics Measurement Protocol-Server gibt keine HTTP-Fehlercodes zurück, selbst wenn ein Ereignis falsch formatiert ist oder 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 sicherzustellen, dass Sie die richtigen Schlüssel verwenden.

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

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

Ereignisse zur Validierung senden

Der einzige Unterschied in 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 Anfragenfelder sind identisch.

Wir empfehlen den folgenden Ansatz für die Validierung:

  • Verwenden Sie während der Entwicklung strenge Validierungsprüfungen mit einer der folgenden Optionen:
    • Anfragen mit dem Tool zur Ereigniserstellung validieren.
    • Anfragen an den Validierungsserver senden, wobei validation_behavior auf ENFORCE_RECOMMENDATIONS gesetzt ist
  • Senden Sie in der Produktion Anfragen ohne festgelegtes validation_behavior, um die Menge der 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 Measurement Protocol-Validierungsserver 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 Measurement Protocol-Validierungsserver gesendet wird. Diese Anfrage würde in der Antwort ein leeres validationMessages Array ergeben, 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 sehen Sie die Antwort des Validierungsservers auf eine Anfrage ohne Validierungsprobleme:

{
  "validationMessages": []
}

Antwort

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

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 einen fieldPath angegebene Wert war ungültig. Weitere Informationen finden Sie unter Einschränkungen.
VALUE_REQUIRED Für einen fieldPath wurde kein erforderlicher Wert angegeben.
NAME_INVALID Der angegebene Name war ungültig. Weitere Informationen finden Sie unter Einschränkungen.
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 finden Sie unter Einschränkungen.
EXCEEDED_MAX_ENTITIES Die Anfrage enthielt zu viele Parameter. Weitere Informationen finden Sie unter Einschränkungen.
NAME_DUPLICATED Derselbe Name wurde in der Anfrage mehrmals angegeben.