Valider des événements

Choisissez votre plate-forme :

Le protocole de mesure Google Analytics n'affiche pas de codes d'erreur HTTP, même si un événement est incorrect ou n'inclut pas tous les paramètres obligatoires. Pour vous assurer que vos événements sont valides, vous devriez les tester avec le serveur de validation du protocole de mesure avant de les déployer en production. Une fois que vous avez vérifié que vos événements sont correctement structurés, vous devez vérifier votre implémentation pour vous assurer que vous utilisez les clés appropriées.

Vous pouvez appeler directement le serveur de validation ou utiliser le Google Analytics générateur d'événements. Le générateur d'événements Google Analytics vous permet de créer des événements de manière interactive et utilise le serveur de validation du protocole de mesure pour les valider.

Ce guide explique comment envoyer des événements au serveur de validation du protocole de mesure pour Google Analytics et comment interpréter la réponse.

Envoyer des événements pour validation

La seule différence entre la requête pour les événements envoyés au protocole de mesure et le serveur de validation du protocole de mesure est l'URL.

Serveur URL
Protocole de mesure /mp/collect
Serveur de validation du protocole de mesure /debug/mp/collect

Tous les autres champs de requête sont identiques.

Nous vous recommandons l'approche de validation suivante :

  • Utilisez des vérifications de validation strictes lors du développement en utilisant l'une des options suivantes :
    • Validez les requêtes avec le générateur d'événements.
    • Envoyez des requêtes au serveur de validation avec validation_behavior défini sur ENFORCE_RECOMMENDATIONS.
  • En production, envoyez des requêtes sans validation_behavior défini pour minimiser les données rejetées par le protocole de mesure.

Exemple d'événement non valide

Le code suivant montre un événement non valide envoyé au serveur de validation du protocole de mesure :

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: {},
    }]
  })
});

Exemple d'événement valide

Le code suivant montre un événement valide envoyé au serveur de validation du protocole de mesure. Cette requête génère un tableau vide validationMessages dans la réponse, comme indiqué dans la section Réponse de validation.

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"
      },
    }]
  })
});

Réponse de validation

Voici la réponse du serveur de validation à l'exemple d'événement non valide.

{
  "validationMessages": [
    {
      "fieldPath": "events",
      "description": "Event at index: [0] has invalid name [_badEventName]. Names must start with an alphabetic character.",
      "validationCode": "NAME_INVALID"
    }
  ]
}

Voici la réponse du serveur de validation à une requête sans problème de validation :

{
  "validationMessages": []
}

Réponse

Clé Type Description
validationMessages Tableau<ValidationMessage> Tableau de messages de validation.

ValidationMessage

Clé Type Description
fieldPath chaîne Chemin d'accès au champ non valide.
description chaîne Description de l'erreur.
validationCode ValidationCode Code de validation correspondant à l'erreur.

ValidationCode

Valeur Description
VALUE_INVALID La valeur fournie pour un fieldPath n'était pas valide. Consultez les limites.
VALUE_REQUIRED Aucune valeur requise n'a été fournie pour un fieldPath.
NAME_INVALID Le nom fourni n'était pas valide. Consultez les limites.
NAME_RESERVED Le nom fourni était l'un des noms réservés. Consultez les noms réservés.
VALUE_OUT_OF_BOUNDS La valeur fournie était trop élevée. Consultez les limites.
EXCEEDED_MAX_ENTITIES La requête contenait trop de paramètres. Consultez les limites.
NAME_DUPLICATED Le même nom a été fourni plusieurs fois dans la requête.