簡體   English   中英

如何使用Javascript從Cookie中提取Google Analytics廣告系列數據?

[英]How do I extract Google Analytics campaign data from their cookie with Javascript?

我希望能夠使用Javascript提取包含所有廣告系列跟蹤信息的Google Analytics跟蹤Cookie中存儲的數據。 它需要使用ga.js而不是urchin.js來使用較新版本的GA。 我找到了一個與urchin.js一起使用的方法,但我們不會將其用於跟蹤。 有人知道如何從Google使用的Cookie Medium提取CampaignSourceMediumContentTerm嗎?

我最終自己搞清楚了。 我只是挖掘了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);
        }
    }
}

我相信它可以更精簡,但我很高興能夠實現這一目標。 一旦你擁有了這些變量,你就可以隨心所欲地做任何事情。

現在有效:

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

我重寫了這個以將值解析為關聯數組並使用quicksmode cookie函數

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

回復@Eduardo評論(關於選擇的答案不適用於AdWords),如果您想讓它適用於AdWords流量,這個答案可能值得一試:

如果訪問者來自谷歌adwords點擊,如何捕獲

雖然沒試過。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM