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_behaviordéfini surENFORCE_RECOMMENDATIONS.
- En production, envoyez des requêtes sans
validation_behaviordé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. |