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