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_behavioraufENFORCE_RECOMMENDATIONSfestgelegt 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. |