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