Convalida eventi

Scegli la tua 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, devi 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. Lo Strumento per la 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 e interpretare la risposta.

Invia gli 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.

Per la convalida, ti consigliamo di procedere come segue:

  • Utilizza controlli di convalida rigorosi durante lo sviluppo utilizzando una delle seguenti opzioni:
    • Convalida le richieste con Event Builder.
    • Invia le richieste al server di convalida con validation_behavior impostato su ENFORCE_RECOMMENDATIONS.
  • In produzione, invia le richieste senza impostare validation_behavior 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 restituirebbe un array validationMessages vuoto 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 corrispondente 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 era valido. Consulta le limitazioni.
NAME_RESERVED Il nome fornito era uno dei nomi riservati. Consulta i nomi riservati.
VALUE_OUT_OF_BOUNDS Il valore fornito è troppo grande. Consulta le limitazioni.
EXCEEDED_MAX_ENTITIES La richiesta conteneva troppi parametri. Consulta le limitazioni.
NAME_DUPLICATED Nella richiesta è stato fornito lo stesso nome più di una volta.