My twitter
- Ce mois-ci, record de visites pour le blog. Belle perf pour un mois d'août ! 06:52:00 août 31, 2010 from Facebook
- Record de visites ce mois-ci sur willdurand.fr. Je ne dois pas raconter que des bétises... 06:45:29 août 31, 2010 from TweetDeck
- @Ouark y'a une technique de maître/esclave au niveau des domaines sinon... 05:37:57 août 31, 2010 from TweetDeckin reply to Ouark
- @Ouark ok j'avais mal compris. C'est donc pour le tracking, l'image est une bonne solution, sauce analytics. :) 05:01:50 août 31, 2010 from TweetDeckin reply to Ouark
- @oloynet @Ouark modif sessionstorage dans factories.yml + memcached ou database non ? 04:39:55 août 31, 2010 from TweetDeckin reply to oloynet
- http://www.voyages-sncf.com/plusloinquevousnelimaginez/ 02:31:18 août 31, 2010 from TweetDeck
- @chessman2212 @mazenovi oki 19h 12:14:52 août 30, 2010 from TweetDeckin reply to chessman2212
- @vjousse thank you, i'll do that. 12:01:30 août 30, 2010 from TweetDeckin reply to vjousse
- How can I become sponsor of cmf.symfony-project.org ? #Symfony2 10:06:28 août 30, 2010 from TweetDeck
- @mazenovi @gidehault @chessman2212 @ybb_fr idem dispo. 10:04:13 août 30, 2010 from TweetDeckin reply to mazenovi
RSS Feed
Liens
API Google Analytics, découverte par l’exemple
Aujourd’hui Google a mis au jour sa nouvelle API, il s’agit de l’API Google Analytics tant attendue. L’annonce officielle se trouve ici. J’ai donc sauté sur l’occasion pour pondre quelques petits scripts PHP et pouvoir par la suite intégrée Google Analytics à mon système de blog.
Cette API est utilisable en JavaScript, PHP, ou encore Java. En PHP, on peut utiliser cette API avec Zend (ici) ou avec Curl. C’est ce dernier que j’ai utilisé dans ce qui suit.
I – Authentification
Il faut être authentifié pour utiliser cette API, Google offre, comme pour ses autres services, plusieurs possibilités. Je passerais les explications lourdes sur les différents modes d’authentification (lire ici). Ce qu’il faut au final, c’est récupéré un Token qui permettra d’utiliser le service Google Analytics par la suite.
Je voulais un système d’authentification où l’on ai juste à renseigner ses identifiants Google.
$passwd = '********';
$ids = '********';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.google.com/accounts/ClientLogin");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$data = array('accountType' => 'GOOGLE',
'Email' => $email,
'Passwd' => $passwd,
'source'=>'CLI_GAnalytics',
'service'=>'analytics');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$hasil = curl_exec($ch);
$hasil = @split("Auth=", $hasil);
$auth = $hasil[1];
curl_close($ch);
Donc j’ai utilisé Curl, ce qui a nécessité l’activation du module PHP (dans WAMP).
$ids représente l’identifiant du site concerné. Il est à récupérer dans Google Analytics, il suffit d’ouvrir le dashboard du site et de regarder l’identifiant dans l’url qui se présente ainsi : https://www.google.com/analytics/reporting/?id=xxxxxxxxx.
On passe ensuite les données dans un tableau, en sachant que vous pouvez mettre ce que vous voulez dans ‘source’.
$auth est mon Token d’authentification auprès du service Google Analytics.
II – Récupération des informations
Je désire afficher, pour le jour courant (oui parce que l’API permet de récupérer les informations de son site en direct), le nombre de visites par navigateur.
$ch1 = curl_init("https://www.google.com/analytics/feeds/data?ids=ga:" . $ids . "&metrics=ga:visits&dimensions=ga:browser&start-date=" . $current_date . "&end-date=" . $current_date);
$header[] = 'Authorization: GoogleLogin auth=' . $auth;
curl_setopt($ch1, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch1, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_HEADER, false);
$response = curl_exec($ch1);
curl_close($ch1);
$XML_response = @str_replace('dxp:','',$response);
$XML_object = simplexml_load_string($XML_response);
echo '<ul>';
foreach($XML_object->entry as $m)
{
$tmp = @split('ga:browser=', $m->title);
echo '<li>' . $tmp[1];
echo ' : ';
echo $m->metric['value'];
echo ' visits</li>';
}
echo '</ul>';
Lorsqu’on veut utiliser l’API il faut indiquer que l’on est authentifié, c’est le but des lignes :
curl_setopt($ch1, CURLOPT_HTTPHEADER, $header);
Ensuite, il est obligatoire de renseigner les paramètres ids, start-date et end-date. Sinon on obtient une belle erreur… Ici, je cherche à récupérer le nombre de visites (qui est le metric) en fonction du navigateur qui est la dimension.
Les metrics et dimensions sont disponibles ici.
On récupère un flux XML, que j’ai d’abord épuré :
Puis je charge un objet XML pour récupérer les résultats que je souhaite.
Ce code produit le résultat suivant :
Youpi ! Je suis riche, 19 visites aujourd’hui…
Pour récupérer le nombre de visiteurs, il suffit de modifier les metrics et dimensions :
et de changer l’accès au résultat :
Pour récupérer le nombre de pages vues, on modifie comme ceci (l’accès au résultat est le même) :
III – Le mot de la fin
Cette API est très intéressante et très simple à mettre en oeuvre. La documentation est claire et il y en a beaucoup.
Pour la suite, il peut être intéressant d’avoir ce genre de statistiques dans l’administration de son site ou de naviguer en administrateur et de pouvoir voir sur chacun de ses articles de telles statistiques.
Pour moi, ce sera cette dernière idée qui sera mise en place
.
Sources : http://google-data-api.blogspot.com/2008/05/clientlogin-with-php-curl.html pour l’utilisation de Curl, et l’API Google pour le reste.
Related Posts