Cette documentation est destinée à Universal Analytics. Consultez Protocole de mesure (Google Analytics 4) si vous utilisez Google Analytics 4.

Documentation du protocole de mesure

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Ce document explique comment envoyer des données à Google Analytics à l'aide du protocole de mesure.

Présentation

Pour envoyer des données à Google Analytics à l'aide du protocole de mesure, vous devez suivre deux étapes:

  • Transport : vers et où envoyer les données
  • Charge utile : les données que vous envoyez

Ce document explique comment mettre en forme les deux.

Transport

Point de terminaison d'URL

Pour envoyer des données à l'aide du protocole de mesure, envoyez des requêtes HTTP au point de terminaison suivant:

https://www.google-analytics.com/collect

Toutes les données doivent être envoyées de manière sécurisée via le protocole HTTPS.

Vous pouvez envoyer des données à l'aide des requêtes POST ou GET.

Utiliser POST

Nous vous recommandons d'envoyer les données via POST, car elles acceptent une charge utile plus importante. Lorsque vous utilisez la méthode POST, exécutez la requête HTTP suivante:

User-Agent: user_agent_string
POST https://www.google-analytics.com/collect
payload_data

Où :

  • user_agent_string est une chaîne user-agent mise en forme qui permet de calculer les dimensions suivantes: navigateur, plate-forme et capacités mobiles.

    Si cette valeur n'est pas définie, les données ci-dessus ne seront pas calculées.

  • payload_data : BODY de la requête post. Le corps doit inclure exactement une charge utile encodée en URI et ne doit pas dépasser 8 192 octets.
  • Adresse IP : est envoyée implicitement dans la requête HTTP et permet de calculer toutes les dimensions géographiques/de réseau dans Google Analytics.

CONSULTEZ

Pour les environnements dans lesquels vous ne pouvez pas envoyer de données POST, vous pouvez également envoyer des requêtes HTTP GET au même point de terminaison:

GET /collect?payload_data HTTP/1.1
Host: https://www.google-analytics.com
User-Agent: user_agent_string

Où les données de charge utile sont envoyées en tant que paramètres de requête avec échappement. La longueur de l'URL encodée ne doit pas dépasser 8 000 octets.

Contournement du cache

Dans certains environnements, tels que les navigateurs, les requêtes HTTP GET peuvent être mises en cache. Lorsqu'une requête est mise en cache, les requêtes suivantes peuvent être extraites du cache et ne pas être envoyées à Google Analytics. Pour contourner le cache, le protocole de mesure fournit un paramètre spécial (z) qui peut être défini avec un nombre aléatoire. Toutes les requêtes du protocole de mesure sont ainsi uniques, et les requêtes ultérieures ne sont pas récupérées dans le cache.

Lorsque vous utilisez le cache buster, nous vous recommandons vivement d'ajouter ce paramètre en tant que dernier paramètre de la charge utile.

https://www.google-analytics.com/collect?payload_data&z=123456

Codes de réponse

Le protocole de mesure renvoie un code d'état 2xx si la requête HTTP a été reçue. Le protocole de mesure ne renvoie pas de code d'erreur si les données de la charge utile sont incorrectes, ou si les données de la charge utile sont incorrectes ou n'ont pas été traitées par Google Analytics.

Si vous n'obtenez pas de code d'état 2xx, vous ne devez PAS relancer la requête. Vous devez plutôt arrêter et corriger les erreurs dans votre requête HTTP.

Données utiles

Toutes les données collectées par Google Analytics à l'aide du protocole de mesure sont envoyées en tant que charge utile. La charge utile ressemble à une chaîne de requête d'URL, dans laquelle chaque paramètre est associé à une clé et à une valeur, est séparée par un caractère =, et chaque paire est séparée par un caractère &. Exemple :

key1=val1&key2=val2

Chaque charge utile comporte des règles régissant les valeurs requises, l'encodage URI, les paramètres pouvant être envoyés ensemble et la longueur des paramètres. En outre, chaque paramètre est associé à un type spécifique nécessitant un format particulier. Les sections suivantes passent en revue ces règles.

Consultez la documentation de référence sur les paramètres pour obtenir la liste complète de tous les paramètres que vous pouvez envoyer via le protocole de mesure.

Valeurs obligatoires pour tous les appels

Les paramètres suivants doivent figurer dans chaque charge utile:

Nom Paramètre Exemple Description
Version du protocole v v=1 Version du protocole. La valeur doit être 1.
ID de suivi tid tid=UA-123456-1 ID qui permet de distinguer la propriété Google Analytics à laquelle envoyer les données.
ID client cid cid=xxxxx Identifiant unique attribué à un utilisateur particulier.
Type de l'appel t t=pageview Type d'interaction collectée pour un utilisateur donné.

Les données Client ID et Hit Type sont des valeurs mappées directement au modèle de données Google Analytics. Si vous souhaitez suivre l'utilisateur 5555 ayant accédé à /pageA, /pageB et /pageC, vous devez envoyer les trois charges utiles suivantes:

v=1&tid=UA-123456-1&cid=5555&t=pageview&dp=%2FpageA
v=1&tid=UA-123456-1&cid=5555&t=pageview&dp=%2FpageB
v=1&tid=UA-123456-1&cid=5555&t=pageview&dp=%2FpageC

Notez que / a été encodé sous %2F.

Valeurs d'encodage d'URL

Toutes les valeurs envoyées à Google Analytics doivent être au format UTF-8 et encodées en URL. Pour envoyer la clé dp avec la valeur /my page €, vous devez d'abord vous assurer qu'il est encodé au format UTF-8, puis encodé au format URL, ce qui génère la chaîne finale:

dp=%2Fmy%20page%20%E2%82%AC

Si l'un des caractères n'est pas encodé correctement, il sera remplacé par le caractère de remplacement Unicode xFFFD.

Valeurs requises pour certains types d'appels

Certains paramètres ne peuvent être envoyés qu'avec des types d'appels spécifiques. Par exemple, le type d'appel pageview nécessite que le paramètre "Chemin de la page" (dp) soit également défini. La documentation de référence sur les paramètres décrit les paramètres requis pour chaque type d'appel.

Longueur maximale

Certaines valeurs textuelles du protocole de mesure ont une longueur maximale spécifique en octets. Par exemple, la longueur maximale du champ de l'URL de provenance du fichier dr est de 2 048 octets. Si l'une des valeurs est supérieure à la longueur maximale autorisée, elle sera automatiquement tronquée. Si un caractère codé sur plusieurs octets dépasse la longueur maximale, il sera tronqué.

Types de données acceptés

Chaque champ de données du protocole de mesure appartient à un type spécifique, chacun avec ses propres règles de validation. Si l'une des valeurs de paramètre n'est pas conforme aux règles de validation, le paramètre spécifique sera ignoré et ne sera pas traité par Google Analytics. Tous les autres paramètres seront traités normalement.

Le protocole de mesure accepte les types de données suivants:

Notez que des champs de données individuels peuvent avoir leurs propres restrictions. Consultez la documentation de référence sur les champs pour obtenir la liste complète de tous les champs de données et les types acceptés.

Texte

Utilisé pour représenter des chaînes. Un traitement supplémentaire est effectué dans les champs de texte. Tous les espaces blancs de début et de fin sont supprimés. Les exécutions internes d'au moins deux espaces blancs (y compris l'espace, la tabulation, les sauts de ligne, etc.) sont réduites à un seul caractère d'espacement. Cette transformation est appliquée au texte brut avant qu'elle ne soit tronquée. Exemple :

   Hello      World

devient:

Hello World

Currency

Utilisé pour représenter la valeur totale d'une devise. Le point décimal est utilisé comme séparateur entre la partie entière et la fraction. La précision est de six décimales. Les informations suivantes sont valides pour un champ de devise:

1000.000001

Une fois la valeur envoyée à Google Analytics, tout le texte est supprimé jusqu'au premier chiffre, au caractère - ou au caractère . (décimal). Exemple :

$-55.00

devient:

-55.00

Booléen

Permet de déterminer si une valeur est vraie ou fausse. Les valeurs possibles sont les suivantes :

  • 1 – Vrai
  • 0 – Faux

Integer

Utilisé pour représenter un entier. La valeur est stockée en tant que valeur int64 signée

Number

Utilisé pour représenter un nombre entier ou un nombre à virgule flottante.