Een lage bouncerate door het gebruik van setvar?

Heb je wel eens gezien dat je weigeringspercentage of ook wel bouncerate flink omlaag ging bij het gebruik van de setvar functie in Google Analytics? Dat kan kloppen, hier heeft Google naar mijn mening een 'feature' ontwikkelt die zich niet in alle gevallen juist gedraagt.

Setvar?

Even een kleine uitleg over de setvar functie: hiermee kun je bezoekers een naam/groep/categorie geven. Je kunt bijvoorbeeld mensen die inloggen op je site "member" noemen. Of als je om de leeftijd van bezoekers vraagt kun je die er in opslaan. Deze waardes kun je vervolgens in je rapporten weer naar voren halen om te zien wat bijvoorbeeld je "members" doen ten opzichte van de andere bezoekers. Een handige functie dus die op een simpele manier wat eigen waardes in Google Analytics kan plaatsen.

* update, probleem speelt niet meer.

Lagere bouncerate?

Maar helaas zit er wel een neveneffect aan het gebruik van deze setvar functionaliteit. Google Analytics ziet een bounce namelijks als volgt: een bezoeker die binnenkomt op de site en vervolgens geen andere pagina's meer bezoekt. Maar nu komt de clou: die bezoeker mag ook geen andere acties meer verrichten.
Wat wordt er dan verstaan onder die andere acties? Alle handelingen die tot communicatie met de Google server leiden. Dus wanneer bijvoorbeeld een e-commerce script of de eerdergenoemde setvar functie geplaatst is vindt er communicatie plaats.
Dit houdt concreet in dat wanneer je op bijvoorbeeld je homepage de setvar functie gebruikt een bezoeker achtereenvolgens 2 aanroepen aan Google doet: een pageview en de setvar. En op dat moment is er dus geen sprake meer van een bounce. Je homepage zal in de rapportage dan ook een bouncerate < 1% laten zien.

We hebben dit aan Google voorgelegd omdat wij vinden dat een aanroep aan de setvar functie niet persé een actie is die door de gebruiker wordt gedaan. Hij mag dus ook niet meegenomen worden in het bepalen van de bouncerate. Vele andere analisten waren het hier mee eens, Google zou hier nog eens opnieuw over nadenken. Maar tot die tijd:

De oplossing

Wil je toch gebruik maken van deze functie zonder de metingen te verstoren kun je gebruik maken van de volgende truc:

var fakeTracker = _gat._getTracker("UA-1");
fakeTracker._setVar("member");
var pageTracker = _gat._getTracker("UA-xxxxxxx-y");
pageTracker._trackPageview();

Wat er nu gebeurd is dat de setvar handeling niet goed naar Google gestuurd wordt vanwege het verkeerde accountnummer. Maar de waarde wordt wel in de Google Analytics cookies opgeslagen. Vervolgens wordt er een pageview gedaan waarin vanuit de cookies ook de nieuwe setvar waarde wordt meegenomen. Het resultaat is dat je geen bounce hebt en wel gebruik maakt van de setvar functie.

Om dus vertekening van je data te voorkomen zou je altijd deze code moeten gebruiken.

Update

Google heeft het gedrag veranderd: de setvar heeft geen invloed meer op de bouncerate en tijd. Alle administrators van een Google Analytics account hebben hierover een mail gehad.

Click to activate social bookmarks

 
  • http://orangevalley.nl/ Joost de Valk

    Kun je niet gewoon simpelweg de setvar voor de trackpageview doen?

  • http://andrescholten.net André

    Nee, dan vindt er nog steeds 2 keer communicatie met Google plaats en geldt het bezoek niet meer als een bounce.

  • http://www.wwohn.nl Erik

    Interessante conclusie met die bouncerate en setvar. En idd een flinke ruis in je stats.

    Wat ik me eigenlijk ook afvraag kun je de criteria van de bouncerate veranderen. ik zou bijvoorbeeld graag de mensen die langer dan 30 seconden naar een webpagina kijken niet meer aanmerken als een bounce.

  • http://andrescholten.net André

    Dan kun je met een simpele javascript setTimeout na 30 seconden een aanroep doen aan Google. Je kunt bijvoorbeeld de setvar na 30 seconden aanroepen ;) Of gewoon een extra trackPageview.

  • http://andrescholten.net André

    @Maurice: Google is keurig op de hoogte van deze feature. Ze zeggen dat het technisch altijd al zo de bedoeling is geweest. Alleen de meeste webanalisten zeggen op hun beurt: de setvar hoeft geen actie van de gebruiker te zijn, hij wordt het meest gebruikt om te segmenteren. En daarom zou hij niet mee moeten tellen bij de berekenen van de bounce-rate. Wellicht dat ze daar nog op terug komen.

  • Maurice

    Wel apart dat Google hier zelf nog niets mee gedaan heeft, Analytics wordt toch wel als betrouwbaar gezien en jouw onderzoek wijst maar weer uit dat niets waterdicht is...

  • http://www.mprovement.nl Emiel Kamzol

    met de onderstaande code zet je timeout voor setvar op 30 minuten. Let op de laatste 2 regels deze moeten op een regel geplaatst worden.

    pageTracker._setVar(labelVal);
    date = new Date();
    date.setTime(date.getTime() + 1*60*60*1000);
    document.cookie = "__utmv="+_udh+"."+_uES(labelVal)+";path="+_utcp+";expires="+date.toGMTString()+";"+udo;

  • Sander van der Velden

    Dan kun je met een simpele javascript setTimeout na 30 seconden een aanroep doen aan Google. Je kunt bijvoorbeeld de setvar na 30 seconden aanroepen ;) Of gewoon een extra trackPageview.

    Hoi Andre, hoe moet ik bovenstaande precies zien. Bedoel je met het gebruik van trackpageview dat je deze bijvoorbeeld na 10 seconden aanroept en de pageview dan te noemen (bouncerate10seconden/paginanaam) en dit dan te vergelijken met het totaal aantal pageviews? Klopt dat?

    En hoe werkt dit met setVar? Ben bekend dat dit gebruikt kan worden om bijvoorbeeld een bezoeker die ingelogd is aan te merken als ingelogde bezoeker. Weet eigenlijk niet wat hier nog meer voor mogelijkheden liggen?

    Bedankt.

  • http://andrescholten.net André

    @Sander: ja, dat klopt :)

    De oplossing met de setVar werkt inmiddels niet meer omdat Google het aanroepen hiervan niet meer in de bouncerate berekening meeneemt.

  • Sander van der Velden

    Bedankt.

    Heeft het gebruik van setTimeout() verder geen gevolgen voor de performance van de website?
    Ik ben van plan de volgende code te gebruiken, wat ik onder de GATC plaats.

    self.setTimeout("RegisterBounce()", 2000);
    function RegisterBounce()
    {
    pageTracker._trackPageview("/2secbounce/home");
    }

    Is er ook een mogelijkheid om achter /2secbounce de URI weer te geven van de huidige pagina. Met this.href kan dit niet opgelost worden aangezien ik er nog iets voor wil zetten. (in dit geval /2secbounce).

    Op die manier kan dit generiek verwerkt worden als de GATC in de footer wordt geplaatst.

  • http://andrescholten.net André

    @Sander: 1 enkele aanroep na 2 seconden heeft zeker geen invloed op de performance. Alleen is 2 seconden wel aan de korte kant.
    En voor wat betreft je aanvulling, probeer dit eens:
    pageTracker._trackPageview("/2secbounce/" + location.pathname);

  • Sander van der Velden

    Ik ga het proberen, bedankt.

    Twee seconden inderdaad aan de korte kant, was alleen even voor een test. In de praktijk wil ik uitgaan van 10 seconden, geloof dat Kaushik dat als redelijk ideale tijd zag om de bouncerate te bepalen.

  • http://www.seo-support.nl/ Joost

    Bedankt voor de reacties allemaal, ik heb ook probleempjes met het bepalen van m'n bounce rate en heb zeker veel aan deze handige tips.

  • http://www.xiara.be/site/ Xiara

    Bedankt voor het interessant artikel!

  • http://www.diederikmartens.com Diederik Martens

    Wel cool dat Google het heeft veranderd op basis van jullie aanbevelingen.