Caputo's blog

Informatica, tecnologia, programmazione, fai da te, papercraft e papertoy

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.

Questo post è stato postato mercoledì, ottobre 28th, 2009 at 13:33 nella categoria Programmazione, Tecnologia, tutorial. Tags:, , , .
Puoi seguire tutti i commenti di questo articolo attraverso RSS 2.0 feed. Puoi lasciare un commento, o trackback dal nostro sito.

Lascia un commento

You must be loggati to post a comment.