Я хочу, чтобы вытащить данные, хранящиеся в куки файлах отслеживания Google Analytics, со всей информацией отслеживания кампаний с помощью Javascript. Он должен работать с более новой версией GA, используя ga.js, а не urchin.js. Я нашел метод, который работает с urchin.js, но мы не используем его для нашего отслеживания. Кто-нибудь знает, как извлечь файлы Campaign
, Source
, Medium
, Content
и Term
из файла cookie, который использует Google.
Как извлечь данные кампании Google Analytics из своего файла cookie с помощью Javascript?
Ответ 1
Я закончил тем, что понял это сам. Я просто впился в то, что куки-хранилище хранит и извлекает информацию. Вот что я придумал:
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
Теперь работает:
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();
Ответ 3
Я переписал это, чтобы проанализировать значения в ассоциативном массиве и использовать функции 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;
}
Ответ 4
С ответом на комментарий @Eduardo (о выбранном ответе не работает в AdWords), если вы хотите, чтобы он работал для трафика AdWords, этот ответ может быть достоин:
Как выполнить захват, если посетитель находится в Google AdWords, нажмите
Не пробовал, хотя.