8

有人通过博客链接(比如http://blog)来到我的网站(比如http://mysite/a.php)。

所以现在她在http://mysite/a.php页面上,并且referer 设置为http://blog

现在页面http://mysite/a.php上有 JavaScript,它执行以下重定向:

    document.location = "http://mysite/b.php;
    //这是在任何 Google Analytics 脚本之前执行的。

现在在对http://mysite/b.php的请求中,referer 设置为http://mysite/a.php
因此(我认为是这样)我的 Google Analytics 显示了来自http://mysite/a.php的所有流量。

请提出解决方案。
注意:JavaScript 重定向很关键,无法摆脱它。
我也尝试从服务器发送 302 代码,但没有成功。

4

2 回答 2

11

编辑:新的,推荐的方式

Google Analytics 现在有一个特殊的 URL 参数,utm_referrer您可以在其中将引用者传递给您要重定向到的页面;这样做将模拟与以下相同的行为,而无需弄乱 cookie 或函数。

在你的例子中,你会让你的代码说:

 document.location = "http://mysite/b.php?utm_referrer=" + encodeURIComponent(location.href); ;

旧的、更难但实用的方法

Google Analytics 有一个名为setRefererOverride()的函数。如果您设置它,它将覆盖它跟踪到您设置的任何值的引荐来源网址值。

最好的方法是,在重定向之前,将真正的引用者存储在 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);
}
于 2010-11-11T15:18:23.173 回答
0

我认为最干净(也许是唯一)的方法是a.php在进行重定向之前触发 GA 计数。

如果这不是一个选项,我能看到让推荐人保持活力的唯一方法是

document.location = "http://mysite/b.php?referrer="+
                    encodeURIComponent(document.referrer);

在某些情况下无法在 IE 中工作

但这仍然不会告诉 GA 相应地设置引荐来源 - 您必须在计数时将其强制用于 Google Analytics。我不知道这是否可能。

于 2010-11-11T14:04:28.147 回答