Statistiche sui click in uscita
alessio | 21 September 2008Guardando le statistiche di questo blog, sono rimasto incuriosito da una particolare sezione: quella riguardante i link che hanno ricevuto più click dai visitatori.
Mi chiedevo infatti come facesse WordPress ad avere questo tipo di informazioni. Per le altre sezioni ottenere i risultati è relativamente facile, i link utilizzati per arrivare verso questo blog ed i termini utilizzati sui motori di ricerca si ottengono semplicemente analizzando il campo Referer HTTP. Ma quando si fa click su di un link, il browser effettua soltanto una connessione verso il server che ospita la nuova pagina, senza segnalare nulla a quella che si sta per lasciare.
La risposta a questo dubbio è data da quella piccolissima immagine a forma di smile, che si trova in fondo ad alcuni blog WordPress, compreso questo:
Scendendo in dettagli tecnici, ogni volta che si visita una di queste pagine, viene caricato il file JavaScript w.js dal server delle statistiche di WordPress. Questo script definisce una serie di funzioni (scritte per la verità in modo un po’ criptico e con uno stile non del tutto chiaro ed uniforme) che costituiranno il meccanismo con cui segnalare i click in uscita.
Una di queste è linktracker_init(), eseguita al caricamento della pagina aggiunge un listener sul body in modo da intercettare ogni click effettuato all’interno di quanto visualizzato. Ad ogni click verrà così eseguita la funzione linktrack() che, dopo aver verificato che questo sia avvenuto su di un link diretto verso un indirizzo esterno al proprio blog, costruirà un URL destinato verso il server delle statistiche e contenente l’indirizzo del link che si sta per visitare, per poi eseguire queste istruzioni:
var x=new Image(1,1); x.src = src;
Lo script quindi creerà una nuova immagine che corrisponde proprio allo smile visualizzato sopra, la cui richiesta di caricamento permetterà l’invio delle informazioni necessarie al server delle statistiche.
L’utilizzo di un’immagine come meccanismo per l’invio di informazioni ad un server può sembrare in apparenza una tecnica un po’ esotica, soprattutto se confrontata con le ben più comuni richieste AJAX. Purtroppo però la limitazione di same origin policy, che si applica alle richieste AJAX, non avrebbe permesso di contattare un server con un hostname differente da quello associato al proprio blog. Ecco perché probabilmente hanno scelto di caricare un’immagine.






Tutto il contenuto di questo blog è tutelato da una licenza