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 4 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 identisch.
Wir empfehlen die folgende Vorgehensweise für die 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_behavioraufENFORCE_RECOMMENDATIONSgesetzt 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
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
Der folgende Code zeigt ein gültiges Ereignis, das an den Measurement Protocol-Validierungsserver gesendet wird. Diese Anfrage würde ein leeres validationMessages-Array in der Antwort zurückgeben, wie im Abschnitt Validierungsantwort dargestellt.
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 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 ein fieldPath wurde kein erforderlicher Wert angegeben. |
NAME_INVALID |
Der angegebene Name ist ungültig. Weitere Informationen |
NAME_RESERVED |
Der angegebene Name war einer der reservierten Namen. 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. |