Valider des événements

Choisissez votre plate-forme :

Le protocole de mesure Google Analytics ne renvoie 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. Après avoir vérifié que vos événements sont correctement structurés, vous devez valider votre implémentation pour vous assurer que vous utilisez les bonnes clés.

Vous pouvez appeler directement le serveur de validation ou utiliser l'outil de création d'événements Google Analytics. L'outil de création 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 celle pour les événements envoyés au 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 de procéder comme suit pour la validation :

  • Utilisez des contrôles de validation stricts pendant le développement à l'aide de 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 définir validation_behavior 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 validationMessages vide 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 Array<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'est pas valide. Consultez les limites.
VALUE_REQUIRED Une valeur requise pour un fieldPath n'a pas été fournie.
NAME_INVALID Le nom fourni n'est pas valide. Consultez les limites.
NAME_RESERVED Le nom fourni fait partie des noms réservés. Consultez la section Noms réservés.
VALUE_OUT_OF_BOUNDS La valeur fournie est 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.