Ci sono diversi modi per tracciare i click sui link esterni, le e-mail ed i file da scaricare. Tra le tante, ce ne è una particolarmente semplice e soprattutto automatica, che è quella realizzata da me e Marco Cilia di Goanalytics :-)

L'installazione e la configurazione è in soli due passi:

  1. Scarica la libreria e salvala nella cartella /js/ (se non esiste creala) del tuo sito web
     
  2. Includi in tutte le pagine del tuo sito, appena dopo il codice di Google Analytics, questo codice:
    <script src="/js/ga.link.min.js"></script>
    <script>
    _gaq.push(function(){
        _ftTrack(_gat._getTrackerByName(), "link|email|7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip");
    });
    </script>
    

Fine dell'installazione! :-)
Ora tutti i click su link esterni, e-mail e file scaricabili saranno tracciati come eventi in Google Analytics.

Il codice completo dovrebbe essere più o meno come il seguente:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
<script src="/js/ga.link.min.js"></script>
<script>
_gaq.push(function(){
    _ftTrack(_gat._getTrackerByName(), "link|email|7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip");
});
</script>

La funzione _ftTrack accetta due argomenti:

  1. Il primo, quello che rende la libreria multi account, è il tracker di Google Analytics, ottenuto con la funzione _gat._getTrackerByName()
     
  2. Il secondo è composto dalla parola chiave "link", che attiva il tracciamento dei link esterni, dalla parola chiave "email", che attiva il tracciamento dei click sulle e-mail e dall’elenco delle estensioni da tracciare. Le parole chiave ed ogni estensione devono essere separate tra loro da un pipe (il carattere "|").

Tracciamento su più account

Una delle particolarità di questa libreria è che può essere utilizzata anche con diversi account di Google Analytics nella stessa pagina. Di seguito un esempio con due account:

Il codice di Google Analytics:

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-1']);
  _gaq.push(['_trackPageview']);

  _gaq.push(['b._setAccount', 'UA-XXXXX-2']);
  _gaq.push(['b._trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>

Seguito da:

<script src="/js/ga.link.min.js"></script>
<script>
_gaq.push(function(){
    _ftTrack(_gat._getTrackerByName(), "link");
    _ftTrack(_gat._getTrackerByName('b'), "7z|aac|avi|csv|doc|exe|flv|gif|gz|jpe?g|js|mp(3|4|e?g)|mov|pdf|phps|png|ppt|rar|sit|tar|torrent|txt|wma|wmv|xls|xml|zip");
});
</script>

Vi invito a leggere anche questro post di Marco con un'altro esempio di tracciamento su due account.

Tracciamento con il vecchio snippet di Google Analytics

Il funzionamento è praticamente lo stesso, ma questa volta invece di utilizzare _gat._getTrackerByName(), utilizza la variabile pageTracker come nel seguente esempio:

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-XXXXX-X");
pageTracker._trackPageview();
</script>
<script src="/js/ga.link.min.js"></script>
<script>
_ftTrack(pageTracker, "link|email|zip");
</script>