Non tutti sanno che è possibile tracciare abbastanza facilmente i click di Google AdSense con Google Analytics e qualche riga di JavaScript, senza dover in alcun modo modificare il codice degli annunci di Google AdSense.
In programmazione object oriented esiste un design pattern chiamato Observer, uno tra i miei preferiti. L'Observer prevede due elementi, un elemento da osservare ed uno o più elementi osservatori. Un osservatore si registra presso l'elemento da osservare richiedendo di essere notificato in caso di particolari eventi, ad esempio il cambio di status.
Applicato al nostro obiettivo, l'osservatore è Google Analytics mentre l'elemento da osservare è ogni tag <a>
all'interno del codice di un annuncio AdSense. L'evento, o per meglio dire il cambio di status, consiste nel click dell'utente sul link contenuto nel tag <a>
.
La maggior parte dei framework JavaScript esistenti, come ad esempio Prototype o JQuery, implementa in modo estremamente semplice il pattern observer. Per rendere il mio codice il più possibile leggibile utilizzerà proprio uno di questi, nello specifico Prototype. Il requisito fondamentale è il codice JavaScript di ogni annuncio AdSense sia racchiuso all'interno di un tag con una classe nota, ad esempio .adsense
.
<div class="adsense"> <script>...</script> <!-- questo è il codice di Google AdSense --> </div>
Ora registriamo Google Analytics come osservatore di un qualsiasi link all'interno di questo codice con il seguente codice JavaScript:
$$('.adsense a').each(function(tag) { tag.observe('click', function(event) { pageTracker._trackPageview('/click/adsense'); }) });
Questa riga di codice innanzitutto seleziona tutti i tag <a>
all'interno del DOM corrente restituendo un array di tag. Il metodo .each
scorre ogni tag e per ciascun elemento invoca il metodo .observe
registrando una funzione come osservatrice. La nostra funzione, infine, in realtà è poco più che un proxy verso il metodo _trackPageview
definito da Google Analytics.
Per ulteriori dettagli vi rimando alla documentazione di Prototype e Google Analytics.
A questo punto è fatta. Ogni qual volta l'utente esegue un click su uno qualsiasi degli annunci AdSense, il tag si preoccuperò di notificare tutti gli osservatori dell'evento dunque anche Google Analytics che registrerà una visita per la pagina /click/adsense
. Ovviamente questa pagina non esiste ma il suo percorso può ugualmente essere impostato come obiettivo su Google Analytics consentendoci così di analizzare i click generati da ogni pagina così come identificare le keyword maggiormente remunerative.
Lo scopo di questo post è puramente didattico quindi premetto già da subito che ho tralasciato i fondamenti principali di JavaScript così come l'uso più o meno specifico del framework JavaScript. Se qualcuno volesse presentare altri esempi non basati su un framework o su framework diversi da Prototype, la community ne sarà grata. Inolte, i più creativi avranno di certo colto le opportunità di estensione di questo sistema: ad esempio, potresce scegliere di appendere alla pagina tracciata anche il nome o l'url dell'annuncio selezionato, in modo da individuare insieme ai criteri di Google AdSense le keyword ed i publisher più economicamente vantaggiosi.
Prima di concludere vorrei aggiungere una precisazione. Da qualche tempo Google sta sperimentando l'integrazione di Google AdSense direttamente in Google Analytics. Putroppo la funzionalità è in beta limitata, questo metodo vi consente quindi di tamponare temporaneamente la mancanza.