Envoyer des événements du protocole de mesure à Google Analytics  |  Google Analytics  |  Google for Developers (original) (raw)

Ce guide explique comment envoyer des événements de flux Web et d'application protocole de mesure Google Analytics à un serveur Google Analytics afin de pouvoir les afficher dans vos rapports Google Analytics.

Choisissez la plate-forme que vous souhaitez voir dans ce guide:

Mise en forme de la requête

Le protocole de mesure Google Analytics n'est compatible qu'avec 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 :

Pour obtenir la documentation de référence complète, consultez la section Paramètres de requête.

Vous devez fournir les éléments suivants dans le corps de la requête:

  {
   "client_id": "123456.7654321",
   "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
        }
     }
   ]
  }

Même si session_start est un nom d'événement réservé, créer un session_id génère 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 événement tutorial_begin et un événement join_group à votre serveur Google Analytics, inclut des informations géographiques à l'aide du champ user_location et inclut des informations sur l'appareil à l'aide du champ device.

const measurement_id = `G-XXXXXXXXXX`;
const api_secret = `<secret_value>`;

fetch(`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`, {
  method: "POST",
  body: JSON.stringify({
    client_id: "XXXXXXXXXX.YYYYYYYYYY",
    events: [
      {
        name: "tutorial_begin",
        params: {
          "session_id": "123",
          "engagement_time_msec": 100
        }
      },
      {
        name: "join_group",
        params: {
          "group_id": "G_12345",
          "session_id": "123",
          "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"
    }
  })
});

Code temporel de remplacement

Le protocole de mesure utilise le premier code temporel qu'il trouve dans la liste suivante pour chaque événement de la requête:

  1. timestamp_micros de l'événement.
  2. timestamp_micros de la requête.
  3. Heure à laquelle le protocole de mesure reçoit la requête.

L'exemple suivant envoie un code temporel au niveau de la requête qui s'applique à tous les événements de la requête. Par conséquent, le protocole de mesure attribue un code temporel requestUnixEpochTimeInMicros aux événements tutorial_begin et join_group.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin"
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}

L'exemple suivant envoie à la fois un code temporel au niveau de la requête et un code temporel au niveau de l'événement. Par conséquent, le protocole de mesure attribue à l'événement tutorial_begin un code temporel de tutorialBeginUnixEpochTimeInMicros et à l'événement join_group un code temporel de requestUnixEpochTimeInMicros.

{
  "timestamp_micros": requestUnixEpochTimeInMicros,
  "events": [
    {
      "name": "tutorial_begin",
      "timestamp_micros": tutorialBeginUnixEpochTimeInMicros
    },
    {
      "name": "join_group",
      "params": {
        "group_id": "G_12345",
      }
    }
  ]
}

Limites

Les limites suivantes s'appliquent à l'envoi d'événements du protocole de mesure à Google Analytics:

Pour connaître les exigences supplémentaires de chaque cas d'utilisation, consultez les cas d'utilisation courants.