Til Top

Google Analytics VS DIBS

Stærkt inspireret af Analyticsbogen og Morten Vadskærs blogindlæg om opsætning af kanaler over betalingssystemer som er hostet på 3. parts sider, valgte jeg at prøve at få dette opsat i DIBS Flexwin. DIBS Flexwin er utroligt flexibelt, og du har som udgangspunkt adgang til alt, du kan designe dine egne sider, bruge javascript osv osv. Og når man har adgang til dette, ja så burde det være 4 lette trin:

  1. Tilføje 2 linier til din sporingskode på den side hvor brugeren sendes videre til betalingsvindue
    pageTracker._setDomainName("none");
    pageTracker._setAllowLinker(true);
  2. Flyt din sporingskode op så den kommer lige efter
  3. Tilføje pageTracker._link(this.href); return false; i en onclick eller onsubmit på det link eller den form der sender brugeren til betalingsvinduet
  4. Indsætte din modificeret sporingskode i betalingsvinduet

Ovenstående er fra Morten Vadskærs blogindlæg: opsætning af kanaler over betalingssystemer, som du absolut bør læse før du afprøver løsningen i dette blogindlæg

I DIBS Flexwin har du adgang til 3 filer:

  1. decorator.xml
  2. decorator.js
  3. decorator.css

decorator.xml er en xhtml fil som indeholder hele strukturen på dit betalingsvindue, og her kan du faktisk helt selv bestemme hvordan ting er opsat, hvilke elementer skal vises, og hvordan din html skal være opbygget.

Derfor troede jeg faktisk også det ville blive ret nemt at opsætte Google Analytics i DIBS Flexwin, men sådan skulle det bare ikke være.

Problemet med DIBS Flexwin og Google Analytics

Selvom du har fuld kontrol med dit DIBS Flexwin, ja så er der åbenbart nogen begrænsninger. Det mest åbenlyse ville jo være at indsætte sin Google Analytics sporingskode i decorator.xml og uploade denne. Dette virker bare ikke, fordi når du uploader Decorator.xml så valideres denne, og alt scripting fjernes, og du står tilbage med en fil uden din analytics sporingskode.

Mit næste forsøg blev at loade analytics ind i decorator.xml og så starte google analytics fra decorator.js. DVS i decorator.xml indsætter vi:

Kopier til udklipsholder | Vis uden linie #
01 <script  type="text/javascript"  src="https://ssl.google-analytics.com/ga.js"></script>

Og i decorator.js indsætter vi så:

Kopier til udklipsholder | Vis uden linie #
01 try  {
02 var  pageTracker  =  _gat._getTracker("xxxxxxxxxx");
03 pageTracker._setDomainName("none");
04 pageTracker._setAllowLinker(true);  
05 pageTracker._trackPageview();
06 }  catch(err)  {}

Dette vil under normale omstændigheder virke, men igen er det bare ikke tilfældet. Alle stier du indsætter i decorator.xml bliver nemlig ændret således at der sættes /paymentweb/[dit_merchant_id]/ foran stien, dette bevirker at vi prøver at loade /paymentweb/[dit_merchant_id]/https://ssl.google-analytics.com/ga.js - og der ligger Google Analytics jo ikke.

Heromkring var jeg tæt på at give op, men tænkte, det må da kunne klares med lidt javascript ninja skills, og det kunne det

Løsningen: Sådan får du Google Analytics og DIBS Flexwin til at blive gode venner

For at få Google Analytics ind i DIBS Flexwin, er vi nødt til at lave alt i decorator.js, dvs vi skal loade google analytics, og vi skal starte google analytics fra denne fil.

Til vores formål laver vi to funktioner, loadAnalytics() og activateAnalytics(), loadAnalytics skal tilføje google analytics fra http://ssl.google-analytics.com/ga.js:

Kopier til udklipsholder | Vis uden linie #
01 /**
02 *  Tilføj  google  analytics  dynamisk
03 */
04 function  loadAnalytics()  {
05        //lav  et  nyt  script  element
06        var  script    =  document.createElement('script');
07        script.src    =  'https://ssl.google-analytics.com/ga.js';
08        script.type  =  'text/javascript';
09        script.defer  =  false;
10        //hvis  browser  understøtter  readyState
11        if(script.readyState){    
12                script.onreadystatechange  =  function(){
13                        //kald  activateAnalytics  når  script  er  loadet
14                        if(script.readyState  ==  "loaded"  ||  script.readyState  ==  "complete"){
15                              script.onreadystatechange  =  null;
16                              activateAnalytics();
17                        }
18                };
19        }  else{
20                script.onload  =  function(){
21                        //kald  activateAnalytics  når  script  er  loadet
22                        activateAnalytics();
23                };
24        }      
25    document.getElementsByTagName('head').item(0).appendChild(script);
26 }

Funktionen går ind og laver et nyt script element i dit <head>, som loader Google Analytics, når ga.js er fuldt loadet kalder vi så activateAnalytics(), som simpelthen går ind og starter sporingen af brugeren:

Kopier til udklipsholder | Vis uden linie #
01 /**
02 *  track  brugeren
03 */
04 function  activateAnalytics()  {
05        try  {
06                var  pageTracker  =  _gat._getTracker("xxxxxxxxxx");
07                pageTracker._setDomainName("none");
08                pageTracker._setAllowLinker(true);  
09                pageTracker._trackPageview();          
10        }  catch(e)  {  }
11 }

NB. Husk at udskifte xxxxxxxxxx med dit eget ID.

Nu har vi de to funktioner vi skal bruge klar, så er det simpelthen bare et spørgsmål om at kalde loadAnalytics() i decorator.js. Måden DIBS Flexwin loader decorator.js på gør faktisk at vi blot kunne skrive loadAnalytics() i bunden af filen, men lige på det område er jeg ret paranoid, så jeg vil anbefale at man først gør det når siden er klar, dette kan vi gøre sådan her:

Kopier til udklipsholder | Vis uden linie #
01 if(window.addEventListener)  {  //moderne  browsere
02      window.addEventListener("load",  loadAnalytics,  false);
03 }  else  if(window.attachEvent)  {  //de  gamle
04      window.attachEvent("onload",  loadAnalytics);
05 }

Hent eksempel på decorator.js her

Nu er du klar til at sporer dine brugere henover dit DIBS Flexwin. Du skal dog stadig lige huske at rette den side som sender brugeren videre til DIBS Flexwin - men det kan du læse hvordan du gør over hos Morten Vadskær: opsætning af kanaler over betalingssystemer

I Google Analytics vil du nu kunne se sider i DIBS som sider der starter med /paymentweb/, og det er disse sider du skal indsætte i din kanal:

  • Vælg kort: /paymentweb/start.action
  • Indtast oplysninger: /paymentweb/paytype.action

Hvad kvitteringssiden fra DIBS hedder, må jeg være dig svar skyldig, da vi ikke bruger denne side, men det kan du se efter en dag med sporing, så går du blot ind i Google Analytics og søger efter paymentweb i Topindhold.

Konklusion

Det virker måske som overkill at gøre så meget ud af at spore et par trin i dit DIBS Flexwin - men der er utrolig meget værdi at hente her, uden dette kan du blot se at der falder nogen brugere fra i DIBS forløbet, men ikke præcis hvor, og det er altså lidt sjovere at vidde hvor præcis de springer fra - det er noget lettere at optimerer når man ved dette.

Jeg ved ikke om det er muligt at få Analytics ind på en nemmere måde en dette, men hvis det er så fandt jeg den ikke, dette var det eneste der virkede, men det virke til gengæld også rigtigt godt.

Hvis du ikke bruger DIBS Flexwin, men et andet system hvor du har mulighed for scripting, kan du faktisk også bruge dette trick, så hvad er din undskyldning? bare se at komme i gang - og så kan du i øvrigt lige købe Analyticsbogen og læse mere om hvorfor det er så vigtigt at få sporing på dit site!

 

kommentarer

Skrevet d. 4. Marts 2010 13:38 af Søren Sprogø
Bruger billede Fedt, jeg står netop og skal bruge dette!

Skal nok komme med noget feedback når jeg får testet det af :-)
Skrevet d. 4. Marts 2010 15:24 af Martin Nielsen
Bruger billede Det var god timing jeg havde så :-) håber det kan spare dig for lidt tid, og glæder mig til at høre om resultatet
Skrevet d. 24. Marts 2010 13:00 af Christian
Bruger billede Tak for en god og lavpraktisk gennemgang. Det er super værdifuldt!
Skrevet d. 24. Marts 2010 13:54 af Christian
Bruger billede Tak for en god og lavpraktisk gennemgang. Det er super værdifuldt!

skriv kommentar

Felter markeret med gult og * er påkrævet







Sikkerheds kode


Pingbacks

Hvis du linker til en af mine blog artikler fra et blogsystem der udsender pings vil du få et gratis do-follow link fra mig, du kna også twitte om en post og få et link til din twitter profil (Jeg forbeholder mig dog retten til at slette eller nofollow spam :P)

Pingback d. 4. Marts 2010 10:49 fra http://twitter.com/webanalytiker
Tweetback fra: @webanalytiker
RT @codenerd: [DK Blog] Google Analytics i DIBS Flexwin - Spor dine brugere igennem DIBS ...]
Pingback d. 4. Marts 2010 11:26 fra http://twitter.com/iUdvikler
Tweetback fra: @iUdvikler
RT @webanalytiker: RT @codenerd: [DK Blog] Google Analytics i DIBS Flexwin - Spor dine brugere igennem DIBS ...]
Pingback d. 4. Marts 2010 11:13 fra http://twitter.com/vadskaer
Tweetback fra: @vadskaer
RT @codenerd: [DK Blog] Google Analytics i DIBS Flexwin - Spor dine brugere igennem DIBS ...]
Pingback d. 4. Marts 2010 10:57 fra http://twitter.com/jacobworsoe
Tweetback fra: @jacobworsoe
Bookmarked! :) RT @codenerd: [DK Blog] Google Analytics i DIBS Flexwin - Spor dine brugere igennem DIBS ...]
Pingback d. 4. Marts 2010 10:57 fra http://twitter.com/henrik_andersen
Tweetback fra: @henrik_andersen
RT @webanalytiker: RT @codenerd: [DK Blog] Google Analytics i DIBS Flexwin - Spor dine brugere igennem DIBS ...]