Come creare grafici con Google Analytics API

Impara come creare grafici con l'API di Google Analytics usando PHP. Crea i tuoi propri grafici e tabelle di Google Analytics in tempo reale.

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.

Inviare commentario comment0 Commentari
mode_editInviare commentario

menu
menu