Ce guide explique comment envoyer Flux Web et d'application via le protocole de mesure Google Analytics événements en serveur Google Analytics, afin que vous puissiez afficher les événements du protocole de mesure dans dans vos rapports Google Analytics.
Choisissez la plate-forme que vous souhaitez voir dans ce guide:
Mettre en forme 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 HTTP/1.1
HOST: www.google-analytics.com
Content-Type: application/json
<payload_data>
Vous devez fournir les éléments suivants dans l'URL de la requête:
api_secret
: le SECRET de l'API généré dans l'interface utilisateur de Google Analytics.Pour créer un secret, accédez à Admin > Flux de données > choisir votre diffusion > Protocole de mesure > Créer :
firebase_app_id
: ID de l'application Firebase, disponible dans la console Firebase sous Paramètres du projet > Général > Vos applications > ID de l'application.firebase_app_id
est différent deapp_instance_id
. Lafirebase_app_id
identifie votre application, tandis queapp_instance_id
identifie une seule installation de l'application.
Pour en savoir plus, consultez la section Paramètres de requête.
Vous devez fournir les éléments suivants dans le corps de la requête:
app_instance_id
: identifiant unique d'une instance d'application Firebase. C'est différent d'unclient_id
Web:
user_id
: facultatif. Identifiant unique d'un utilisateur. Ne peut contenir que le format UTF-8 caractères. Pour en savoir plus, consultez User-ID pour l'analyse multiplate-forme. concernant cet identifiant.consent
: facultatif. Découvrez comment définir le consentement paramètres.timestamp_micros
: facultatif. Heure de l'epoch Unix en microsecondes pour la valeur et les propriétés utilisateur dans la requête. Si aucune valeur n'est spécifiée, la valeur par défaut est au moment de la demande.events
: tableau d'éléments d'événement. Vous pouvez inclure plusieurs événements dans un requête.Pour que l'activité des utilisateurs s'affiche dans des rapports tels que Temps réel,
engagement_time_msec
etsession_id
doivent être fournis dans le cadre deparams
pourevent
. Le paramètreengagement_time_msec
doit refléter la durée d'engagement de l'événement, en millisecondes.Exemple :
{
"app_instance_id": "12345678901234567890123456789012",
"events": [
{
"name": "campaign_details",
"params": {
"campaign_id": "google_1234",
"campaign": "Summer_fun",
"source": "google",
"medium": "cpc",
"term": "summer+travel",
"content": "logolink",
"session_id": "123",
"engagement_time_msec": "100"
}
}
]
}
```
While `session_start` is a [reserved event
name](/analytics/devguides/collection/protocol/ga4/reference#reserved_names),
creating a new `session_id` creates a new session without the need to send
`session_start`. Understand how [sessions are
counted](//support.google.com/analytics/answer/9191807).
## Try it
Here's an example you can use to send a [`tutorial_begin`] event to your Google
Analytics server:
```javascript
const firebase_app_id = `1:1234567890:android:321abc456def7890`;
const api_secret = `<secret_value>`;
fetch(`https://www.google-analytics.com/mp/collect?firebase_app_id=${firebase_app_id}&api_secret=${api_secret}`, {
method: "POST",
body: JSON.stringify({
app_instance_id: 'app_instance_id',
events: [{
name: 'tutorial_begin',
params: {},
}]
})
});
```
The format of `firebase_app_id` is platform specific. See **Application ID**
under [Firebase config files and objects].
## Override timestamp
The Measurement Protocol uses the *first* timestamp it finds in the following
list for each event in the request:
1. The `timestamp_micros` of the event.
1. The `timestamp_micros` of the request.
1. The time that the Measurement Protocol receives the request.
The following example sends a request-level timestamp that applies to all of
the events in the request. As a result, the Measurement Protocol assigns both the
`tutorial_begin` and `join_group` events a timestamp of
`requestUnixEpochTimeInMicros`.
```javascript
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin"
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
]
}
```
The following example sends both a request-level timestamp and an event-level
timestamp. As a result, the Measurement Protocol assigns the `tutorial_begin`
event a timestamp of `tutorialBeginUnixEpochTimeInMicros`, and the `join_group`
event a timestamp of `requestUnixEpochTimeInMicros`.
```javascript
{
"timestamp_micros": requestUnixEpochTimeInMicros,
"events": [
{
"name": "tutorial_begin",
"timestamp_micros": tutorialBeginUnixEpochTimeInMicros
},
{
"name": "join_group",
"params": {
"group_id": "G_12345",
}
}
]
}
```
## Limitations
The following limitations apply to sending Measurement Protocol events to Google
Analytics:
Note: For information on the limitations of 360 features, see [Google Analytics
360](//support.google.com/analytics/answer/11202874).
* Requests can have a maximum of 25 events.
* Events can have a maximum of 25 parameters.
* Events can have a maximum of 25 user properties.
* User property names must be 24 characters or fewer.
* User property values must be 36 characters or fewer.
* Event names must be 40 characters or fewer, can only contain alpha-numeric
characters and underscores, and must start with an alphabetic character.
* Parameter names including item parameters must be 40 characters or fewer,
can only contain alpha-numeric characters and underscores, and must start
with an alphabetic character.
* Parameter values including item parameter values must be 100 characters or
fewer for a standard Google Analytics property, and 500 characters or fewer
for a Google Analytics 360 property.
* Item parameters can have a maximum of 10 custom parameters.
* The post body must be smaller than 130kB.
* App Measurement Protocol events sent to Google Analytics 4 don't populate
Search audiences in Google Ads for app users.
For additional requirements of each use case, see [common use cases].