跟踪多个域 - 网络跟踪 (ga.js)

本文档介绍了在一个数据视图(配置文件)中收集对多个网域的访问的各种方法,这些网域就好像是一个网站,而不是两个单独的网站。还介绍了如何跟踪网站的不同部分,如子目录和采用 iframe 的内容。 如果您不熟悉跨网域跟踪的一般流程,请参阅 跨网域跟踪简介

简介

Google Analytics(分析)的默认设置是跟踪单个网域(如 www.example.com)的内容和访问者数据。

不过,假设您要将 Analytics 用于更复杂的情况,如跟踪:

  • 子网域dogs.example.comwww.example.com 的所有访问者,两者的数据都显示在同一个报告数据视图(配置文件)中
  • 子目录 - 将 www.example.com/dogs 子目录当作单个网站访问,单独报告仅限访问者访问
  • 第三方购物车 - 访问您的网店以及访问其他网域上托管的购物车的访问者
  • 顶级域名 - 在同一个报告数据视图(配置文件)中显示对您拥有的两个网域(例如 www.example-petstore.comwww.my-example-blog.com)的所有访问者
  • 采用 iframe 的内容 - 其他网域的 iframe 中的内容的访问者和网页浏览数据。

在上述任何情况下,您都需要对跟踪代码进行一些自定义,才能正确跟踪访问者。在执行此操作之前,建议您先了解默认 Analytics 安装中如何处理网域和目录

跟踪案例

本部分将介绍各种跟踪场景,按最热门的方法排序。

跨多个域和子域进行跟踪

在这种情况下,您可能希望跟踪两个唯一的网域和一个子网域。 例如,假设您有一家网店,还想跟踪自己博客的访问者和广告系列数据。

跨多个域和子域进行跟踪

下面显示了三个示例网址的关键跟踪代码自定义设置。

  • 网店网域www.example-petstore.com

    您只需要自定义指向 www.my-example-blogsite.com 的链接或表单数据。对于指向此网站子网域的链接,不需要执行此操作,因为 _setDomainName() 函数已将 .example-petstore.com 定义为为任何其他子网域启用 Cookie 访问的网域。

  • 网店子网域dogs.example-petstore.com

    返回主网域的链接不需要配置,因为子网域与主网域共享相同的 Cookie。

  • 博客网域www.my-example-blogsite.com

    此配置将域名设置为博客网站的顶级域名。这样,如果您以后为博客网站添加任何子网域,该子网域将能够与其父网域共享 Cookie,而且您不需要在它们之间设置特殊的关联调用。不过,对于任何表单或指向 www.example-petstore.com 的链接,您仍必须使用 _link()_linkByPost() 方法。

跨某个域及其子域进行跟踪

如上所述,Google Analytics(分析)的默认设置是跟踪单个网域(如 www.example.com)的内容和访问者数据。这意味着,即使您同时管理一个网域和一个子网域,也必须对跟踪代码进行修改,以便在这两个网域之间共享访问者数据。

假设您想将以下网址作为单个实体加以跟踪:

  • www.example-petstore.com
  • dogs.example-petstore.com
  • cats.example-petstore.com

对于此设置,您需要在所有三个网域上对跟踪代码使用以下关键自定义设置。

您无需对这三个网站之间的链接或表单进行任何调整。由于您将域名设置为顶级网域(例如example-petstore.com)。

在一个网域与另一网域中的子目录之间进行跟踪

另一种常见的跟踪场景是跟踪单个网域与不同网域的子目录之间的访问者和流量数据。 如果您想跟踪自己的网站与在线博客之间的流量,而您的博客被限制在博客服务的某个子目录中,就可能发生上述情况。 以下示例网址各自推荐了两个网页上的跟踪代码自定义设置。

主网站网域:www.example.com

博客网址:www.blog-hosting-service.com/myBlog

对于从 www.example-petstore.com 提交到购物车网站的任何表单,您可以使用 _linkByPost() 方法将流量和访问者 Cookie 数据通过 HTTP POST 复制到购物车网站。_setAllowLinker() 方法会指示目标网站从 POST 数据(而不是常规用户会话信息)中读取 Cookie 数据。通过这种方式,您可以将 Cookie 数据集从一个网域传递到另一个网域,从而保留从网店到购物车的访问者会话。

同样,您可以使用 _link() 函数传输从网店到购物车的任何链接上的访问者数据。

跨 iFrame 跟踪

如果网站是通过打开一个新窗口或在 iframe 中添加内容来实现网域之间的转移,您需要使用 _getLinkerUrl() 方法将访问者和广告系列 Cookie 从一个网域传输到另一个网域。例如,假设您在托管在 www.my-example-iframecontent.com 上的 iframe 中添加了一个表单。 为了从在 www.example-parent.com 上托管 iframe 的父页面传输访问者信息,您需要使用 JavaScript 加载 iframe,并使用 _getLinkerURL() 方法传入 Cookie 信息。

以下示例仅说明了链接函数,并假定在两个网域的跟踪代码段中都配置了跨网域跟踪

针对 Internet Explorer 配置 iFrame 跟踪

采用 iframe 且托管在与父网页不同的网域中的内容会被视为第三方内容。Internet Explorer 6 及更高版本的默认隐私设置不允许第三方网站在第一方网站上存储 Cookie。

这意味着,Google Analytics(分析)对 iframe 网页的跟踪需要特殊配置才能在 Internet Explorer 中正常运行。对于驻留在 iframe 中的网页,您需要配置隐私权偏好设置。您可以使用以下方法之一在托管的网页上设置隐私偏好设置:

  • 为所包含网站的网页添加特殊的“隐私权偏好设置平台”(P3P) HTTP 标头
  • 对于所纳入网站的网页提供 P3P XML 清单

如需了解详情,请参阅以下资源:

跟踪单个子目录

有两种常见情形,需要将 Google Analytics(分析)跟踪限制到规模较大的域的单个子目录:

  • 您只能访问规模较大的网站的某个子目录,比如在使用电子商务托管服务时。
  • 您希望将跟踪限制在规模较大的网站的某个子目录中,例如,当您在公司网站上启动一个项目时,该网站也使用 Google Analytics(分析)跟踪。

假设您在 Google Analytics(分析)帐号中有一个数据视图(配置文件),您用它来跟踪访问者数据与在线品牌形象,而后者只是一个更大的网站主机(如博客服务)的一部分。您的网站本身托管在 www.example.com/myBlog/ 上。 您只希望记录 /myBlog 子目录的访问者和广告系列数据,而不记录 example.com 网域中的任何其他网页的数据。在这种情况下,您也只能访问该子目录中包含的那些网页。

要为您的商店设置跟踪,您需要在跟踪代码中使用 _setCookiePath() 函数,如下所示:

设置完毕后,您的报告将只为您的子目录正确显示访问者和广告系列数据。这是因为 Cookie 路径已设为您的子目录,而非 www.example.com 的根目录,因此您的数据视图(配置文件)只会读取和写入您的商店专属的一组 Cookie。

在这种情况下,我们认为最好使用 _setCookiePath() 函数。否则,可能会对您的报告有以下两点影响:

  • 您的帐号可能会共享在 www.example.com 上设置的其他 Google Analytics(分析)帐号 Cookie

    这意味着,访问者统计信息(如 new vs returningtime on sitenumber of visits)可能不正确,因为您访问者的会话 Cookie 还可能会反映 www.example.com 其他部分的活动。

  • 您的报告可能会反映网站其他部分的广告系列详细信息。

    例如,假设访问者点击了某个电子邮件广告系列,转到了同一网域上的另一个网站:www.example.com/theirBlog。在这种情况下,系统会将访问者 Cookie 中的引荐信息设置为名为“博客最新资讯”的广告系列。之后,该访问者通过在浏览器中输入 www.example.com/yourBlog 直接返回您的网站,并付费订阅了您的博客。由于所有其他广告系列引荐都会留存在直接访问之后,因此您会看到博客上的最新消息 广告系列为您的订阅带来了销售额。这是因为您网店的 _utmz Cookie 没有针对路径单独设置。

如果将访问者 Cookie 限制到您的路径,那么 www.example.com 另一部分的广告系列和会话数据将不会包含在您的报告中,因为 Cookie 路径受到了限制。(有关网络浏览器如何读取 Cookie 的更多背景信息,请参阅 Cookie)。

其他子目录提示

  • 如果您要跟踪某个子目录的访问者和引荐流量,可能还需要对该子目录设置一个“包含”过滤器,以确保报告中仅显示该子目录的内容。有关详情,请参阅帮助中心内的预定义过滤器一文。
  • 如果您要在网域中设置子目录跟踪,还应确保已针对根路径(如 /)及其下的所有网页停用 Google Analytics(分析)跟踪。例如,如果您希望单独跟踪网站的子目录,则 www.example.com/index.html 不应启用 Google Analytics(分析)跟踪。如果未停用对根路径的跟踪,那么系统会为您设置了路径级跟踪的网页设置 2 组 Cookie,一组用于子目录,另一组用于顶级网域。

跨同一域上的两个子目录进行跟踪

您可能希望跟踪某个网域中的多个子目录,而对于规模更大网域的网页,您无权访问其中的网页。例如,假设您在某服务提供商的网站上有一个网店和一个购物车:

  • www.example-commerce-host.com/myStore/
  • www.example-commerce-host.com/myCart/

如果您想跟踪从商店到购物车的用户会话和广告系列数据,可使用以下两种方法来实现这一目标:

以下示例显示了跟踪代码段的关键部分,这些部分用于跟踪从您的商店到购物车的用户会话和广告系列数据:

在这种情况下,系统会为网域设置唯一的 Cookie,并仅限于所提供的第一个目录,相同的 Cookie 数据也会复制到所提供的第二个目录。由于这两个网站位于同一网域,您无需更改两个目录之间的任何链接或表单数据。

跨域跟踪的关键组件

本部分将提供有关关键组件及其最佳使用方法的详细信息,帮助您对跨网域跟踪设置进行问题排查。

数据视图(配置文件)

在设置跨网域跟踪时,您需要确保对您的数据视图(配置文件)做到以下几点:

  • 在不应用过滤器的情况下为主网域设置主数据视图(配置文件)

    由于您希望以特殊方式使用数据视图(配置文件)来进行跨网域跟踪,因此首先建议您为主网域设置一个主数据视图(配置文件)。此数据视图(配置文件)不应添加任何过滤器。这样,如果您在跨跟踪数据视图(配置文件)中设置过滤器时出错,就可以随时查阅主网域的基准历史数据。

  • 创建跨网域跟踪专用的数据视图(配置文件),并重复使用您的跟踪代码

    在设置了数据视图(配置文件)并检索到主网域的跟踪代码后,请对所有其他网络媒体资源使用相同的跟踪代码。这样,您的配置就可以在启动跨网域跟踪之前正确设置,并且您还可以获得所有网络媒体资源的历史数据。如果您遵循了设置主数据视图(配置文件)的建议,只需使用主数据视图(配置文件)中提供的相同跟踪代码,为您的主网域再创建一个数据视图(配置文件)即可。您要关联的所有其他网络媒体资源也应具有相同的跟踪代码。

  • 使用可在内容报告中显示完整网域的过滤器修改您的跨网域数据视图(配置文件)。

    建立网域链接后,您将只会在内容报告中看到请求 URI,而不会看到给定网页的顶级或子网域。例如,对于以下网页的访问:
    - http://www.example.com/index.php 以及 上的另一个网页
    http://sub.example.com/more.php
    报告将显示:
    — index.php
    — more.php
    您无法分辨哪个网页来自哪个网域。若要在网页报告中显示该网域,请设置一个过滤条件以包含网页网址的所有组成部分,如下所示:

    1. 数据视图(配置文件)设置页上,点击添加过滤器链接。
    2. 选择添加新过滤器,并为过滤器命名。
    3. 选择自定义过滤器,然后在“过滤器类型”设置中选择高级
    4. 高级设置下:
      1. FieldA 应设置为“主机名”
      2. FieldB 应设置为“请求 URI”
    5. 将字段 A 和字段 B 的值设置为 (.*),这是一个用于捕获所有字符的表达式。
    6. Output To --> 构造函数选项设为 Request URI,并提供 $A1$B1 作为该选项的值。

    您的报告现在将显示:
    - www.example.com/index.php
    sub.example.com/more.php
    这将捕获网址的 www.example.com 部分,并将其包含在内容报告部分中的网页网址开头的位置。

Cookie:传送访问者数据必不可少

为了使两个域共享会话和访问者类型等相同的访问者数据,它们必须能够复制或共享相同的 Cookie 信息。另外,您还应该注意:

只能通过正确配置的点击或表单提交,或通过 _getLinkerURL,将一个网域的会话转移到另一个网域

通过这三种方法传递的 Cookie 数据会链接起单个会话下的两次网页浏览。如果用户单独访问在同一数据视图(配置文件)中跟踪的两个网站(例如通过书签进行跟踪),则这些访问仍会被分别计入到不同的会话下。这种情况将不调用链接方法,因此无法确定给定用户的发起会话。

Cookie 是由若干字段加以识别,且默认情况下不会在域之间进行共享,了解了这一点对真正理解跨域跟踪会有帮助。此外,Cookie 共享会自动在 Google Analytics(分析)中关闭。这是因为在许多情况下,在域之间共享相同的 Cookie 是不可取的。请参阅 Cookie 参考中的 Cookie 识别和有效期的重要性。此外,默认情况下,Google Analytics(分析)会对 Cookie 进行额外的完整性检查。

_setDomainName('您的域名')yourDomainName

用途
此方法会将 Cookie 的网域字段设置为该参数中提供的字符串。通过这种方法,您可以控制 Cookie 使用的域名。您只需要在顶级网域之间设置链接,因为子网域将与其父级共享相同的 Cookie。
适用情形
如果您希望将顶级网域和子网域视为同一个实体,并在同一数据视图(配置文件)中进行跟踪,请使用此参数。如果您希望跨多个顶级网域及其子网域进行跟踪,也请使用此方法。在这种情况下,您需要在顶级网域之间使用链接,但不需要在顶级网域与其子网域之间使用链接。
何时不应使用
如果您跟踪的是单个网域,则无需明确设置域名。