Scegli la piattaforma:
Measurement Protocol di Google Analytics non restituisce codici di errore HTTP, anche se un evento è formattato in modo errato o mancano i parametri obbligatori. Per verificare la validità degli eventi, dovresti testarli in relazione al server di convalida di Measurement Protocol prima di eseguirne il deployment in produzione.
Dopo aver verificato che gli eventi siano strutturati correttamente, dovresti
verificare l'implementazione per assicurarti di utilizzare le chiavi corrette.
Puoi chiamare direttamente il server di convalida o utilizzare lo strumento di creazione eventi di Google Analytics Event Builder. Lo strumento di creazione di eventi di Google Analytics ti consente di creare eventi in modo interattivo e utilizza il server di convalida di Measurement Protocol per convalidarli.
Questa guida descrive come inviare eventi al server di convalida di Measurement Protocol per Google Analytics 4 e interpretare la risposta.
Inviare eventi per la convalida
L'unica differenza nella richiesta di eventi inviati a Measurement Protocol e al server di convalida di Measurement Protocol è l'URL.
| Server | URL |
|---|---|
| Measurement Protocol | /mp/collect |
| Server di convalida di Measurement Protocol | /debug/mp/collect |
Tutti gli altri campi della richiesta sono gli stessi.
Ti consigliamo di utilizzare il seguente approccio alla convalida:
- Utilizza controlli di convalida rigorosi durante lo sviluppo utilizzando una delle seguenti opzioni:
- In produzione, invia le richieste senza
validation_behaviorimpostato per ridurre al minimo i dati rifiutati da Measurement Protocol.
Esempio di evento non valido
Il seguente codice mostra un evento non valido inviato al server di convalida di Measurement Protocol:
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: {},
}]
})
});
Esempio di evento valido
Il seguente codice mostra un evento valido inviato al server di convalida di Measurement Protocol. Questa richiesta genererebbe un array vuoto validationMessages
nella risposta, come mostrato nella sezione Risposta di convalida.
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"
},
}]
})
});
Risposta di convalida
Ecco la risposta del server di convalida all'esempio di evento non valido.
{
"validationMessages": [
{
"fieldPath": "events",
"description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
"validationCode": "NAME_INVALID"
}
]
}
Ecco la risposta del server di convalida a una richiesta senza problemi di convalida:
{
"validationMessages": []
}
Risposta
| Chiave | Tipo | Descrizione |
|---|---|---|
validationMessages |
Array<ValidationMessage> | Un array di messaggi di convalida. |
ValidationMessage
| Chiave | Tipo | Descrizione |
|---|---|---|
fieldPath |
stringa | Il percorso del campo non valido. |
description |
stringa | Una descrizione dell'errore. |
validationCode |
ValidationCode | Un codice di convalida che corrisponde all'errore. |
ValidationCode
| Valore | Descrizione |
|---|---|
VALUE_INVALID |
Il valore fornito per un fieldPath non è valido. Consulta le limitazioni.
|
VALUE_REQUIRED |
Non è stato fornito un valore obbligatorio per un fieldPath. |
NAME_INVALID |
Il nome fornito non è valido. Consulta le limitazioni. |
NAME_RESERVED |
Il nome fornito è uno dei nomi riservati. Consulta i nomi riservati. |
VALUE_OUT_OF_BOUNDS |
Il valore fornito è troppo grande. Consulta le limitazioni. |
EXCEEDED_MAX_ENTITIES |
Nella richiesta sono presenti troppi parametri. Consulta le limitazioni. |
NAME_DUPLICATED |
Lo stesso nome è stato fornito più di una volta nella richiesta. |