Uitgaande links simpel meten met Google Analytics


27 February 2007 8:59 - André
Categorie: Webanalytics, Webdevelopment

Soms kan het best handig zijn om te zien welke uitgaande links mensen volgen vanaf bepaalde pagina's. Voor de mensen die er mee bekend zijn: MyBlogLog kan het ook voor je doen, je ziet direct welke links populair zijn en welke niet. Standaard zit deze functionaliteit niet in Google Analytics, maar natuurlijk kan dat wel opgelost worden.

Om een link te kunnen meten zal er bij een klik een script aangeroepen moeten worden die de meting verricht. Dit kan middels een onclick event op de link:

<a href="http://www.voorbeeld.nl" onclick="pageTracker._trackPageview()"></a>

Daarna zal er in de urchinTracker functie een aanroep moeten komen die aangeeft om welke link het gaat. Dat kan op deze manier gedaan worden:

<a href="http://www.voorbeeld.nl" onclick="pageTracker._trackPageview(this.href)"></a>

Toch voldoet dit nog niet als een totaal oplossing aangezien je op deze manier alle links handmatig moet voorzien van dit onclick attribuut. Ik ben daarom eens gaan zitten voor een script wat dit automatisch doet. Het resultaat is een script wat direct na de Analytics code vlak boven de </body> geplaatst kan worden.

Het script loopt alle <a> elementen (de links) in de code langs om ze te voorzien van het onclick attribuut. De interne links worden hierbij overgeslagen, die worden natuurlijk al goed gemeten. Hier en daar waren een paar aanpassingen nodig aangezien events (een click is een event) niet in alle browsers gelijk werken en het niet de bedoeling is om bestaande onclicks te overschrijven. Met een beetje hulp van Dean Edwards en Tino Zijdel (zonder dat ze het weten) is het event-toevoeg script voor alle browsers werkend.

Het resultaat van een avond en een nacht proefdraaien ziet er als volgt uit:

outlinks1.png

Er staat in de "content drilldown" een extra map "outlinks" met daarin alle domeinen waar naar toe geklikt is. Vervolgens kun je door op die domeinen te klikken zien naar welke pagina's in dat domein genavigeerd is. In de "navigational analysis" kun je vervolgens zien vanaf welke pagina men geklikt heeft.

Om het script zelf te gebruiken is het voldoende om hier de code te downloaden en het in een script element vlak voor de </body> aan te roepen. Laat maar weten of het naar behoren werkt.

Gerelateerde posts
Inkomende links volgens Google, Live en Yahoo...
SEO Rankings meten met Google Analytics...
Google Analytics cookie en meerdere domeinen...
Nieuwe code voor Google Analytics nu ook werkend in ASP...
Google Analytics link tagging optimaal maken voor SEO...
Greasemonkey script voor Google Analytics...




68 Reacties op “Uitgaande links simpel meten met Google Analytics”



  1. Gravatar van GerbenGerben

    Inderdaad leuk om te doen....

    Op deze wijze kan je stats bijhouden voor derden, ten aanzien van het bezoek dat je levert...en dit zonder de url te moeten herschrijven.

    Op onze site http://www.gratisadviseurs.nl passen we dit inderdaad ook toe.... nu alleen nog een mooie manier vinden om die data uit te lezen en te rapporteren! ;-) ...maar dat is weer een stap verder.

  2. Gravatar van MennoMenno

    Kan je niet een BODY unload doen die elke uitgaande link logt, ipv alle links aanpassen?

  3. Gravatar van AndréAndré

    Je loopt dan de kans dat het script geen tijd meer krijgt de gewenste link te meten. Daarnaast is het aanpassen van alle links niet heel zwaar.

    En volgens mij kun je in de functie die je aanroept vanuit de onunload niet traceren welk element (dus welke link) er voor zorgt dat de pagina unload.

  4. Gravatar van JeroenJeroen

    Wellicht een beetje offtopic, maar wil toch graag vragen hoe de onclick functie gebruikt kan worden voor externe embed code.

    Stel ik host een .flv zelf en via laat ik deze plaatsen op diverse sites. Uiteraard wil ik het effect van de verschillende websites kunnen meten en vergelijken, maar omdat het een bestand is die wordt aangeroepen is dit niet te meten door de standaard Javascript code. Nu is de vraag, kan ik de OnClick functie ook gebruiken in deze tags, aangezien het geen <a> tag is waar deze tussen staat. Of bestaat hiervoor een andere manier?

    Ben benieuwd naar jullie reactie

  5. Gravatar van AndréAndré

    Dit kun je het beste via een tussenpagina doen: download.php?voorbeeld.flv. In die download.php doe je dan de meting en laat je de download starten. Aan de onclick heb je niet zo veel in dit geval.

  6. Gravatar van JeroenJeroen

    Bedankt! En de download laten starten middels een redirect vanaf download.php of bedoel je dit anders? Hoe dient zo'n doorverwijzing er in dat geval uit te zien?

  7. Gravatar van AndréAndré

    Er zijn een aantal mogelijkheden, een meta-refresh na 3 seconden (zodat de meting verricht kan worden) naar het bestand kan bijvoorbeeld een oplossing zijn. Op je opent het bestand met een javascriptje.

  8. Gravatar van KarelKarel

    André, ik ben benieuwd of je ook voor de nieuwe Analyticscode een dergelijk script hebt. Heb daar namelijk nog wel een leuk ideetje voor...

  9. Gravatar van AndréAndré

    Ik was in eerste instantie niet van plan het gereed te maken voor het nieuwe script aangezien deze functionaliteit binnenkort toch standaard in Google Analytics zit. Daarentegen is het maar 10 minuten werk om het om te bouwen...

    Ik pas dit script wel even aan.

  10. Gravatar van AndréAndré

    En klaar, hij is nu ook te gebruiken voor de nieuwe Google Analytics.

    Wat voor idee had je er precies mee? Als je hulp nodig hebt hoor ik het wel ;)

  11. Gravatar van EmielEmiel

    Ook handig script. Dit script voegt de onclick functie automatisch toe aan diverse soort documenten die je kunt downloaden. http://www.advanced-web-metrics.com/blog/ga-scripts/

  12. Gravatar van MarliesMarlies

    Hoi Andre,

    Handig denk ik, ik krijg hem alleen niet geopend door een Run time fout op regel 61, teken1: 'document is niet gedefinieerd'. Zou je hier naar willen kijken?

    Groeten,
    Marlies

  13. Gravatar van AndréAndré

    Marlies, je moet het script downloaden en toevoegen aan je Google Analytics script, is dat gelukt? Op welke site heb je het geïmplementeerd?

  14. Gravatar van MarliesMarlies

    Ik krijg het script dus niet gedownload vanwege die error :-(

  15. Gravatar van AndréAndré

    Als je met de rechter muisknop op de link klikt en vervolgens "koppeling opslaan als..." kiest, werkt het dan?

  16. Gravatar van MarliesMarlies

    Nee ook niet :-( Ik krijg de error en hij sluit weer af....
    Na enig proberen lukt het nu wel met 'openen met' en dan kiezen voor kladblok. Raar dat anderen hier geen last van hebben.. ?

  17. Gravatar van RobertRobert

    Hallo,

    Dit lijkt mij heel gaaf om te kunnen zien!

    Alleen, ik zie niets in mijn Analytics qua outlinks...
    Waar zouden deze moeten verschijnen?

    Ik heb de javascript code in een extern js bestandje gezet, dat ik ophaal net voor de tag.

    Heb ik misschien wat fout gedaan?

    Groet,
    Robert

  18. Gravatar van AndréAndré

    @Robert: in je "inhoudsdetails" scherm zou je ze terug moeten kunnen zien. Heb je een url waar ik kan zien of je het goed geïmplementeerd hebt?

  19. Gravatar van GeraldGerald

    Beste Andre,

    Thanks voor je nuttige artikel over outlinks meten mbhv analytics. Heb het getest, maar zie het niet terug bij inhouddetails in Analytics.

    Wil je eens checken of code goed geimplementeerd is?

    Website: verjaardaagsfeest.com
    Code is geplaatst op 'locatiepagina' /groningen.htm

    Vriendelijke groet,
    Gerald

  20. Gravatar van RobertRobert

    Hi Gerald,

    Ik heb hetzelfde probleem.

    Mijn postings hier worden op de een of andere manier tegengehouden. Heel gek.
    Hopelijk lukt deze.
    :)

  21. Gravatar van AndréAndré

    @Gerald: ik kan het bestand http://www.verjaardagsfeest.com/analytics-outlinks.js niet vinden? Die zou ik dus eerst online plaatsen ;)

    @Robert: vaag dat je reacties geblokkeerd worden. En op welke site heb jij het probleem?

  22. Gravatar van RobertRobert

    Hoi André,

    Vermoedelijk ligt het hieraan: ik had een bepaald emailadres opgegeven.
    Toen ik dat net in de posting plaatste, zag ik weer geen publicatie van mijn bericht...
    Het is een email account bij een organisatie die zich bezig houdt met het bestrijden van ongewenste mail...
    ;-)

    Bedankt voor je reactie. Ik had de code er alweer afgehaald.
    Er staat wel een outgoing link js scriptje in de head sectie nu.

    Maar ook daarmee zie ik geen outgoing stats in GA...
    o ja, het adres is:
    http://www.onestopwinkel.nl

    Alvast bedankt!

  23. Gravatar van AndréAndré

    @Robert: ik zag de reactie in de Akismet lijst staan, vaag. Ik heb hem gewhitelist, nu hopen dat Akismet dat oppakt.

    Over het script, je hebt 3 problemen:
    1. jij gebruikt een ander uitgaande links script dan die van mij
    2. het script maakt gebruik van de oude aanroepen uit urchin.js terwijl jij ga.js gebruikt
    3. het script moet onder het Google Analytics script staan

  24. Gravatar van RobertRobert

    @André: bedankt dat je hebt willen kijken! Ik had jouw script in een extern js-je gezet.
    En de file aangeroepen na de GA js code.
    Ik had er html comments omheen gezet. Is dat mss het probleem geweest?

    Nou ja, ik ga het straks iig nog eens proberen met jouw script.
    :)

  25. Gravatar van GeraldGerald

    Thanks, verwijzing stond idd niet goed..! .js wordt nu goed aangeroepen. En kun je nog even specifieker aangeven op welke manier gegevens in analytics terugkomen? Dank!

  26. Gravatar van RobertRobert

    @Gerald: zou jij mij willen laten weten zodra jij er achter bent hoe en waar je dit in Analytics kunt zien?

    Alvast bedankt!
    :)

  27. Gravatar van AndréAndré

    @Gerald en Robert: he komt terug bij "Inhoud" -> "Inhoudsdetail" en dan zoeken naar de map "outlinks" :)

  28. Gravatar van GeraldGerald

    Andre: grote klasse, het werkt!
    @Robert: in analytics, ga naar 'inhoud'/'belangrijkste inhoud' en kijk vervolgens naar alle inhoud die begint met /outlinks/

  29. Gravatar van HJHJ

    als ik dit installeer kan ik dan ook zachte conversies van de uitgaande url (click out) conversies meten? of moet dan nog apart een clickout tussenpagina maken?

  30. Gravatar van AndréAndré

    @HJ: je kunt een doel instellen op die uitgaande links, maar hou er rekening mee dat een doel maar 1 keer binnen een sessie gehaald kan worden. Iemand die 10 keer achter elkaar uitklikt heeft maar 1 doel gehaald.

  31. Gravatar van rikrik

    Hoi Andre,

    Ik heb je script inmiddels een tijdje lopen en speel met de gedachte om de telling in te zetten voor door mij te verkopen CPC advertenties op mijn website. Kan je me influisteren waar ik dan nog meer aan zou moeten denken? Hoe zou ik bijvoorbeeld evt. clickfraude kunnen beheersen? Is het bijvoorbeeld mogelijk om het IP adres van een clicker te bepalen en op te nemen in de te loggen URL? Alvast bedankt voor je reactie.

    Groet, Rik

  32. Gravatar van rikrik

    Hoi Andre,

    Ben je er nog over aan het denken of vind je het gewoon een slecht plan?

    Groetjes,

    Rik

  33. Gravatar van AndréAndré

    @Rik: ik heb er inderdaad vrij lang over nagedacht ;)

    Maar ik zou dit niet met Google Analytics doen. Google Analytics is wellicht 95% betrouwbaar, maar dat is niet genoeg om CPC modellen te kunnen onderbouwen. Ik zou hiervoor alle clickouts via bijvoorbeeld een clickout.php laten lopen. In dit bestand kun je de klik en bijbehorend IP nummer loggen, en vervolgens geef je een 301 redirect naar de externe site. Dit systeem is redelijk foolproof, en je kunt makkelijker clickfraude aanpakken aangezien je zelf de data logt. Frauduleuze kliks kun je achteraf weer weggooien, dit kan in analytics niet.

    Ik zou analytics er wel naast laten draaien zodat je wel kunt zien hoeveel er uitgeklikt wordt en wie hier voor verantwoordelijk zijn.

  34. Gravatar van CleafsCleafs

    Rik, je kan je adverteerders ook uit een affiliatenetwerk halen en daar de statistieken uit trekken...

  35. Gravatar van GertGert

    Hoi Andre,
    Bedankt voor je script. Ik heb het goed werkend op één site maar op een andere krijg ik een foutmelding en werkt mijn lightbox apllicatie daardoor niet meer. Hier staat de pagina: http://www.familieavontuur.nl/reisroutes/dia_template.php?rc=KEF
    En dit is de foutmelding:
    handler is undefined
    op regel 11 waar staat
    if (!handler.$$guid) handler.$$guid = addEvent.guid++;

    Weet jij wat hier fout gaat?
    Bedankt,
    Gert

  36. Gravatar van AndréAndré

    In het script staat ook een functie die addEvent heet, en ik denk dat die conflicten geeft met dezelfde functie in het lightbox script.

  37. Gravatar van Sander van der VeldenSander van der Velden

    Andre,

    Wat is eigenlijk de reden dat bij het gebruik van trackpageview om bjivoorbeeld outgoing links te meten, de GATC bovenaan de pagina moet staan? Wordt anders de klik nog niet geregistreerd op een uitgaande link als de pagina nog niet helemaal geladen is?

    Zag namelijk een site waar de GATC nog steeds onderin de pagina geplaatst was, maar waar wel de uitgaande links werden gemeten.

    En moet de GATC ook bovenin de pagina geplaatst worden bij de nieuwe manier van Event Tracking in Google Analytics?

    Alvast bedankt.

    Sander

  38. Gravatar van AndréAndré

    Je hebt helemaal gelijk, als de GATC nog niet geladen is volgt er geen meting. Je kunt de code dus wel helemaal onderaan plaatsen, en in veel gevallen zal deze ook al geladen zijn wanneer er op een link geklikt wordt. Maar om het 100% zeker te weten is het verstandiger de code bovenaan te plaatsen. Dit voorkomt ook dat je javascript foutmeldingen krijgt.

  39. Gravatar van Sander van der VeldenSander van der Velden

    Bedankt.
    Dus in alle gevallen waarin je gebruikt maakt van 'PageTracker' moet de GATC dus bovenin geplaatst worden. Voor mijn gevoel wordt dit best vaak gebruikt, dus de aanbeveling van Google om de GATC onderin te plaatsen gaat dan niet vaak meer op. Interpreteer ik dat zo goed?

  40. Gravatar van AndréAndré

    Helemaal :)

  41. Gravatar van Sander van der VeldenSander van der Velden

    Andre,

    ben jij trouwens op de hoogte wanneer Event Tracking in alle Google Accounts mogelijk is. Heb het nu in één account zichtbaar gezien, maar in alle andere accounts waarin ik heb gewerkt nog niet.
    En dat terwijl het volgens mij eind 2007 al aangekondigd was, of moet ik hier eerst een speciale handeling voor verrichten?

    Sander

  42. Gravatar van AndréAndré

    @Sander: hier kan ik niets over zeggen, het is al 1,5 in beta volgens mij. Normaal gesproken lanceren ze nieuwe features redelijk snel, maar deze duurt even. Rustig afwachten dus :)

  43. Gravatar van Sander van der VeldenSander van der Velden

    Hoi Andre,

    Nog even een laatste vraag over de plaats van de GATC. Heeft het nog voordelen om deze in twee delen te plaatsen:

    Meteen na de opening body-tag.

    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"));

    Net voor de sluitende body-tag.

    try {
    var pageTracker = _gat._getTracker("UA-7089653-1");
    pageTracker._trackPageview();
    } catch(err) {}

    Of is het gewoon de beste manier om de GATC in zijn geheel bovenaan te plaatsen? Het lijkt mij dat de variabele 'pageTracker' eerst gekoppeld moeten worden aan de unieke UA code, voordat de trackPageview functie naar behoren werkt, toch?

    Groeten Sander

  44. Gravatar van KristianKristian

    Hoi Andre,

    is het mogelijk om externe links te meten welke gegenereerd worden door een dynamische site (het einde van de link bevat een primary key)?

  45. Gravatar van AndréAndré

    In principe zorgt het genoemde script er voor dat alle links die naar een externe site verwijzen gemeten worden.

  46. Gravatar van RobertRobert

    Hoi,

    Werkt de code nog steeds?
    Ik zie namelijk niets in mijn Analytics verschijnen.

    Ik roep het js filetje als laatste aan, onder de GATC, als volgt:

    Maar misschien heb ik iets fout gedaan?

    Zie: http://www.onestop-travel.nl

    grtz,
    Robert

  47. Gravatar van AndréAndré

    @Robert: ik zie geen uitgaande links ;) Jouw links wijzen naar interne URL's die vervolgens een redirect doen naar een extern adres. Mijn script ziet in de broncode dus alleen maar links naar interne pagina's. Jij moet de links handmatig voorzien van meetscripts.

  48. Gravatar van RobertRobert

    @Andre: ik was er al bang voor... :)

    Hoe kan ik de uitgaande linkjes het beste coderen?
    Zou dat gaan met het volgende aan de link toe te voegen:

    onclick="javascript:pageTracker._trackPageview('/uitgaand/bestemming');"

    of is er een betere manier?

    Bedankt!
    Robert

  49. Gravatar van AndréAndré

    Dat is de goede manier, al kun je het "javascript:" gedeelte uit de onclick weg laten, die is overbodig.

  50. Gravatar van RobertRobert

    Je kunt het "javascript" stukje weglaten?
    Begrijp ik goed dat het dan iets zou moeten worden als:

    onclick="pageTracker._trackPageview('/uitgaand/bestemming');"

    ?

    :)

  51. Gravatar van AndréAndré

    Klopt :)

  52. Gravatar van VechtsportVechtsport

    In de cursus vertelde je dat alleen dit stukje onder het GA script geplaatst moest worden:
    ik zie echter nog geen resultaten in mijn account... moet er nog iets anders mee gedaan worden?

  53. Gravatar van AndréAndré

    Als je in je "top content" rapport zoekt naar "clickout" zou je de links terug moeten kunnen vinden. Dit werkt direct en vergt geen andere acties ;)

  54. Gravatar van lettyletty

    Hi Andre,

    Ik heb vandaag de code toegevoegd aan mijn site. Het staat in de footer.
    Nu zie ik echter nog geen resultaat in mijn Google account.

    Ben ik te ongeduldig? Of heb ik het niet goed geplaatst?

    Alvast dank voor je reactie.

    Gr Letty

  55. Gravatar van AndréAndré

    @letty: vanaf morgen zul je de eerste data kunnen zien :)

  56. Gravatar van Diederik MartensDiederik Martens

    Ik heb het net de code toegevoegd aan mijn lastminute top100 om te kijken welke leads ik aanlever. Ben benieuwd welke posts nog meer zo interessant zijn op je blog.

  57. Gravatar van Ronald NieuwkampRonald Nieuwkamp

    Bedankt voor de informatie. Dient de java script er nu in te staan of niet?

    Groet, R. Nieuwkamp

  58. Gravatar van AndréAndré

    Welke bedoel je precies?

  59. Gravatar van michielmichiel

    Hoi Andre,
    Zou jij me kunnen helpen?Ik wil de kliks meten van de advertentiebanners die ik in mijn nieuwsbrief plaats en maandelijks verstuur. Dat lukt me niet met analytics. Wel met alle links die naar mijn eigen site gaan maar niet met die die naar de site van de adverteerder gaan. Ik gebruik de volgende link bij de banner.

    <a href="http://www.netsamen.nl?utm_source=nieuwsbriefdecember&utm_medium=e-mail&utm_content=netsamenlogo&utm_campaign=nieuwsbrieven2009"></a>

    Heb jij een tip ?
    Groetjes

  60. Gravatar van ArnoArno

    Hoi Andre,

    Ook ik kan je hulp wel gebruiken. Ik heb het vlak onder de google analytics aanroep geplaatst. En de js op de server gezet.

    Als ik het goed begrijp zou je een onclick event moet zien verschijnen in een <a href> door dit script?

    - Wat als je al een onclickevent hebt staan? Momenteel heb ik dit onclickevent staan? onclick="window.open(this.href); return false;"
    - En werkt het ook als de links uit een database komen?

    Het lukt me dus niet om het aan de praat te krijgen. Dus je hulp zou enorm welkom zijn!
    Alvast bedankt!

  61. Gravatar van AndréAndré

    @Michiel: dit kan ook alleen maar met links die naar je eigen site gaan. Statistieken over kliks naar andere partijen kun je alleen meten als die via een externe site gaan. Veel email-nieuwsbrief providers leveren dit soort statistieken.

    @Arno: die onclick zie je niet al je gewoon in de broncode gaat kijken, die wordt pas later dynamisch aan de broncode toegevoegd. Als er al een onclick bestaat dan zou ik het als volgt doen:

    onclick="pageTracker._trackPageview('/clickouts/' + this.href); window.open(this.href); return false;"

  62. Gravatar van FrankFrank

    Beste Andre,

    Kun je mij een klein beetje helpen met bovenstaande. Moet ik het javascript bestand aanroepen op de volgende manier?

    Moet ik dan nog iets wijzigen aan de GA code? Ik heb nu het volgende:

    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"));

    try {
    var pageTracker = _gat._getTracker("UA-XXXXXXX-X");
    pageTracker._setDomainName(".XX.XX");
    pageTracker._setAllowLinker(true);
    pageTracker._trackPageview();
    } catch(err) {}

  63. Gravatar van FrankFrank

    hij haalt een stukje code weg...

    mijn vraag: Moet ik het javascript bestand aanroepen op de volgende manier?
    [head]
    [script type="text/javascript" src="/analytics-outlinks.js"][/script]
    [/head]

    Maar dan ipv []

  64. Gravatar van AndréAndré

    Hey Frank, je kunt dat script overal plaatsen. Het wacht tot de pagina geladen is en gaat dan pas bezig ;)

  65. Gravatar van margrietmargriet

    Hallo Andre

    Kan ik ook dit script gebruiken zonder dat ik gogle analytics gebruik.
    Ik gebruik nu con-nect, maar zou het graag in mijn eigen site geintregreerd zien.
    want als con-nect uitvalt moet ik alle links opnieuw gaan invoeren.
    Dus zie dit script wel als een oplossing voor mij

    Margriet

  66. Gravatar van AndréAndré

    Hallo margriet, dit script werkt alleen voor Google Analytics en helaas niet voor andere pakketten.

Tweetbacks

  1. Twitter avatar van moddix (Lennart Koopmans)moddix (Lennart Koopmans)

    Meet uitgaande links met Google Analytics. Zo kun je goed bijhouden waar je bezoekers naartoe gaan vanaf je site http://tinyurl.com/2cv9lm

Trackbacks

  1. Nieuwe Google Analytics: “Wauw!” Usability | Usarchy: Usability & Online Marketing

    [...] André Scholten: Uitgaande links simpel meten met Google Analytics [...]

Laat gerust een reactie achter


Als je een afbeelding bij je post wil moet je je aanmelden op de Gravatar site. Daar kun je je email adres koppelen aan een afbeelding. Dit Gravatar systeem wordt inmiddels al op veel sites ondersteund, dus het is op meer plaatsen nuttig.

Je kunt deze elementen gebruiken: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>