2009-11-06 10 views
11

Me gustaría poder extraer los datos almacenados en la cookie de seguimiento de Google Analytics con toda la información de seguimiento de la campaña mediante Javascript. Debe funcionar con la versión más reciente de GA utilizando ga.js, no urchin.js. Encontré un método que funciona con urchin.js pero no lo usamos para nuestro seguimiento. ¿Alguien sabe cómo extraer el Campaign, Source, Medium, Content y Term de la cookie que utiliza Google?¿Cómo extraigo los datos de la campaña de Google Analytics de sus cookies con Javascript?

+0

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

Respuesta

7

Terminé descifrando esto por mi cuenta. Solo busqué lo que la cookie había almacenado y extraje la información. Esto es lo que ocurrió:

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

Estoy seguro de que podría ser más ágil, pero yo estaba feliz de llegar tan lejos con ella. Una vez que tenga estas variables, puede hacer lo que necesite con ellas.

+2

Si el usuario visita su sitio a través de AdWords, esto no funcionará, ya que los valores de AdWords para estas variables no están presentes en la cookie. – Eduardo

+0

No funciona con Facebook con utmz utmcsr = facebook.com | utmccn = (referencia) | utmcmd = referral | utmcct =/\t esto se vuelve así: ["facebook", "", "", "", ""] ya que ejecuta gc.split ('.') elimina el .com de facebook – Raptor

3

me he reescrito este para analizar los valores en una matriz asociativa y hacer uso de 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

No funciona con facebook con utmz utmcsr = facebook.com | utmccn = (referencia) | utmcmd = referral | utmcct =/esto se vuelve así: Objeto {utmcsr: "facebook"} donde debería ser utmsource: facebook.com utmedium: referral utcampaign: (referencia) – Raptor

+0

readcookie parece crear un error –

4

ahora trabaja:

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

Parece que maneja Facebook con utmz utmcsr = facebook.com | utmccn = (referencia) | utmcmd = referral | utmcct =/correctamente! Resultado: Objeto {gc: "***. Utmcsr = facebook.com | utmccn = (referencia) | utmcmd = referral | utmcct = /", ga_source: "facebook.com", ga_campaign: "(referencia)", ga_medium: "referencia", ga_content: "/"} que es perfecto! – Raptor

Cuestiones relacionadas