禁止将Google Analytics Cookie发送到无Cookie域

时间:2010-07-12 22:44:26

标签: javascript optimization cookies google-analytics subdomain

为了优化我的网站,我为图片,css和javascript等内容设置了一个静态子域名。如何阻止将谷歌分析跟踪cookie发送到我的静态子域,但仍然发送到example.com和www.example.com?

已经查看了一些没有运气的文档

2 个答案:

答案 0 :(得分:3)

您无法将Cookie发送至www.example.comexample.com,但不能othersubdomain.example.com

理论上你可以将一个cookie发送到example.com而不是subdomain.example.com,但它在IE中不起作用。

这就是为什么在计划使用具有自己的安全上下文的子域时,不应使用no-www example.com地址。最好只有www.example.comexample.com中的一个作为“正确”的网址。因此,设置example.com的重定向以转到www.example.com,除非您故意在其上设置domain=.example.com,否则不会共享Cookie。

答案 1 :(得分:3)

如果您在使用Google Analytics(分析)时遇到问题,请为每个域创建Cookie,包括您的子域名。这是我在其他地方发布的关于这个主题的解决方案。


我觉得我已经找到了Google提供的破解代码的临时解决方案。

如果您进入GA并获取非异步代码并选择:

One domain with multiple subdomains
Examples:   apps.konoro.org
    store.konoro.org
    video.konoro.org

您会看到它为您提供了.konoro.org的代码示例。将其更改为www.konoro.org,所有Cookie都将包含:.www.konoro.org(前面有一个点)。

现在,如果你回到你的异步代码,除了Async之外,只有一个区别。您需要将['_setDomainName', 'www.konoro.org']作为第二个选项而不是['_trackPageview']之后。

出于某种原因,这是第二种选择,它可以正常工作。

我的最终代码是:

var _gaq = _gaq || [];
_gaq.push(
    ['_setAccount', 'UA-XXXXXXX-1'],
    ['_setDomainName', 'www.konoro.org'],
    ['_trackPageview']
); 

(function() {
    var ga = document.createElement('script');
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    ga.setAttribute('async', 'true');
    document.documentElement.firstChild.appendChild(ga);
})();