Convalida eventi

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:
    • Convalida le richieste con lo Strumento di creazione eventi .
    • Invia le richieste al server di convalida con validation_behavior impostato su ENFORCE_RECOMMENDATIONS.
  • In produzione, invia le richieste senza validation_behavior impostato 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.