3

我们有两个域为完全相同的 SaaS 应用程序提供服务。由于遗留的第 3 方集成,我们不能丢弃旧域或重定向它(即 301)。我知道从 SEO 的角度来看这很糟糕,但这个应用程序不是公开的,所以这不是问题。

我正在寻找一种使用 Google Analytics 作为一个站点来跟踪它们的方法。我看过其他类似情况的海报,但我有一个没有解决的问题。我还需要能够跟踪子域。(即,partner1.old-domain.com || partner1.new-domain.com)

所以要求看起来像这样:

作为一个站点跟踪所有流量:(old-domain.com || new-domain.com)

跟踪所有子域流量(配置文件过滤器?):(partner1.old-domain.com || partner1.new-domain.com)

注意:尽量避免使用_gaq.push(['_setAllowLinker', true]);. 据我了解,这并不适用于真正的跨站点/跨域情况。

4

2 回答 2

2

您描述的设置是多顶级域设置。问题是用于保持 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,但这是最好的方法。

此处提供更多信息:为多个域设置跨域跟踪

于 2013-01-19T17:54:03.557 回答
0

_gaq.push(['_setDomainName', 'example.com']);

https://developers.google.com/analytics/devguides/collection/gajs/methods/gaJSApiDomainDirectory#_gat.GA_Tracker_._setDomainName

于 2013-01-10T14:59:59.323 回答