Envoyer des événements du protocole de mesure à Google Analytics

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 de app_instance_id. La firebase_app_id identifie votre application, tandis que app_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:

  • 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 et session_id doivent être fournis dans le cadre de params pour event. Le paramètre engagement_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].