Api di google analytics con PHP
ottobre 28th, 2009 by Giovanni Caputo
Ciao a tutti,
volevo condividere con tutti i lettori la mia piccola esperienza con le API di Google Analytics.
Per prima cosa ho utilizzato, per semplificare l’utilizzo, la liberia disponibile su http://www.electrictoolbox.com
Questa classe si basa sulla documentazione disponibile su:
* http://code.google.com/apis/analytics/docs/gdata/gdataReference.html
* http://code.google.com/apis/analytics/docs/gdata/1.0/gdataProtocol.html
*
Tutte le metriche e le dimensioni disponibili, ovvero le statistiche possibili sono disponibili al seguente link
* http://code.google.com/apis/analytics/docs/gdata/gdataReferenceDimensionsMetrics.html
Codice di esempio della libreria è disponibile qui:
* http://www.electrictoolbox.com/google-analytics-api-and-php/
Io ho effettuato una piccola modifica al metodo “function data”, inquanto, se non indicato il periodo di inizio delle statistiche, veniva impostato di default a mese della data corrente. Quindi ho modificato
if(!$start) $start = date(’Y-m-d’, strtotime(’1 month ago’));
con il codice
if(!$start) $start = date(’Y-m-d’, strtotime(’01.01.2009′));
Nel mio caso particolare ho utilizzato la libreria nel seguente modo:
$api = new analytics_api();
if($api->login(”USERNAME****”, “PASSWORD***”)) {
echo “login success\n”;
$api->load_accounts();
print_r($api->accounts);
//bounces:
$data = $api->data(”ga:22420862″, ”, ‘ga:visitors,ga:visits,ga:pageviews,ga:timeOnSite,ga:bounces,ga:entrances,ga:newVisits’);
foreach($data as $metric => $count) {
echo ”
$metric: $count\n”;
}
}
Vediamo cosa succede in particola.
Prima di tutto viene effettuata la connessione alle API di google con il metodo login della classe new analytics_api, instanziata in $api.
Successivamente con il metodo, load_accounts(), vengono caricati tutti gil accout(tutti i siti web) registrati in google analytics. In questo modo otteniamo, qualcosa del genere:
Array
(
[www.electrictoolbox.com] => Array
(
[tableId] => ga:7426158
[accountId] => 144582
[accountName] => The Electric Toolbox
[profileId] => 7426158
[webPropertyId] => UA-144582-3
)
[www.electricbookmarks.com] => Array
(
[tableId] => ga:13502852
[accountId] => 144582
[accountName] => The Electric Toolbox
[profileId] => 13502852
[webPropertyId] => UA-144582-11
)
)
Da questa vettore molto utile è il campo tableId, che permetterà, successivamente, di ottenere le statistiche relative a un sito web, passandolo come parametro al metodo ->data().
Per ottenere la tableId relativo a www.electrictoolbox.com , possiamo utilizzare il codice $id = $api->accounts['www.electrictoolbox.com']['tableId'];
Per quindi ottenere le statistiche di google analytics, utilizziamo il metodo data che riceve in input, l’id precedentemente descritto e la lista delle metriche che vogliamo ottenere separati da virgole.
Nel mio caso ga:visitors,ga:visits,ga:pageviews,ga:timeOnSite,ga:bounces,ga:entrances,ga:newVisits
Tali metriche, non sono semplice da capire e da interpreta, vediamole quindi nel dettaglio:
- visitors: numero di visitatori totali, non sono contati gli utenti che ritornano
- visits: numero di visite (sessioni uniche)
- bounces: numero totale di singole pagine visualizzate
- entracens: entrate nel sito, dovrebbe essere uguale al numero di visits.
- newVisits: visitatori che entrano per la prima volta
Vediamo di seguito, invece, alcune statistiche che possono essere calcolate e che potrebbero essere molto utili. Sono le stesse che google analytics per ogni sito che analizza.
- Tempo medio ad ogni visita
- Si ottiene dividendo ga:timeOnSite e ga:visits
- Quindi per mostrare il tempo medio in termini di minuti
- $timeOnSite=$data['ga:timeOnSite'];
- $visits=$data['ga:visits'];
- $seconds=$timeOnSite/$visits;
- $mins = floor ($seconds / 60);
- $secs = $seconds % 60;
- $timeOnSite=$data['ga:timeOnSite'];
- echo “<br/>tempo medio: “. $mins. “:” .$secs;
- Pagine viste in media da ogni utente – (bounce rate)
- Si ottiene dividendo ga:bounces e ga:entrances
- echo “<br/>pagine viste in media da ogni utente: “. $data['ga:pageviews']/$data['ga:visits'];
- Percentuale di nuove visite (basato su tutte le visite)
- Calcolato dal rapporto di ga:newVisits e ga:visits
- echo “<br/>Percentage of new visits based on all visits : “.$data['ga:newVisits']/$data['ga:visits'];
Ho provato il codice sia su netsons, sul quale non ho alcun problema, sia su aruba dove non è possibile utilizzarlo se si ha un hosting Windows.
Infatti su aruba la libreria curl non è gestibile attraverso il servizio di hosting windows; questa è correttamente implementata nel servizio di hosting linux.
Post correlati
Questo post è stato postato mercoledì, ottobre 28th, 2009 at 13:33 nella categoria Programmazione, Tecnologia, tutorial. Puoi seguire tutti i commenti di questo articolo attraverso RSS 2.0 feed. Puoi lasciare un commento, o trackback dal nostro sito.