Come Programmatore PHP MySQL AJAX sono sempre stato attento all'Ottimizzazione di Siti Internet e di Applicazioni Web al fine di supportare attività di Marketing, Promozione e Visibilità che possano rendere un progetto vincente.
Nessuna delle attività potrebbe essere sviluppata e supportata senza un costante e intelligente utilizzo delle Google Analytics le statistiche di Google, che consultate nel giusto modo permettono la profilazione dei propri visitatori ed essere decisive nella decisione delle strategie commerciali.
Come Programmatore PHP in questa guida voglio proporre un un esempio per l'utilizzo delle API Google Analytics che consentono con PHP o altri linguaggi lato server di estrapolare i dati statistici ed elaborarli in modo da renderli visibili all'utente.
Quest'esempio ovviamente può essere ampliato e modificato da qualsiasi Programmatore PHP che ovviamente può renderlo più complesso ed elaborato, lavorando sui dati estrapolati e fornendo a video i risultati attesi.
Nell'esempio, visibile solo se abbiamo a disposizione un account Google Analytics grazie alle API e a PHP mostreremo a video le 10 pagine più visitate nel periodo selezionato dall'utente, ma per maggiori dettagli vi rimando alla documentazione consultabile a quest'indirizzo.
L'esempio è composto da due file che dovrà sviluppare il Programmatore PHP e/o Programmatore AJAX il primo file quello JAVASCRIPT si occupa del login alle statistiche e dell'estrapolazione delle informazioni:
// Carico la libreria Javascript di Google
google.load('gdata', '1.x', {packages: ['analytics']});
// Inizializzo la funzione di callback.
google.setOnLoadCallback(init);
// Creo un nuovo oggetto AnalyticsService e carico
// il bottone di autenticazione qual'ora non fossi loggato
function init() {
myService = new google.gdata.analytics.AnalyticsService('gaExportAPI_acctSample_v1.0');
scope = 'https://www.google.com/analytics/feeds';
var button = document.getElementById('authButton');
//Login o Logout
button.onclick = function() {
if (!google.accounts.user.checkLogin(scope)) {
google.accounts.user.login(scope);
} else {
google.accounts.user.logout();
getStatus();
}
}
getStatus();
}
//La funzione getStatus verifica se sono o meno loggato, quindi lo stato dell'utente
function getStatus() {
var getAccountButton = document.getElementById('getAccount');
getAccountButton.onclick = getAccountFeed;
var getDataButton = document.getElementById('getData');
getDataButton.onclick = getDataFeed;
var dataControls = document.getElementById('dataControls');
var loginButton = document.getElementById('authButton');
if (!google.accounts.user.checkLogin(scope)) {
dataControls.style.display = 'none';
loginButton.innerHTML = 'Accedi a Google Analytics';
} else {
dataControls.style.display = 'block'
loginButton.innerHTML = 'Logout';
}
}
//Metodo Main che serve a richiamare i dati Analytics dell'account
function getAccountFeed() {
var myFeedUri =
'https://www.google.com/analytics/feeds/accounts/default?max-results=50';
myService.getAccountFeed(myFeedUri, handleAccountFeed, handleError);
}
//Questa funzione richiama in HTML quelli che i dati dell'account
//cioè tutti i siti associati all'account analytics)
function handleAccountFeed(result) {
var entries = result.feed.getEntries();
// creo la tabella HTML
var outputTable = ['<table><tr>',
'<th>Nome Account</th>',
'<th>Nome Profilo</th>',
'<th>ID Profilo</th>',
'<th>ID Google Analytics</th></tr>'];
// Scorrimento degli elementi da pubblicare
for (var i = 0, entry; entry = entries[i]; ++i) {
// Add a row in the HTML Table array for each value.
var row = [
entry.getPropertyValue('ga:AccountName'),
entry.getTitle().getText(),
entry.getPropertyValue('ga:ProfileId'),
entry.getTableId().getValue()
].join('</td><td>');
outputTable.push('<tr><td>', row, '</td></tr>');
}
outputTable.push('</table>');
// pubblico la tabella
document.getElementById('outputDiv').innerHTML =
outputTable.join('');
}
//Questa invece e la funzione di Main per richiamare i dati sulle pagine più viste
function getDataFeed() {
var myFeedUri = 'https://www.google.com/analytics/feeds/data' +
'?start-date=' + document.getElementById('start').value +
'&end-date=' + document.getElementById('end').value +
'&dimensions=ga:pageTitle,ga:pagePath' +
'&metrics=ga:pageviews' +
'&sort=-ga:pageviews' +
'&max-results=10' +
'&ids=' + document.getElementById('tableId').value;
myService.getDataFeed(myFeedUri, handleDataFeed, handleError);
}
//Questa funzione costruisce con i dati la tabella da visualizzare a schermo.
function handleDataFeed(result) {
var entries = result.feed.getEntries();
var outputTable = ['<table><tr>',
'<th>Title Pagina</th>',
'<th>URL della Pagina</th>',
'<th>Visite della Pagina</th></tr>'];
for (var i = 0, entry; entry = entries[i]; ++i) {
var row = [
entry.getValueOf('ga:pageTitle'),
entry.getValueOf('ga:pagePath'),
entry.getValueOf('ga:pageviews')
].join('</td><td>');
outputTable.push('<tr><td>', row, '</td></tr>');
}
outputTable.push('</table>');
document.getElementById('outputDiv').innerHTML =
outputTable.join('');
}
//Funzione di gestione e visualizzazione degli errori
function handleError(e) {
var error = "E' stato riscontrato un errore!\n";
if (e.cause) {
error += e.cause.status;
} else {
error.message;
}
alert(error);
}
Il secondo file quello semplice PHP (ma che potrebbe essere sviluppato anche in altri linguaggi) si occupa semplicemente di richiamare le funzioni e di mostrare con AJAX i dati a video:
Se avete a disposizione un Account Google Analytics con delle statistiche potete consultare l'esempio a quest'indirizzo: (Guarda l'Esempio)