Google Analytics API

Voici une classe vous permettant de profiter des services d’analyse de site web proposés par Google. Vous allez pouvoir, très facilement, récupérer les données qui sont affichées sur votre interface Google Analytics.

analytics-2007

Cette classe s’appuie sur le web service proposé par google et utilise essentiellement deux types de paramètres : les metrics et les dimensions. Pour comprendre à quoi cela correspond, je vous conseil d’aller voir directement sur la documentation officielle. L’ensemble des paramètres sont visible ici.

Il est également indispensable de connaitre son ID de site web, que l’on retrouve dans l’url de Google Analytics quand on consulte ses stats. Exemple pour moi : https://www.google.com/analytics/web/?et=reset#report/visitors-overview/a7022511w13487295p14186909/. Mon ID est « 14186909″ (juste après le p) et il doit etre renseigner dans le constructeur de la classe.

Les 2 principales méthodes de cette classe sont : getDimensionByMetric & getMetric.

getDimensionByMetric renvoie un tableau contenant 2 sous tableaux « labels » et « datas ». « labels » contient les informations formatées tel qu’on les voient dans l’interface alors que « datas » ne contient que les données brutes. Exemple :

require_once('GoogleAnalyticsAPI.class.php');
$ga = new GoogleAnalyticsAPI('mon_adresse@gmail.com', 'mon_password', 'mon_id', date('Y-m-d', time()));
$navigateurs = $ga->getDimensionByMetric('pageviews', 'browser');

renvoie

Array
(
    [labels] => Array
        (
            [0] => Firefox (17)
            [1] => Safari (5)
            [2] => Chrome (3)
            [3] => Internet Explorer (2)
        )
    [datas] => Array
        (
            [0] => 17
            [1] => 5
            [2] => 3
            [3] => 2
        )
)

getMetric renvoie directement la valeur du metric demandé. Exemple :

require_once('GoogleAnalyticsAPI.class.php');
$ga = new GoogleAnalyticsAPI('mon_adresse@gmail.com', 'mon_password', 'mon_id', date('Y-m-d', time()));
$page_views = $ga->getMetric('pageviews');

renvoie directement

127

On peut alors mettre au point des récupérations de données plus complexe :

require_once('GoogleAnalyticsAPI.class.php');
$ga = new GoogleAnalyticsAPI('mon_adresse@gmail.com', 'mon_password', 'mon_id', date('Y-m-d', time()));
// Stats de la journée en cours
$navigateurs = $ga->getDimensionByMetric('pageviews', 'browser');
$countries = $ga->getDimensionByMetric('pageviews', 'country');
$keywords = $ga->getDimensionByMetric('pageviews', 'keyword');
$source = $ga->getDimensionByMetric('pageviews', 'source');
$pagePath = $ga->getDimensionByMetric('pageviews', 'pagePath');
$visits = $ga->getMetric('visits');
$unique_visits = $ga->getMetric('visitors');
$page_views = $ga->getMetric('pageviews');
$page_views_cv = $ga->getDimensionByMetric('pageviews','pagePath','pagePath%3D%3D/cv/');
echo '<pre>';
print_r($navigateurs);
print_r($page_views);
echo '</pre>';
echo '<h2>Pour le '.date('Y-m-d', time()).'</h2>';
echo '<strong>Pages vues par navigateurs :</strong>'.'<br />';
foreach ($navigateurs['labels'] as $label) {
    echo $label.'<br />';
}
echo '<br />';
echo '<strong>Pages vues par mots clefs :</strong>'.'<br />';
foreach ($keywords['labels'] as $label) {
    echo $label.'<br />';
}
echo '<br />';
echo '<strong>Pages vues par source :</strong>'.'<br />';
foreach ($source['labels'] as $label) {
    echo $label.'<br />';
}
echo '<br />';
echo '<strong>Pages vues par pagePath :</strong>'.'<br />';
foreach ($pagePath['labels'] as $label) {
    echo $label.'<br />';
}
echo '<br />';
echo '<strong>Pages vues par pays :</strong>'.'<br />';
foreach ($countries['labels'] as $label) {
    echo $label.'<br />';
}
echo '<br />';
echo '<strong>Nombre de visite(s) :</strong>'.$visits.'<br />';
echo '<strong>Nombre de visite(s) unique(s) :</strong>'.$unique_visits.'<br />';
echo '<strong>Page(s) vue(s) :</strong>'.$page_views.'<br />';
echo '<strong>Page(s) vue(s) pour CV :</strong>'.$page_views_cv.'<br />';

Enfin, dernier petit exemple avec une mise en forme basée sur Google Charts (qui fera l’objet d’une classe très bientôt) :

require_once('GoogleAnalyticsAPI.class.php');
$ga = new GoogleAnalyticsAPI('mon_adresse@gmail.com', 'mon_password', 'mon_id', date('Y-m-d', time()));
$navigateurs = $ga->getDimensionByMetric('pageviews', 'browser');
echo '<strong>Graphique des pages vues par navigateurs :</strong>'.'<br />';
foreach ($navigateurs['labels'] as $label) {
    echo $label.'<br />';
}
echo '<img src="http://chart.apis.google.com/chart?cht=p3&chd=t:'.implode(',',$navigateurs['datas']).'&chs=550x100&chl='.implode('|',$navigateurs['labels']).'" />';

Ce qui donne comme résultat :

chart

Cette classe est documentée et toutes les variables sont décrites dans le code, n’ayez donc pas peur de la télécharger et de la tester ;-) .

Libre à vous de mettre en forme et d’exploiter les données proposées par les méthodes.

Note : Merci à William DURAND pour les posts qu’il à put faire sur Google Analytics et surtout pour la manipulation des dimensions et des metrics.

Attention : Google envoie toutes les données dans un flux xml en UTF8, si votre site est en UTF8, aucun problème, sinon, pensez à utf8_decode().

Télécharger le fichier "GoogleAnalyticsAPI.class.php"

comments powered by Disqus