Spåra klick på externa länkar med Google Analytics

Marcus Olsson,

Jag har tidigare skrivit om hur man kan spåra klick med Google Analytics, men den koden byggde på att man manuellt lade till en onClick-funktion på varje klick man vill spåra.

Den här koden däremot har jag skrivit specifikt för att spåra klick på utgående länkar, mest för att jag är nyfiken på om folk faktiskt klickar på alla de länkarna jag postar i mina blogginlägg. Att använda mig av onClick här var inget alternativ, då jag skriver mina blogginlägg med markdown, och det vore väldigt onödigt att skriva ut alla a-taggar manuellt. Plus att det är inte direkt vackert.

Koden är skriven i "ren" Javascript, då jag fortfarande försöker att inte dra in några Javascript-bibliotek i onödan på den här webbsidan.

Koden i sig är så enkel som den går att bli:

1function trackClick(event) {
2
3 if(location.href.replace("http://").replace("https://").split("/")[0] !== this.href.replace("http://").replace("https://").split("/")[0]) {
4 _gat._getTrackerByName()._trackEvent('Outbound links', this.href);
5 }
6
7}
8
9window.onload = function() {
10
11 var links = document.getElementsByTagName('a');
12
13 for (var i = 0; i < links.length; i++) {
14 links[i].addEventListener('click', trackClick, false);
15 };
16
17}
1function trackClick(event) {
2
3 if(location.href.replace("http://").replace("https://").split("/")[0] !== this.href.replace("http://").replace("https://").split("/")[0]) {
4 _gat._getTrackerByName()._trackEvent('Outbound links', this.href);
5 }
6
7}
8
9window.onload = function() {
10
11 var links = document.getElementsByTagName('a');
12
13 for (var i = 0; i < links.length; i++) {
14 links[i].addEventListener('click', trackClick, false);
15 };
16
17}

Notera att addEventListener inte fungerar för Internet Explorer 8 och lägre, utan man får använda sig av attachEvent('onclick', trackClick) istället – men då får man också problemet med att this refererar till window-objektet, och inte det elementet som användaren klickar på (a-taggen). I besöksstatistiken så ser jag dock Internet Explorer 8 står för mindre än 1,5% av besökarna – så jag förbiser dem för stunden (dåligt av mig, jag vet).

Statistiken finner du sedan i Google Analytics under Content -> Events.

Ser du något som inte stämmer, eller som kan göras bättre? Hojta till på Twitter!