有人关注博客链接(说http://blog)来到我的网站(比如http://mysite/a.php)。
所以现在她在页面http://mysite/a.php上,并且referer设置为http://blog
现在页面http://mysite/a.php上有JavaScript,它执行以下重定向:
document.location = "http://mysite/b.php; //This is executed before any Google Analytics script.
现在,在http://mysite/b.php的请求中,referer设置为http://mysite/a.php 因此(我认为如此),我的Google Analytics会显示来自http://mysite/a.php的所有流量。
请提出解决方案。
注意:JavaScript重定向很关键,无法摆脱它
我也尝试从服务器发送302代码,但没有成功。
答案 0 :(得分:11)
Google Analytics现在有一个特殊的网址参数utm_referrer
,您可以将参考者传递到您要重定向到的网页;这样做会模拟与下面相同的行为,而不需要弄乱cookie或函数。
在您的示例中,您将使代码说:
document.location = "http://mysite/b.php?utm_referrer=" + encodeURIComponent(location.href); ;
Google Analytics有一个名为setRefererOverride()的功能。如果您设置它,它将覆盖它跟踪的引用者值到您设置的任何值。
best way to do this是在重定向之前将真实的引荐来源存储在Cookie中,如下所示:
document.cookie = "realreferrer="+encodeURIComponent(document.referrer)+"; path=/";
然后,阅读页面上的cookie值。如果设置了cookie,请在您的综合浏览量之前调用该函数。
var realreferrer = readCookie("realreferrer"); //using a readCookie function of some kind
if (realreferrer) {
_gaq.push(['_setReferrerOverride', realreferrer ]);
//if using the old code, use pageTracker._setReferrerOverride(realreferrer);
}
答案 1 :(得分:0)
我认为最干净(也许唯一)的方法是在进行重定向之前触发a.php
中的GA计数。
如果这不是一个选项,我可以看到保持推荐人活着的唯一方法是
document.location = "http://mysite/b.php?referrer="+
encodeURIComponent(document.referrer);
(将not work in IE under some circumstances)
但是,这仍然无法告诉GA相应地设置引荐来源 - 您必须在计算时强制它在Google Analytics上。我不知道这是否可能。