Come creare grafici con Google Analytics API

Impara come creare un grafico con le visite al tu sito web con l'API di Google Analytics. Prima, copia tutti i file contenuti in questo .zip in un hosting online o locale con PHP 5.x. Introduci il tuo utente e password di Google Analytics in grafico.php , aprilo nel tuo browser, e vedrai un grafico con le visite che ha ricevuto il tuo sito web durante gli ultimi 15 giorni, tranne dall'Italia.
Spiego paso a paso il codice utilizzato per che anche tu possa creare i tuoi propri grafici da Google Analytics, e adattare i parametri alle tue necessità. Alla fine del post, potrai vedere il codice completo. Cominciamo con questa linea:
include "function_dates.php"; include "googleanalytics.class.php";
Include due file essenziali:: 1) function_dates.php con la funzione createDateRangeArray(), che serve per creare un array di tutti i giorni esistente fra due giorni della tua scelta (vedere http://boonedocks.net/mike/archives/137-Creating-a-Date-Range-Array-with-PHP.html); 2) googleanalytics.class.php include le istruzioni per collegarsi alla API de Google Analytics (vedere http://www.askaboutphp.com/63/google-analytics-api-class-for-php.html).
$fecha2 = date('Y-m-d'); $fecha1 = strtotime ('-15 day' , strtotime ($fecha2)) ; $fecha1 = date ('Y-m-d', $fecha1); $fechas = createDateRangeArray($fecha1,$fecha2); $days = count($fechas);
Questa parte localizza i 15 giorni previ a oggi (puoi allungarlo il tempo che vuoi). L'importante è definire $fecha1 (il primo giorno) e $fecha2 (l'ultimo giorno).
try { $ga = new GoogleAnalytics('usuario@gmail.com','password'); $ga->setProfile('ga:48231979'); $ga->setDateRange($fecha1,$fecha2);
Questa parte esegue l'autenticazione in Google Analytics. Devi aggiungere: 1) il tuo utente di Google Analytics, 2) il tuo password, 3) il profilo dal quale vuoi effettuare la query. Devi aggiungere ga: prima del numero di profilo (esempio: ga:48231979). Nota: il numero di profilo non è uguale al numero del conto(UA-...). Un conto può avere più di un profilo, quindi devi cercare il profilo di cui hai bisogno dentro dell'Amministratore di Google Analytics.

Dall'altra parte, è consigliabile utilizzare un utente solo autorizzato per vedere dei rapporti, cui puoi aggiungere tramite l'Amministratore di Utenti dal suddetto profilo al tuo conto di Google Analytics.
$report = $ga->getReport( array('dimensions'=>urlencode('ga:date'), 'metrics'=>urlencode('ga:visits'), 'filters'=>urlencode('ga:country!=@Italy'), 'sort'=>'ga:date' ) );
In questa parte otteniamo un rapporto delle visite diarie, ordinato per giorni ed escludendo l'Italia. $report è un array multidimensionale di dimensioni e le sue metriche. var_dump($report) permette di vedere il tuo rapporto. Vedi l'API d'esportazione di dati di Google Analytics per conoscere più combinazioni di dimensioni, metriche e filtri.
$i = 0; $serie_dim = null; $serie_val = null; foreach ($report as $valor){ $serie_dim .= "'".$fechas[$i]."', "; $serie_val .= $valor['ga:visits'].", "; $i++; } $serie_dim = substr($serie_dim, 0, -2); $serie_val = substr($serie_val, 0, -2);
In questa parte trasformiamo i dati al formato chiesto da Highcharts per creare il grafico:
$script1 = "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js '></script><script type='text/javascript'>// <![CDATA[ var chart;$(document).ready(function() {chart=new Highcharts.Chart({chart:{ renderTo:'container',defaultSeriesType:'line',marginRight:130,marginBottom:25}, title:{text:'VISITAS POR DÍA (Últimos 15 días, excepto desde Italia)',x:-20}, subtitle:{text:'Fuente: Google Analytics',x:-20},xAxis:{categories:['. $serie_dim.']},yAxis:{title:{text:'Visitas'},plotLines:[{value:0,width:1, color:'#808080'}]},tooltip:{formatter:function(){return'<b>'+this.series.name +'</b>'+this.x+': '+this.y+'';}},legend:{layout:'vertical',align:'right', verticalAlign:'top',x:-10,y:100,borderWidth:0},series:[{name:'Visitas', data:['.$serie_val.']}]});});// ]]></script><script type='text/javascript ' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js '></script><script type='text/javascript' src='highcharts.js'></script> <script type='text/javascript' src='exporting.js'></script><div id=' container' style='width: 800px; height: 400px; margin: 0 auto;'></div>";
In questa parte utilizziamo un codici di Highcharts minificato per creare un grafico di linee
echo $script1;
Questo è il codice completo per creare un grafico con l'API di Google Analytics:
<!--?php include "function_dates.php"; include "googleanalytics.class.php"; $fecha2 = date('Y-m-d'); $fecha1 = strtotime ('-15 day', strtotime ($fecha2 ) ); $fecha1 = date ('Y-m-d' , $fecha1 ); $fechas = createDateRangeArray($fecha1,$fecha2); $days = count($fechas); try { $ga = new GoogleAnalytics('usuario@gmail.com','password'); $ga->setProfile('ga:48231979'); $ga->setDateRange($fecha1,$fecha2); $report = $ga->getReport( array('dimensions'=>urlencode('ga:date'), 'metrics'=>urlencode('ga:visits'), 'filters'=>urlencode('ga:country!=@Italy'), 'sort'=>'ga:date' ) ); $i = 0; $serie_dim = null; $serie_val = null; foreach ($report as $valor){ $serie_dim .= "'".$fechas[$i]."', "; $serie_val .= $valor['ga:visits'].", "; $i++; } $serie_dim = substr($serie_dim, 0, -2); $serie_val = substr($serie_val, 0, -2); $script1 = "<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js '></script><script type='text/javascript'>// <![CDATA[ var chart;$(document).ready(function() {chart=new Highcharts.Chart({chart:{ renderTo:'container',defaultSeriesType:'line',marginRight:130,marginBottom:25}, title:{text:'VISITAS POR DÍA (Últimos 15 días, excepto desde Italia)',x:-20}, subtitle:{text:'Fuente: Google Analytics',x:-20},xAxis:{categories:['. $serie_dim.']},yAxis:{title:{text:'Visitas'},plotLines:[{value:0,width:1, color:'#808080'}]},tooltip:{formatter:function(){return'<b>'+this.series.name +'</b>'+this.x+': '+this.y+'';}},legend:{layout:'vertical',align:'right', verticalAlign:'top',x:-10,y:100,borderWidth:0},series:[{name:'Visitas', data:['.$serie_val.']}]});});// ]]></script><script type='text/javascript ' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js '></script><script type='text/javascript' src='highcharts.js'></script> <script type='text/javascript' src='exporting.js'></script><div id=' container' style='width: 800px; height: 400px; margin: 0 auto;'></div>"; }catch (Exception $e) { print 'Error: ' . $e->getMessage(); } echo $script1; ?>
Scarica il file .zip con il sudetto codice e tutti gli altri file qui. Se sai programmare in PHP, puoi creare dei grafici personalizzati mediante il cambiamento di qualche dimensioni e metriche (leggendo l'API d'esportazione di dati di Google Analytics). Per creare i grafici, ci sono anche altre scelte come Google Charts o amChart.
Update 18-04-2012: Invece di utilizzare la funzione di createDateRangeArray, è anche possibile prendere le date direttamente da Google Analytics. Comunque, il primo metodo è migliore per avere un array di date pulito, senza il formato confuso provvisto da Google Analytics.