2009-11-06 57 views
11

我希望能够使用Javascript提取存储在Google Analytics跟踪Cookie中的所有广告系列跟踪信息中的数据。它需要使用ga.js而不是urchin.js与新版GA一起工作。我发现了一种可以与urchin.js一起使用的方法,但我们不会将其用于跟踪。有人知道如何从谷歌使用的cookie中提取Campaign,Source,Medium,ContentTerm如何从Javascript cookie中提取Google Analytics广告系列数据?

+0

在这里找到答案:http://stackoverflow.com/questions/934119/track-campaigns-with-google-analytics-without-query-string-parameters/21893015#21893015 – 2014-03-17 15:48:56

回答

7

我结束了自己的想法。我只是挖掘了cookie存储的内容并提取了信息。这是我想出的:

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

我相信它可以更简化,但我只是很高兴得到它与此。一旦你有这些变量,你可以做任何你需要的东西。

+2

如果用户通过AdWords访问您的网站,则这不会起作用,因为这些变量的AdWords值不存在于Cookie中。 – Eduardo 2011-05-10 00:03:28

+0

对于使用utmz的facebook不起作用utmcsr = facebook.com | utmccn =(referral)| utmcmd = referral | utmcct =/\t这会变成这样:[“facebook”,“”,“”,“”,“”]因为它执行的是gc.split('。'),所以它从.com中删除.com – Raptor 2016-02-11 06:48:27

3

我已经重写这值解析到一个关联数组,并利用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

对于使用utmz的facebook不起作用utmcsr = facebook.com | utmccn =(referral)| utmcmd = referral | utmcct =/this变成这样:对象{utmcsr:“facebook”}其中应该是utmsource:facebook.com utmedium:referral utcampaign :(引荐) – Raptor 2016-02-11 06:52:20

+0

readcookie似乎创建了一个错误 – 2016-11-12 15:06:32

4

现就职于:

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

似乎用utmz处理facebook utmcsr = facebook.com | utmccn =(引荐)| utmcmd =转介| utmcct = /正确!结果:Object {gc:“***。utmcsr = facebook.com | utmccn =(referral)| utmcmd = referral | utmcct = /”,ga_source:“facebook.com”,ga_campaign:“(referral)”,ga_medium: “推荐”,ga_content:“/”}这是完美的! – Raptor 2016-02-11 06:54:02

相关问题