Measurement protocol : suivez Googlebot dans Google Analytics
Présentation du Measurement Protocol
Le Measurement Protocol de Google Analytics. Cela permet de pusher des statistiques au sein de Google Analytics via du POST. GrĂące aux paramĂštres vous pouvez pusher toutes les informations que vous souhaitez. C’est particuliĂšrement utile pour injecter dans Google Analytics des datas depuis des supports sur lesquels vous ne pouvez pas insĂ©rer de tag Analytics.
ConcrĂštement, si vous copiez collez la ligne suivante dans votre navigateur et que vous faites « entrĂ©e », vous verrez dans vos statistiques en temps rĂ©el l’Ă©cran suivant (en prenant soin de mettre votre bon UA) :
[shell]
https://www.google-analytics.com/collect?v=1&tid=UA-id-1&cid=58853148&t=pageview&dp=/url-de-test&dt=titre-de-la-page
[/shell]
Afin de générer vos variables, vous pouvez soit passer par les paramÚtres listés dans la documentation soit par le Hit Builder de Google.
Application pour intégrer le crawl Google dans Google Analytics
Dans l’exemple ci-dessous, l’objectif va ĂȘtre de capter le passage de Googlebot en PHP (via son IP), de pusher le hit dans Google Analytics, d’ajouter le User-Agent du robot et le code HTTP de la page.
Le User-Agent et le code HTTP seront ajoutés en tant que variables personnalisées. Une vue sans Google Analytics « Googlebot » filtrera le crawl de Google uniquement.
Avec les bases en poche, vous pourrez facilement Ă©tendre le principe pour capter d’autres robots comme Bing…
Création de deux variables personnalisées
Rendez-vous sur votre compte Google Analytics, et crĂ©ez des « dimensions personnalisĂ©es » dans le panneau d’administration de votre propriĂ©tĂ©. CrĂ©ez alors deux dimensions : Status HTTP et User-Agent. Notez les deux index associĂ©s Ă vos dimensions personnalisĂ©es, 1 et 2.
CrĂ©ation d’une vue Googlebot
J’ai crĂ©Ă© une vue « Googlebot » pour plus de clartĂ©.Pour cette vue, j’ai crĂ©Ă© un filtre « IP », qui ne capte que les hits provenant de l’IP commençant par « 66.249 ».
Tag manager : création des deux variables (ua et rescode)
J’utilise Tag Manager. Je n’ai donc pas ajoutĂ© de lignes de code dans mon tag Analytics, mais j’ai rajoutĂ© le lien avec mes deux dimensions directement dans mon Tag Analytics sur Tag Manager, en crĂ©ant deux variables.
On remarque que l’index renseignĂ© ci-dessous doit ĂȘtre identique Ă celui renseignĂ© dans les dimensions personnalisĂ©es sur Google Analytics.
Vue finale de mon Tag Analytics dans Tag Manager :
Vue finale de mes variables, j’ai crĂ©Ă© deux variables « ua » et « rescode » qui correspondent à « User-Agent » et « Status HTTP » :
Vue dĂ©taillĂ©e d’une variable de couche de donnĂ©es « Status HTTP » :
ParamĂštres du Measurement Protocol
Le Measurement Protocol requiert des variables obligatoires :
- v=1 : version du protocole
- tid=UA-xxxxxxxx-1 : ID de la propriété Google Analytics
- cid=xxx : un ID « client », je mets une valeur par défaut
- t=pageview : le type de « hit », pageview dans notre exemple. Il peut avoir les valeurs suivantes : ‘pageview’, ‘screenview’, ‘event’, ‘transaction’, ‘item’, ‘social’, ‘exception’, ‘timing’.
Maintenant, il faut dĂ©finir ce que l’on veut rĂ©cupĂ©rer comme informations avec Measurement Protocol.
Je souhaite, pour chaque hit de Google capter :
- cs, cm (source/support) : crawl/googlebot (on pourra par la suite faire du crawl/bing…)
- cd1 : dimension personnalisée 1 (rescode)
- cd2 : dimension personnalisée 2 (ua)
- uip : ip
- dh : domaine
- dp : url
Aperçu de l’URL POST finale :
[shell]
$url = « http://www.google-analytics.com/collect?&v=1&t=pageview&tid=UA-xxxxxxxx-1&cid=666&dh= ».$dh. »&dp= ».$dp. »&uip= ».$uip. »&cd1= ».$httpcode. »&cd2= ».$ua. »&cs=crawl&cm=googlebot »;
[/shell]
Il ne reste plus qu’Ă rĂ©cupĂ©rer la valeur des variables, et de faire un curl en PHP pour le POST dans Google Analytics.
Code PHP de détection du crawl et envoi des données dans Google Analytics
[shell]
<?php
//RĂ©cupĂšre l’adresse IP
$ip = $_SERVER[‘REMOTE_ADDR’];
//Condition sur le User-Agent et l’adresse IP commençant par 66.249
if( $_SERVER[‘HTTP_USER_AGENT’] &&
stripos($_SERVER[‘HTTP_USER_AGENT’], ‘Googlebot’) !== false &&substr($ip, 0, 6) == « 66.249 »){
//On renseigne alors les variables avec le domaine, l’URL de la page, le User-Agent, le code rĂ©ponse HTTP
$dh = $_SERVER[‘HTTP_HOST’];
$dp = $_SERVER[‘REQUEST_URI’];
$ua = urlencode($_SERVER[‘HTTP_USER_AGENT’]) ;
$httpcode = http_response_code();
//URL complĂšte prĂȘte pour le POST
$url = « http://www.google-analytics.com/collect?&v=1&t=pageview&tid=UA-67188949-1&cid=666&dh= ».$dh. »&dp= ».$dp. »&uip= ».$ip. »&cd1= ».$httpcode. »&cd2= ».$ua. »&cs=crawl&cm=googlebot »;
//On curl alors l’URL avec toutes les variables renseignĂ©es
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_COOKIESESSION, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER , true);
curl_setopt($ch, CURLOPT_NOBODY , true);
curl_exec($curl);
curl_close($curl);
}
?>
[/shell]
RĂ©sultat
La vue dans le rapport Google Analytics (Comportement/Contenu du site/toutes les pages + dimension secondaire Source/Support ou dimension secondaire UA) :
La vue dans un rapport personnalisĂ©Â Â de Google Analytics, permet d’observer deux dimensions personnalisĂ©es d’un coup :
7 comments