2009-11-06 7 views
11

Ich möchte die im Google Analytics-Tracking-Cookie gespeicherten Daten mit allen Informationen zur Kampagnenverfolgung per Javascript abrufen können. Es muss mit der neueren Version von GA mit ga.js, nicht urchin.js arbeiten. Ich habe eine Methode gefunden, die mit urchin.js funktioniert, aber wir verwenden diese nicht für unser Tracking. Weiß jemand, wie man die Campaign, Source, Medium, Content und Term aus dem Cookie extrahiert, den Google verwendet?Wie extrahiere ich Google Analytics-Kampagnendaten aus ihrem Cookie mit Javascript?

+0

hier Beantwortet: http://stackoverflow.com/questions/934119/track-campaigns-with-google-analytics-without-query-string-parameters/21893015#21893015 –

Antwort

7

Ich fand es schließlich selbst heraus. Ich habe nur gegraben, was der Cookie gespeichert hat und extrahiert die Informationen. Hier ist, was ich kam mit:

var ga_source = ''; 
var ga_campaign = ''; 
var ga_medium = ''; 
var ga_term = ''; 
var ga_content = ''; 
var gc = ''; 
var c_name = "__utmz"; 
if (document.cookie.length>0){ 
    c_start=document.cookie.indexOf(c_name + "="); 
    if (c_start!=-1){ 
     c_start=c_start + c_name.length+1; 
     c_end=document.cookie.indexOf(";",c_start); 
     if (c_end==-1) c_end=document.cookie.length; 
     gc = unescape(document.cookie.substring(c_start,c_end)); 
    } 
} 
if(gc != ""){ 
    var z = gc.split('.'); 
    if(z.length >= 4){ 
    var y = z[4].split('|'); 
     for(i=0; i<y.length; i++){ 
      if(y[i].indexOf('utmcsr=') >= 0) ga_source = y[i].substring(y[i].indexOf('=')+1); 
      if(y[i].indexOf('utmccn=') >= 0) ga_campaign = y[i].substring(y[i].indexOf('=')+1); 
      if(y[i].indexOf('utmcmd=') >= 0) ga_medium = y[i].substring(y[i].indexOf('=')+1); 
      if(y[i].indexOf('utmctr=') >= 0) ga_term = y[i].substring(y[i].indexOf('=')+1); 
      if(y[i].indexOf('utmcct=') >= 0) ga_content = y[i].substring(y[i].indexOf('=')+1); 
     } 
    } 
} 

Ich bin sicher, dass es schlanker sein könnte, aber ich war einfach glücklich, dies mit ihm weit zu kommen. Sobald Sie diese Variablen haben, können Sie mit ihnen machen, was Sie brauchen.

+2

Wenn der Nutzer Ihre Website über AdWords aufruft, funktioniert dies nicht, da die AdWords-Werte für diese Variablen auf dem Cookie nicht vorhanden sind. – Eduardo

+0

Funktioniert nicht mit facebook mit utmz utmcsr = facebook.com | utmccn = (Empfehlung) | utmcmd = Verweis | utmcct =/\t das wird so: ["facebook", "", "", "", ""] da es gc.split ('.') ausführt entfernt es die .com von facebook – Raptor

3

Ich habe geschrieben das die Werte auf ein assoziatives Array zu analysieren und die Verwendung von quicksmode cookie functions machen:

function parseAnalyticsCookie() { 
    // inspiration from http://stackoverflow.com/questions/1688657/how-do-i-extract-google-analytics-campaign-data-from-their-cookie-with-javascript 
    // readCookie is from // http://www.quirksmode.org/js/cookies.html 
    // utmcsr = utm_source 
    // utmccn = utm_campaign 
    // utmcmd = utm_medium 
    // utmctr = utm_term 
    // utmcct = utm_content 
    var values = {}; 
    var cookie = readCookie("__utmz"); 
    if (cookie) { 
     var z = cookie.split('.'); 
     if (z.length >= 4) { 
      var y = z[4].split('|'); 
      for (i=0; i<y.length; i++) { 
       var pair = y[i].split("="); 
       values[pair[0]] = pair[1]; 
      } 
     } 
    } 
    return values; 
} 
+0

Funktioniert nicht mit Facebook mit utmz utmcsr = facebook.com | utmccn = (Empfehlung) | utmcmd = Verweis | utmcct =/das wird so: Objekt {utmcsr: "facebook"} wo es sein sollte utmsource: facebook.com utmedium: Empfehlung utcampaign: (Empfehlung) – Raptor

+0

readcookie scheint einen Fehler zu erzeugen –

4

Jetzt funktioniert:

function extractAnalyticsData(){ 
     var data = {}; 
     var ga_source = ''; 
     var ga_campaign = ''; 
     var ga_medium = ''; 
     var ga_term = ''; 
     var ga_content = ''; 
     var gc = ''; 
     var c_name = "__utmz"; 
     if (document.cookie.length>0){ 
      c_start=document.cookie.indexOf(c_name + "="); 
      if (c_start!=-1){ 
      c_start=c_start + c_name.length+1; 
      c_end=document.cookie.indexOf(";",c_start); 
      if (c_end==-1) c_end=document.cookie.length; 
      gc = unescape(document.cookie.substring(c_start,c_end)); 
      } 
     } 
     data.gc = gc; 
     if(gc != ""){ 
      var y = gc.split('|'); 
     for(i=0; i<y.length; i++){ 
      if(y[i].indexOf('utmcsr=') >= 0) data.ga_source = y[i].substring(y[i].indexOf('=')+1); 
      if(y[i].indexOf('utmccn=') >= 0) data.ga_campaign = y[i].substring(y[i].indexOf('=')+1); 
      if(y[i].indexOf('utmcmd=') >= 0) data.ga_medium = y[i].substring(y[i].indexOf('=')+1); 
       if(y[i].indexOf('utmcct=') >= 0) data.ga_content = y[i].substring(y[i].indexOf('=')+1); 
      if(y[i].indexOf('utmctr=') >= 0) data.ga_term = y[i].substring(y[i].indexOf('=')+1); 
     } 
     } 
     return data; 
    }; 
    extractAnalyticsData(); 
+0

Scheint facebook mit utmz umzugehen utmcsr = facebook.com | utmccn = (Empfehlung) | utmcmd = Verweis | utmcct =/richtig! Ergebnis: Objekt {gc: "***. Utmcsr = facebook.com | utmccn = (Verweis) | utmcmd = Verweis | utmcct = /", ga_source: "facebook.com", ga_campaign: "(Verweis)", ga_medium: "Empfehlung", ga_content: "/"} was perfekt ist! – Raptor