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.

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.

This website uses IntenseDebate comments, but they are not currently loaded because either your browser doesn't support JavaScript, or they didn't load fast enough.

Lascia un commento