Le measurement protocol de Google Analytics pour les nuls

Attention cet article est en cours de rédaction et pleins d’erreurs…

Avec l’arrivée massive des objets connectés il va y avoir de plus en plus de besoin en terme d’intégration de solution analytics telle que celle de Google.
Le measurement protocol de Google Analytics est la méthode qui permet de discuter en brut avec Google Analytics et de lui envoyer de la data.
Concrètement si vous avez un site internet, vous devez passer par la mise en place d’un code javascript sur votre site, cependant si vous traitez avec un autre appareil, par exemple un objet connecté d’ouverture et de fermeture de porte, il est clair et net que vous n’allez pas utiliser javascript.

Le problème du measurement protocol de Google Analytics

Le gros problème reste le même, les personnes en charge de la rédaction de la documentation du Measurement Protocol ce sont dit “Tiens si on écrivait une doc qui intéresse les marketeux mais que l’on va faire à destination des développeurs”, au final des possibilités immenses gâchées par une mauvaise compréhension de la cible. D’où ce petit article 🙂

Les requêtes http

Si vous avez mis le nez dans la documentation sur le measurement protocol vous verrez que pour le faire fonctionner vous avez le choix entre deux méthodes, la méthode POST et la méthode GET.
L’idéal pour comprendre un peu tout cela est de mettre le nez dans les cours d’Openclassroom. Source: http://openclassrooms.com/courses/les-requetes-http
En fait le métier d’un analyste digital est assez trivial si vous savez comment fonctionne Internet(2 piliers: comprendre le business du client, comprendre internet), tout le reste c’est simplement du temps à passer sur l’utilisation d’éditeurs de solutions.

Qu’est ce que le HTTP?

Ni plus ni moins qu’un protocole de communication entre votre ordinateur et un serveur. Ce protocole est utilisé pour échanger des informations. De notre côté, à la fois le téléchargement du script de Google mais également l’envoi des données que l’on souhaite(un événement, une page vue…) aux serveurs de Google.

Les requêtes http

Lorsqu’une requête est faite depuis votre ordinateur vers un serveur, elle prend la forme suivante:

Ligne de commande(commande, url, version)
En-tête de la requête
nouvelle ligne
Corps de requête

Voici le premier exemple que prend Google dans sa documentation

POST /collect HTTP/1.1
Host: www.google-analytics.com

payload_data

Concrètement dans l’exemple ci-dessus, on indique qu’on utilise la méthode HTTP POST. On va pour cela travailler sur la page www.google-analytics.com/collect

payload_data, vous l’aurez compris correspond au corps de notre requête. Google nous indique que les paramètres obligatoires que doit prendre ce corps sont les suivants:

v=1
&tid=UA-XXXX-Y
&cid=555
&t=

le v correspond à la version, sa valeur est toujours égale à 1.
tid=UA correspond au numéro de votre propriété, vous n’êtes pas débile je suis sûr que vous trouverez facilement
cid correspond au numéro qui s’affiche lorsque vous utilisez Google Data Feed Query Explorer par exemple ou dans l’admin de Google Analytics.
t correspond au type de donnée que vous souhaitez envoyer.

Bon cela semble très flou pour le moment, l’idéal est de vous faire un exemple tout simple de quelque chose qui marche. Prenons par exemple le tracking via une image(que l’on pourrait utiliser pour le suivi d’un email par exemple) que l’on va décortiquer, pour ce faire prenons l’exemple proposé par Mike Veilleux posté sur dyn.com:

http://www.google-analytics.com/collect?v=1&tid=UA-12345678-1&cid=Client_ID&t=event&ec=email&ea=open&el=recipient_id&cs=newsletter&cm=email&cn=0

Exemple en live:

Si je rentre l’url suivante dans un navigateur: http://www.google-analytics.com/collect?v=1&tid=UA-31011496-1&cid=58853148&t=event&ec=exemple&ea=test-pour-montrer-aux-lecteurs&el=ca-marche

test-pour-montrer-aux-lecteurs

ok donc ici je pense que vous êtes en mesure de tout comprendre, chaque paramètre que nous souhaitons passer est harmonieusement séparé par un &, la seule chose qui nous manque ici de savoir c’est l’ensemble des autres paramètres passés:

ec = catégorie de l’évenement google analytics
ea = action de l’événement google analytics
el = libellé de l’événement google analytics
cs = source de l’apporteur de trafic
cm = support de l’apporteur de trafic
cn = nom de la campagne de l’apporteur de trafic

En résumé… vous l’aurez compris c’est super simple. Il vous suffit simplement de connaitre en amont les paramètres que vous souhaitez passer à Google Analytics. Pour se faire référer vous à la documentation de Google Analytics, qui désormais devrait vous paraitre plus claire.

Si on reprend l’exemple que je citai précédémment, dans lequel une personne rentre dans un magasin on pourrait avoir:

http://www.google-aalytics.com/collect?v=1&tid=UA-12345678-1&cid=Client_ID&t=event&ec=visite-magasin&ea=porte-entree&el=visiteur&cs=magasin-niort&cm=visiteur-physique&cn=0

Bon j’ai rempli les paramètres un peu n’importe comment mais comme vous pouvez l’imaginer, si votre objet connecté autorise l’envoi de requête http vous aurez compris que c’est un jeu d’enfant pour envoyer la data.

“La commande représente la méthode utilisée. Dans le cas du Measurement protocol il y ‘en a 2: GET et POST

GET permet de demander une ressource.
POST permet de modifier la ressource

URL correspond à l’adresse de la page sur le serveur sur laquelle on souhaite travaillerhttp

La version http, en toute franchise je ne sais pas trop à quoi cela se réfère, il parait que c’est la version du protocole http utilisé mais aucune idée de la valeur précise que cela doit prendre en fonction de votre requête.

En-tête

il s’agit d’un ensemble de valeurs que l’on souhaite passer et qui précise plus précisement les attributs de la requête. Sur openclassroom il le compare aux balises meta d’une page web.”

Liste des paramètres que l’on peut envoyer à Google Analytics

/analytics/devguides/collection/protocol/v1/parameters

La majeure partie est optionnelle

ds = data source
exemple: ds=web ds=app ds=boutique ds=crm

Confidentialité des Données Mentions Légales