TL;DR:对于您的第一个示例,当且仅当您使用 _setDomainName 为 cookie 配置根域时,两个站点才会正确跟踪。否则,这两个域之间的流量每次从一个域移动到另一个域时都会产生“新”访问,从而导致访问计数膨胀和不准确的归因报告(因为您自己的域被认为是外部引荐来源。
对于第二种情况,如果没有缓解措施,您将遇到与第一种相同的问题,但解决方案是一个名为 _link 的函数。
详情
默认情况下,Google Analytics(分析)根据 2 条规则运行以确定其数据的一致性:
- 它必须能够访问 cookie。
- 访问后,cookie 必须具有正确的“域哈希”。
Cookie 访问在浏览器 cookie 规则下工作:根据您设置 cookie 的域,子域可以访问它们。默认情况下,Google Analytics 会在当前站点的域上设置这些 cookie。
子域
在子域的情况下,为您提供了一个功能,可让您配置应在哪个域上设置 cookie,_gaq.push(["_setDomainName","domain.com"]); 此配置将设置 cookie,以便 foo.domain.com 和 @ 可以访问它们987654329@,以及domain.com。但是,如果没有在所有这些站点中一致地使用确切的 _setDomainName,您可能会遇到跟踪问题。例如,即使 Google Analytics 有权访问 cookie,它仍会检查当前(或配置)域的“哈希”与存储的 cookie 的“哈希”。如果它们不匹配,它将创建一组新的 cookie,发出新访问的信号,并将前一个页面设置为其引荐来源。 (这表现为“自我引荐”,您将自己的域视为其自己的顶级引荐来源之一。)
跨域
对于跨域情况(domain1.com 和 domain2.com),事情要困难得多。由于这些是第一方 cookie,因此没有为您提供跨 2 个域共享 cookie 的本地途径。一旦有人转换到第二个域,访问部分的 cookie 将无法访问,因此 Google Analytics 将创建一个新访问,将其来源归因于第一个域。
如果这 2 个站点在概念上非常独立,并且您想要完全独立地跟踪这 2 个站点之间的流量(即使您将数据存储在同一个配置文件中),这可能是可行的。
但是,如果这两个域的统一数据至关重要(例如,第一个域有您的登录页面,而第二个域有您的结帐页面),那么您别无选择,只能使用特殊的 Google Analytics(分析)功能,@987654323 @,与将 _setAllowLinker 设置为 true 一致,后者将 Google Analytics cookie 附加到查询字符串中,并指示接收站点将其 cookie 设置为这些值。
更改 `_setDomainName` 值
如果您有兴趣跟踪第三级子域(例如,american.english.example.com),您需要为 _setDomainName 配置前导句点。 (即.example.com 而不是example.com)。
这样做的缺点是由此产生的“哈希”将不再匹配根级域上的“默认”哈希。也就是说,如果到目前为止,您还没有使用过 setDomainName,将其更改为带有前导句点的 cookie 将导致您的所有“过去”cookie 丢失,这意味着您的回访指标将不太可靠。