您描述的设置是多顶级域设置。问题是用于保持 Google Analytics 会话的 cookie 只能存储在子域或根域级别,因此当您有多个顶级域时,您需要从一个 TLD(顶级域)传递此会话数据给对方。
首先让我们看一个更简单的例子,多个子域。为了跟踪这种情况:
- partner1.old-domain.com
- partner2.old-domain.com
我们需要将 cookie 限定为根域,在本例中为“old-domain.com”,这意味着跟踪可以在 partner1 和 partner2 子域中持续存在。这可以通过使用以下方法简单地实现:
_gaq.push(['_setDomainName', 'example.com']);
但是,在添加新 TLD 时,这会变得更加复杂。添加时,我们得到:
- partner1.old-domain.com
- partner2.old-domain.com
- partner1.new-domain.com
- partner2.new-domain.com
为了让这个设置起作用,我们需要使用 setDomainName 方法和 setAllowLinker
_gaq.push(['_setDomainName', 'example.com']);
_gaq.push(['_setAllowLinker', true]);
存在跨多个域保持跟踪会话的最佳方法。cookie 无法被多个 TLD 读取,这意味着在“old-domain.com”上设置的 Analytics cookie 无法被“new-domain.com”读取,因此 Google Analytics 访问者会话无法持续。
解决这个问题的方法是绕过 cookie,它是这样做的:在执行从 'old-domain.com' 到 'new-domain.com' 的链接时,会话信息首先传递到 URL 中,然后然后由谷歌分析在第二个域上解析,允许访问者会话的持久性。
Google 提供了一种通过 '_link()' 函数执行此操作的方法。此功能需要与域之间的所有链接一起使用。这既是从旧域到新域,也是从新域到旧域。
<a href="http://partner1.new-domain.com/"
onclick="_gaq.push(['_link', 'http://partner1.new-domain.com/']);
return false;">
Continue to the new site.
</a>
希望这已经清除了它。我了解您不想使用 setAllowLinker,但这是最好的方法。
此处提供更多信息:为多个域设置跨域跟踪