2009-11-06 22 views
11

Vorrei poter estrarre i dati memorizzati nel cookie di tracciamento di Google Analytics con tutte le informazioni di tracciamento della campagna utilizzando Javascript. Deve funzionare con la versione più recente di GA utilizzando ga.js, non urchin.js. Ho trovato un metodo che funziona con urchin.js ma non lo usiamo per il nostro monitoraggio. Qualcuno sa come estrarre il Campaign, Source, Medium, Content e Term dal cookie che Google utilizza?Come faccio a estrarre i dati delle campagne di Google Analytics dai loro cookie con Javascript?

+0

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

risposta

7

Ho finito per capirlo da solo. Ho appena scavato in ciò che il cookie aveva memorizzato ed estratto le informazioni. Ecco quello che mi si avvicinò con:

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

sono sicuro che potrebbe essere più snella, ma ero solo felice di arrivare a questo punto con esso. Una volta che hai queste variabili puoi fare tutto il necessario con loro.

+2

Se l'utente visita il tuo sito tramite AdWords, questo non funzionerà poiché i valori AdWords per queste variabili non sono presenti nel cookie. – Eduardo

+0

Non funziona con Facebook con utmz utmcsr = facebook.com | utmccn = (referral) | utmcmd = referral | utmcct =/\t diventa così: ["facebook", "", "", "", ""] dal momento che esegue gc.split ('.') rimuove il .com da facebook – Raptor

3

Ho riscritto questo per analizzare i valori su un array associativo e fare uso di quicksmode cookie functions:

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

Non funziona con Facebook con utmz utmcsr = facebook.com | utmccn = (referral) | utmcmd = referral | utmcct =/questo diventa così: Object {utmcsr: "facebook"} dove dovrebbe essere utmsource: facebook.com utmedium: referral utcampaign: (referral) – Raptor

+0

readcookie sembra creare un errore –

4

ora lavora:

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

Sembra gestire Facebook con utmz utmcsr = facebook.com | utmccn = (referral) | utmcmd = referral | utmcct =/correttamente! Risultato: Object {gc: "***. Utmcsr = facebook.com | utmccn = (referral) | utmcmd = referral | utmcct = /", ga_source: "facebook.com", ga_campaign: "(referral)", ga_medium: "referral", ga_content: "/"} che è perfetto! – Raptor

Problemi correlati