Utilizzare le API di Google Analytics con PHP
Pagina 1 di 4
Google Analytics è il più popolare servizio per monitorare l'andamento di un sito web.
Google Analytics fornisce statistiche dettagliate - confezionate in una elegante interfaccia utente che fa largo uso della tecnologia AJAX - grazie alle quali potremo accedere ad una serie di dati su chi visita le nostre pagine web. Il tutto supportato, inoltre, da un enorme numero di opzioni di ricerca e filtri grazie ai quali l'analisi del traffico del nostro web-site sarà incredibilmente precisa e dettagliata.
Cosa sono le Google Analytics API
Nel 2009, Google ha deciso di fornire agli utilizzatori delle API per interrogare, attraverso applicazioni esterne, le statistiche di un dato account, con sommo gaudio degli sviluppatori che, da allora, hanno un potente strumento per integrare i dati di Analytics all'interno delle loro applicazioni.Per poter utilizzare le API di Analytics sono richiesti:
- Un account Google
- Un profilo attivo su Analytics
- Autenticazione dell'account Google (mediante email e password);
- Identificazione del profilo Analytics da cui estrarre i dati;
- Interrogazione (query) per ottenere i dati voluti;
- Recupero del risultato.
Le richieste sono soddisfatte utilizzando servizi REST, basta quindi implementare una semplice chiamata HTTP per ricevere un XML come risposta.
Un modo per fare le richieste alle API è quello di sfruttare l'estensione cURL di PHP e di parsare poi l'xml risultante con l'utilissima classe SimpleXML e la potente sintassi xpath.
Per chi non avesse il tempo o la voglia di implementarsi una classe customizzata in grado di effettuare l'autenticazione e parsare i dati, segnalo l'esistenza di una soluzione open-source in grado di svolgere tutto il lavoro al posto nostro.
Il progetto si chiama GAPI (acronimo di Google Analytics Php Interface) e lo potete trovare, con tanto di documentazione ed esempi di utilizzo, a questa pagina su Google Code.
Cos'è GAPI
GAPI è una ottima classe grazie alla quale potremo astrarci dalle operazioni atomiche richieste per connettersi, autenticarsi e recuperare i dati dal nostro Google Analytics profile.
Il core del pacchetto - che possiamo scaricare da qui - è la classe gapi che, come buona prassi vuole, troviamo nel file gapi.class.php. Completano la dotazione di questa versione (la 1.3 al momento in cui scriviamo) 4 file di esempio e un file readme.
Il codice è ben scritto, robusto e ordinato quanto basta. Vediamo, brevemente, le sue caratteristiche principali:
- Supporto di cURL e fopen HTTP come metodi di connessione (la selezione delle api effettive è fatta a runtime dinamicamente)
- Utilizzo degli array PHP per specificare le metrics e le dimensions di Google Analytics che vedremo più avanti
- Mapping degli account in oggetti e getters disponibili per i parametri
- Report data object mapping - getters per metrics e parametri
- Meccanismo di filtering implementato con GAPI query language
- Codice PHP5 full Object Oriented robusto e facile da integrare nelle nostre applicazioni
Utilizzare GAPI
Ora che abbiamo un'idea di massima su quello che offre, passiamo ad integrare la classe gapi in una nostra semplice applicazione.
La struttura che vi propongo è abbastanza semplice: la nostra applicazione si compone di soli tre file:
- conf.ini
- gapi.class.php
- process.php
Vediamo il contenuto del nostro file di configurazione:
; Application properties google_username = "google_username" google_password = "google_password" ga_id_profilo = "id_profilo"
E' importante ricordarsi di proteggere il file conf.ini evitando che sia accedibile dal Web (ad esempio utilizzando un file htaccess)
Passiamo ad analizzare il file process.php (che contiene le istruzioni vere e proprie della nostra web application):
require_once 'gapi.class.php';
$properties = parse_ini_file("conf.ini");
$gapiObj = new gapi($properties["google_username"], $properties["google_password"]);
Per ora non abbiamo fatto altro che includere la gapi class, caricare le nostre properties in una variabile di tipo array e istanziare il nostro "client". La seconda parte della nostra piccola applicazione sarà, ve lo assicuro, decisamente più interessante...







