Как извлечь данные кампании Google Analytics из их файлов cookie с помощью Javascript?

Я хотел бы иметь возможность извлекать данные, хранящиеся в cookie-файлах отслеживания Google Analytics, со всей информацией об отслеживании кампаний с использованием Javascript. Он должен работать с более новой версией GA, используя ga.js, а не urchin.js. Я нашел метод, который работает с urchin.js, но мы нене использовать это для нашего отслеживания. Кто-нибудь знает, как извлечь,,,CampaignSourceMediumContent а такжеTerm из файла cookie, который использует Google?

 Israel Kloss17 мар. 2014 г., 16:48
Ответили здесь:stackoverflow.com/questions/934119/...

Ответы на вопрос(4)

переписать это, чтобы разобрать значения в ассоциативный массив и использоватьФункции cookie quicksmode:

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
 Mobile Bloke12 нояб. 2016 г., 16:06
readcookie, кажется, создает ошибку
 Raptor11 февр. 2016 г., 07:52
Не работает с facebook с utmz utmcsr = facebook.com | utmccn = (реферал) | utmcmd = referral | utmcct = / это становится так: Object {utmcsr: "facebook»} где и как должно быть utmsource: facebook.com utmedium: referral utcampaign: (referral)
Решение Вопроса

Я понял это сам. Я просто копался в том, что печенье хранит и извлекал информацию. Вот's, что я придумал: я

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

Я уверен, что это могло бы быть более упорядоченным, но я был просто счастлив получить это далеко с этим. Если у вас есть эти переменные, вы можете делать с ними все, что вам нужно.

 Eduardo10 мая 2011 г., 02:03
Если пользователь заходит на ваш сайт через AdWords, этоне работают, так как значения AdWords для этих переменных отсутствуют в файле cookie.
 Raptor11 февр. 2016 г., 07:48
Не работает с facebook с utmz utmcsr = facebook.com | utmccn = (реферал) | utmcmd = referral | utmcct = / это становится так: ["facebook "," "," "," "," "] так как он выполняет gc.split ('.') удалить .com из facebookI '

С ответом на комментарий @Eduardo (о выбранном ответе, не работающем для AdWords), если вы 'Мне бы хотелось, чтобы это работало для трафика AdWords. Возможно, стоит ответить на этот вопрос:

Как захватить, если посетитель от Google AdWords нажмите

Haven»хотя попробовал.

В настоящее время работает:

   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= 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();
 Raptor11 февр. 2016 г., 07:54
Кажется, обрабатывать facebook с utmz utmcsr = facebook.com | utmccn = (реферал) | utmcmd = реферал | utmcct = / правильно! Результат: Объект {gc: "*** utmcsr = facebook.com |. Utmccn = (направление) | utmcmd = направление | utmcct = /», ga_source: "facebook.com», ga_campaign: "(направления)", ga_medium: "направления", ga_content: "/"} что идеально!

Ваш ответ на вопрос