Ich möchte die im Google Analytics-Tracking-Cookie gespeicherten Daten mit allen Informationen zur Kampagnenverfolgung per Javascript abrufen können. Es muss mit der neueren Version von GA mit ga.js, nicht urchin.js arbeiten. Ich habe eine Methode gefunden, die mit urchin.js funktioniert, aber wir verwenden diese nicht für unser Tracking. Weiß jemand, wie man die Campaign
, Source
, Medium
, Content
und Term
aus dem Cookie extrahiert, den Google verwendet?Wie extrahiere ich Google Analytics-Kampagnendaten aus ihrem Cookie mit Javascript?
Antwort
Ich fand es schließlich selbst heraus. Ich habe nur gegraben, was der Cookie gespeichert hat und extrahiert die Informationen. Hier ist, was ich kam mit:
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);
}
}
}
Ich bin sicher, dass es schlanker sein könnte, aber ich war einfach glücklich, dies mit ihm weit zu kommen. Sobald Sie diese Variablen haben, können Sie mit ihnen machen, was Sie brauchen.
Wenn der Nutzer Ihre Website über AdWords aufruft, funktioniert dies nicht, da die AdWords-Werte für diese Variablen auf dem Cookie nicht vorhanden sind. – Eduardo
Funktioniert nicht mit facebook mit utmz utmcsr = facebook.com | utmccn = (Empfehlung) | utmcmd = Verweis | utmcct =/\t das wird so: ["facebook", "", "", "", ""] da es gc.split ('.') ausführt entfernt es die .com von facebook – Raptor
Ich habe geschrieben das die Werte auf ein assoziatives Array zu analysieren und die Verwendung von quicksmode cookie functions machen:
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;
}
Funktioniert nicht mit Facebook mit utmz utmcsr = facebook.com | utmccn = (Empfehlung) | utmcmd = Verweis | utmcct =/das wird so: Objekt {utmcsr: "facebook"} wo es sein sollte utmsource: facebook.com utmedium: Empfehlung utcampaign: (Empfehlung) – Raptor
readcookie scheint einen Fehler zu erzeugen –
Mit Reaktions Kommentar @Eduardo (über die nicht für AdWords arbeiten wählte beantworten), wenn Sie‘ d mögen es diese Antwort für AdWords-Traffic funktioniert einen Versuch wert sein könnte:
How to capture if a visitor is from a google adwords click
Habe es allerdings nicht ausprobiert.
Jetzt funktioniert:
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();
Scheint facebook mit utmz umzugehen utmcsr = facebook.com | utmccn = (Empfehlung) | utmcmd = Verweis | utmcct =/richtig! Ergebnis: Objekt {gc: "***. Utmcsr = facebook.com | utmccn = (Verweis) | utmcmd = Verweis | utmcct = /", ga_source: "facebook.com", ga_campaign: "(Verweis)", ga_medium: "Empfehlung", ga_content: "/"} was perfekt ist! – Raptor
hier Beantwortet: http://stackoverflow.com/questions/934119/track-campaigns-with-google-analytics-without-query-string-parameters/21893015#21893015 –