适用于具有多个域的一个网站的Google Analytics配置

时间:2012-11-21 17:58:47

标签: google-analytics

我们有两个域提供完全相同的SaaS应用程序。由于传统的第三方集成,我们无法丢弃旧域或重定向它(即301)。我知道这从搜索引擎优化的角度来看是糟糕的,但这个应用程序不公开,所以这不是一个问题。

我正在寻找一种使用Google Analytics作为 ONE 网站跟踪它们的方法。我见过其他类似情况的海报,但我有一个尚未解决的皱纹。我还需要能够跟踪子域。 (即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]);。据我了解,这不适用于真正的跨站点/跨域情况。

2 个答案:

答案 0 :(得分: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]);

在多个域中保持跟踪会话的最佳方法。多个TLD无法读取Cookie,这意味着'old-domain.com'上设置的Google Analytics Cookie不能被'new-domain.com'读取,因此Google Analytics访问者会话无法保留。

克服这个问题的方法是绕过cookie,这就是它的完成方式:执行从'old-domain.com'到'new-domain.com'的链接时,会话信息首先被传递到该URL然后由第二个域上的Google Analytics解析,允许访问者会话持续存在。

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,但这是最好的方法。

此处提供更多信息:Set up cross-domain tracking for multiple domains

答案 1 :(得分:0)