Ce guide explique comment envoyer des événements de flux Web et d'application du protocole de mesure Google Analytics à un serveur Google Analytics afin de pouvoir les consulter dans vos rapports Google Analytics.
Les identifiants et paramètres requis pour les requêtes du protocole de mesure varient selon que vous envoyez des événements à un flux Web ou à un flux d'application.
- Pour les flux Web (généralement instrumentés avec gtag.js ou Google Tag Manager), vous utilisez le
measurement_iddans l'URL de la requête et leclient_iddans le corps JSON pour identifier l'instance utilisateur. Leclient_iddoit correspondre à l'ID généré par la balise Google Analytics sur votre site Web. - Pour les flux d'application (instrumentés avec le SDK Firebase), vous utilisez le
firebase_app_iddans l'URL de la requête et leapp_instance_iddans le corps JSON, qui sont fournis par le SDK Google Analytics for Firebase.
Ce guide fournit des exemples pour les deux scénarios.
Composants clés des requêtes par type de flux
| Composant | Flux Web (gtag.js/GTM) | Flux d'application (Firebase) |
|---|---|---|
| Paramètre d'URL du flux de données | measurement_id |
firebase_app_id |
| Paramètre d'URL du code secret d'API | Obligatoire | Obligatoire |
| Champ du corps JSON de l'ID d'appareil | client_id |
app_instance_id |
Sélectionnez la plate-forme que vous souhaitez afficher dans ce guide :
Cet onglet contient des instructions pour envoyer des événements depuis votre serveur qui sont corrélés à l'activité des utilisateurs dans un flux d'application à l'aide du SDK Google Analytics for Firebase. N'oubliez pas que ces requêtes utilisent firebase_app_id et app_instance_id.
Prérequis
Pour envoyer des événements à l'aide du protocole de mesure, vous avez besoin d'identifiants spécifiques de votre propriété Google Analytics ou de votre projet Firebase.
Code secret d'API
Le api_secret permet d'authentifier vos requêtes. Il est essentiel de le garder confidentiel.
Pour créer un secret :
- Accédez à Google Analytics, puis à votre compte et à votre propriété.
- En bas à gauche, cliquez sur Admin.
- Sous Collecte et modification des données, cliquez sur Flux de données.
- Sélectionnez votre flux de données Web ou d'application.
- Cliquez sur Codes secrets de l'API du protocole de mesure.
- Cliquez sur Créer.
- Saisissez un surnom pour le secret, puis cliquez sur Créer.
Copiez la valeur du secret.
ID de l'application Firebase
Le firebase_app_id identifie votre application Firebase. Il est différent du app_instance_id.
Pour trouver votre ID d'application Firebase :
- Ouvrez votre projet dans la console Firebase.
- Cliquez sur l'icône Paramètres (en forme de roue dentée) à côté de Présentation du projet , puis sélectionnez Paramètres du projet.
- Dans l'onglet Général, accédez à la section Vos applications.
- Sélectionnez l'application iOS ou Android spécifique.
- Copiez la valeur de l'ID d'application.
Mise en forme de la requête
Le protocole de mesure Google Analytics n'accepte que les requêtes HTTP POST.
Pour envoyer un événement, utilisez le format suivant :
POST /mp/collect?firebase_app_id=<var>FIREBASE_APP_ID</var>&api_secret=<var>API_SECRET</var> HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
PAYLOAD_DATA
Vous devez fournir les éléments suivants dans les paramètres de requête de l'URL (consultez la section Prérequis pour savoir comment trouver ou créer ces valeurs) :
api_secret: code secret d'API pour authentifier la requête.firebase_app_id: ID d'application Firebase de votre application.
Vous devez fournir un corps de requête au format JSON POST pour le protocole de mesure. Exemple :
{
"app_instance_id": "APP_INSTANCE_ID",
"events": [
{
"name": "login",
"params": {
"method": "Google",
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
}
]
}
Vous devez fournir app_instance_id dans le corps de la requête pour identifier une installation unique de votre application mobile. Notez que cet ID est différent du firebase_app_id, qui identifie l'application elle-même. Pour en savoir plus sur le
app_instance_id et sur la façon de le récupérer à l'aide du SDK Firebase, consultez la
documentation de référence sur app_instance_id.
Bien que session_start soit un nom d'événement réservé,
la création d'un nouveau session_id crée une nouvelle session sans qu'il soit nécessaire d'envoyer
session_start. Découvrez comment les sessions sont
comptabilisées.
Essayer
Voici un exemple que vous pouvez utiliser pour envoyer plusieurs événements à la fois. Cet exemple
envoie un tutorial_begin événement et un
join_group événement à votre serveur Google Analytics, inclut des informations
géographiques à l'aide du champ user_location et des informations sur l'appareil
à l'aide du champ device.
const firebaseAppId = "FIREBASE_APP_ID";
const apiSecret = "API_SECRET";
fetch(`https://www.google-analytics.com/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",
events: [
{
name: "tutorial_begin",
params: {
"session_id": "SESSION_ID",
"engagement_time_msec": 100
}
},
{
name: "join_group",
params: {
"group_id": "G_12345",
"session_id": "SESSION_ID",
"engagement_time_msec": 150
}
}
],
user_location: {
city: "Mountain View",
region_id: "US-CA",
country_id: "US",
subcontinent_id: "021",
continent_id: "019"
},
device: {
category: "mobile",
language: "en",
screen_resolution: "1280x2856",
operating_system: "Android",
operating_system_version: "14",
model: "Pixel 9 Pro",
brand: "Google",
browser: "Chrome",
browser_version: "136.0.7103.60"
}
})
});
Le format de firebase_app_id est spécifique à la plate-forme. Consultez ID d'application
sous Fichiers et objets de configuration Firebase.
Remplacer l'horodatage
Le protocole de mesure utilise le premier horodatage qu'il trouve dans la liste suivante pour chaque événement et propriété utilisateur de la requête :
- Le
timestamp_microsde l'événement ou de la propriété utilisateur. - Le
timestamp_microsde la requête. - L'heure à laquelle le protocole de mesure reçoit la requête.
L'exemple suivant envoie un horodatage au niveau de la requête qui s'applique à tous les
événements et propriétés
utilisateur de la
requête. Par conséquent, le protocole de mesure attribue un horodatage requestUnixEpochTimeInMicros aux événements tutorial_begin et join_group, ainsi qu'à la propriété utilisateur customer_tier.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin"
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM"
}
}
}
L'exemple suivant envoie un horodatage au niveau de la requête, un horodatage au niveau de l'événement et un horodatage au niveau de la propriété utilisateur. Par conséquent, le protocole de mesure attribue les horodatages suivants :
tutorialBeginUnixEpochTimeInMicrospour l'événementtutorial_begincustomerTierUnixEpochTimeInMicrospour la propriété utilisateurcustomer_tierrequestUnixEpochTimeInMicrospour l'événementjoin_groupet la propriété utilisateurnewsletter_reader.
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin",
"timestamp_micros": tutorialBeginUnixEpochTimeInMicros
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
],
"user_properties": {
"customer_tier": {
"value": "PREMIUM",
"timestamp_micros": customerTierUnixEpochTimeInMicros
},
"newsletter_reader": {
"value": "true"
}
}
}
Comportement de validation pour les événements et propriétés utilisateur passés
Les événements et les propriétés utilisateur peuvent être rétrodatés jusqu'à 72 heures. Si la valeur timestamp_micros est antérieure à 72 heures, le protocole de mesure accepte ou refuse l'événement ou la propriété utilisateur comme suit :
- Si le
validation_behaviorn'est pas défini ou est défini surRELAXED, le protocole de mesure accepte l'événement ou la propriété utilisateur, mais remplace son horodatage par celui d'il y a 72 heures. - Si le
validation_behaviorest défini surENFORCE_RECOMMENDATIONS, le protocole de mesure refuse l'événement ou la propriété utilisateur.
Les événements envoyés à l'aide du protocole de mesure et destinés à être associés ou traités conjointement avec des événements collectés par le SDK Google Analytics for Firebase ou gtag.js doivent être reçus par Google Analytics dans les 48 heures suivant l'horodatage de l'événement côté client d'origine. Les événements reçus ultérieurement peuvent ne pas être traités comme prévu, en particulier à des fins telles que l'attribution des conversions.
Limites
Les limites suivantes s'appliquent à l'envoi d'événements du protocole de mesure à Google Analytics :
Vous pouvez envoyer au maximum 100 millions de requêtes sans conversion par heure pour chaque propriété. Une requête est une requête sans conversion si aucun des événements de la requête n'est un événement clé pour lequel il existe une conversion dans Google Ads. Si vous dépassez cette limite, le protocole de mesure ignore silencieusement toutes les requêtes sans conversion pour la propriété pendant le reste de l'heure.
Les requêtes ne doivent pas inclure plus de 25 événements.
Les événements ne doivent pas inclure plus de 25 paramètres.
Les événements ne doivent pas inclure plus de 25 propriétés utilisateur.
Les noms de propriétés utilisateur ne doivent pas dépasser 24 caractères.
Les valeurs des propriétés utilisateur ne doivent pas dépasser 36 caractères.
Les noms d'événements ne doivent pas dépasser 40 caractères, ne peuvent contenir que des caractères alphanumériques et des traits de soulignement, et doivent commencer par un caractère alphabétique.
Les noms de paramètres, y compris les paramètres d'article, ne doivent pas dépasser 40 caractères, ne peuvent contenir que des caractères alphanumériques et des traits de soulignement, et doivent commencer par un caractère alphabétique.
Les valeurs de paramètres, y compris les valeurs des paramètres d'article, ne doivent pas dépasser 100 caractères pour une propriété Google Analytics standard, et 500 caractères pour une propriété Google Analytics 360.
Cette limite ne s'applique pas aux paramètres
session_idetsession_numberlorsque leurs valeurs sont fournies par les variables intégrées correspondantes ID de session Analytics et Numéro de session Analytics dans Google Tag Manager.Les paramètres d'article ne doivent pas inclure plus de 10 paramètres personnalisés.
Le corps du post doit être inférieur à 130 Ko.
Les événements du protocole de mesure d'application envoyés à Google Analytics ne remplissent pas les audiences de recherche dans Google Ads pour les utilisateurs d'applications.
Certains noms d'événements, de paramètres et de propriétés utilisateur sont réservés et ne peuvent pas être utilisés. Pour en savoir plus, consultez Noms réservés pour détails.
Noms réservés
Le protocole de mesure comporte plusieurs noms réservés qui ne peuvent pas être utilisés pour les événements, les paramètres ni les propriétés utilisateur.
Les noms d'événements suivants sont souvent source de confusion :
screen_view: cet événement n'est autorisé que pour les flux d'application. Pour les flux Web, utilisez plutôtpage_view.ad_impression: cet événement n'est autorisé que pour les flux d'application.in_app_purchase: cet événement n'est autorisé que pour les flux d'application. Pour les flux Web, utilisez plutôt l'purchaseévénement.
Pour connaître les exigences supplémentaires de chaque cas d'utilisation, consultez Cas d'utilisation courants.