Avatar billede mortenbock Nybegynder
24. marts 2007 - 16:08 Der er 1 kommentar og
1 løsning

Tracking af clicks i google analytics via eventlistener

Hej eksperter

Jeg er ved at lave lidt forsøg med at tracke alle udgående links fra mit website med Google Analytics. til det bruger man jo urchintracker('navnher') funktionen.

Men nu vil jeg ikke sidde og tilføje en onClick attribut til samtlige links på siden, så jeg synes det kunne være interessant at lave en eventlistener af en art.

Jeg er ikke sikker på hvordan man ville gøre det i JS, men her er lidt pseudokode til hvordan jeg forestiller mig det skulle virke:

--------------
Når der klikkes et sted på siden, eksekver DerErKlikket();

DerErKlikket(){
if(det er der klikker på er et <a> element){
  urchintracker('/outgoing/den href der linkes til');
}
}
--------------

Der kunne så pyntes lidt men noget regEx der tester om linket er til et andet domæne, og på den måde undgå at tracke intern trafik.

Men hvordan ville man typisk gøre ovenstående?
Avatar billede mortenbock Nybegynder
24. marts 2007 - 16:17 #1
Jeg fandt denne metode, men der må være en pænere måde at gøre det på?

http://www.jhuskisson.com/code-tidbits/track-outbound-links-for-google-analytics-automatically

<script type=”text/javascript”>
if (document.getElementsByTagName) {
var ahrefs = document.getElementsByTagName(’a');
for (var i=0; i<ahrefs.length;i++) {
if (ahrefs[i].href.indexOf(’http://www.jhuskisson.com‘) == -1 && !ahrefs[i].onclick) {
ahrefs[i].onclick = function () { var track = this.href + ”; urchinTracker (’/outgoing/’+track.substring(7)); }
}
}
}
</script>
Avatar billede mortenbock Nybegynder
24. marts 2007 - 18:05 #2
Jeg tror jeg har løst det:

Baseret på denne cross browser event listener:
http://snipplr.com/view/561/add-event-listener/

Min løsning (med alerts indtil videre:

<script type="text/javascript">
// Cross-browser implementation of element.addEventListener()
function addListener(element, type, expression, bubbling)
{
    bubbling = bubbling || false;
   
    if(window.addEventListener)    { // Standard
        element.addEventListener(type, expression, bubbling);
        return true;
    } else if(window.attachEvent) { // IE
        element.attachEvent('on' + type, expression);
        return true;
    } else return false;
}

function itHappened(evt){

    var tg = (window.event) ? evt.srcElement : evt.target;
    if(tg.nodeName == 'A'){
        alert(tg.href);
    }
}

addListener(document, 'click', itHappened);

</script>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester