本文档介绍了在单个数据视图(配置文件)中收集对多个网域的访问的各种方法,就像它们是单个网站而不是两个单独的网站。以及如何跟踪网站的各个部分,如子目录和 iframe 内容。 如果您不熟悉跨网域跟踪的一般流程,请参阅跨网域跟踪简介。
简介
Google Analytics(分析)的默认设置是跟踪单个网域(例如 www.example.com
)的内容和访问者数据。
但是,假设您想要将 Google Analytics(分析)用于更复杂的情况,如跟踪:
- 子网域 - 同时访问
dogs.example.com
和www.example.com
的所有访问者,两者的数据都会显示在同一报告数据视图(配置文件)中 - 子目录 - 仅限访问单独报告中的
www.example.com/dogs
子目录的用户,就像访问的是单个网站一样 - 第三方购物车 - 访问您的网店以及托管在其他网域上的购物车的访问者
- 顶级网域 - 您拥有的两个网域(例如
www.example-petstore.com
和www.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()
方法,通过 HTTP POST 将流量和访问者 Cookie 数据复制到购物车网站。_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 存储在第一方网站上。
这意味着,iFrame 网页的 Google Analytics(分析)跟踪需要特殊配置才能在 Internet Explorer 中运行。对于位于 iframe 中的网页,您需要配置隐私权偏好设置。您可以使用以下方法之一在托管网页上设置隐私权偏好设置:
- 为所含网站添加一个特殊的“隐私偏好设置平台”(P3P) HTTP 标头
- 对于所纳入网站的网页提供 P3P XML 清单
如需了解详情,请参阅以下资源:
- 适用于网站站长的 P3P 指南:
- Google Analytics(分析)中的 Cookie
跟踪单个子目录
有两种常见情形,需要将 Google Analytics(分析)跟踪限制到规模较大的域的单个子目录:
- 您只能访问大型网站的子目录,例如当您使用电子商务托管服务时。
- 您希望将跟踪范围限制到某个大型网站的子目录,例如,当您在公司的网站上启动项目,而该网站也使用 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 returning
”、“time on site
”和“number of visits
”等访问者统计信息可能不正确,因为您的访问者的会话 Cookie 可能还反映了www.example.com
其他部分的活动。 - 您的报告可能会反映网站中其他部分的广告系列详细信息。
例如,假设某个访问者点击了某电子邮件广告系列,并转到同一网域上的另一网站:
www.example.com/theirBlog
。 在本例中,访问者 Cookie 中的引荐信息被设置为名为“博客最新资讯”的广告系列。之后,该访问者在浏览器中输入www.example.com/yourBlog
并直接订阅您的博客,即可直接返回您的网站。由于所有其他广告系列引荐都比直接访问直接访问,因此您会看到“博客最新资讯”广告系列为您的订阅创造了销售。这是因为您的网店的_utm
z Cookie 没有针对路径单独设置。
如果您将访问者 Cookie 限制到您的路径,则 www.example.com
另一部分的广告系列和会话数据将由于 Cookie 路径受限而不纳入您的报告。(有关网络浏览器如何读取 Cookie 的更多背景信息,请参阅 Cookie。)
其他子目录提示
- 如果您要跟踪某个子目录的访问者和引荐流量,您可能还需要对该子目录设置“包含”过滤器,以确保您的报告中仅显示该子目录的内容。如需了解详情,请参阅帮助中心内的预定义过滤器一文。
- 如果您要在网域上设置子目录跟踪,还应确保对根路径(例如
/
)以及其下所有网页停用 Google Analytics(分析)跟踪。例如,如果您要单独跟踪网站的子目录,则www.example.com/index.html
不应启用 Google Analytics(分析)跟踪。如果未启用根路径跟踪,系统将在您已设置路径级跟踪的网页上设置两组 Cookie,一组用于子目录,另一组用于顶级域名。
跨同一域上的两个子目录进行跟踪
您可能希望跟踪某个您无权访问较大网页的网页的域上的多个子目录。例如,假设您在某服务提供商的网站上有一个网店和一个购物车:
www.example-commerce-host.com/myStore/
www.example-commerce-host.com/myCart/
如果您想跟踪从商店到购物车的用户会话和广告系列数据,可以使用以下两种方法来实现:
_setCookiePath()
方法,用于限制跟踪特定目录_cookiePathCopy()
方法,用于将 Cookie 信息复制到同一网域中的其他目录
以下示例展示了跟踪代码段的关键部分,用于跟踪从商店到购物车的用户会话和广告系列数据:
在这种情况下,系统会为网域设置唯一的 Cookie(仅限于提供的第一个目录),并且相同的 Cookie 数据也将复制到提供的第二个目录。由于两个网站位于同一网域,因此您无需更改两个目录之间的任何链接或表单数据。
跨域跟踪的关键组件
本部分将提供关键组件的详细信息以及最佳用法,帮助您排查跨网域跟踪设置问题。
数据视图(配置文件)
设置跨网域跟踪时,您需要确保对数据视图(配置文件)执行以下操作:
- 为主网域设置主数据视图(配置文件),不应用过滤器。
由于您希望以特殊方式使用数据视图(配置文件),因此在进行跨网域跟踪时,我们建议您先为主网域设置主数据视图(配置文件)。此数据视图(配置文件)不应添加任何过滤器。这样一来,当您在跨跟踪数据视图(配置文件)中设置过滤条件时出错时,可以参考主域名的基准历史数据。
- 创建跨网域跟踪专用的数据视图(配置文件)并重复使用您的跟踪代码。
为主网域设置数据视图(配置文件)并检索跟踪代码后,请对所有其他网站使用相同的跟踪代码。这样,您就可以在开始跨网域跟踪之前正确设置您的配置,并且您还可以获得所有网站媒体资源的历史数据。如果您遵循了设置主数据视图(配置文件)的建议,则只需使用主数据视图(配置文件)中提供的跟踪代码为主网域另外创建数据视图(配置文件)即可。您要关联的所有其他网站应该具有相同的跟踪代码。
- 使用过滤条件修改跨网域数据视图(配置文件),以显示内容报告中的完整网域。
建立网域链接后,您将只能在内容报告中看到请求 URI,而不会看到指定网页的顶级网域或子网域。举例来说,对于以下网页获得的访问:
-http://www.example.com/index.php
以及
-http://sub.example.com/more.php
上的其他网页
报告将显示:
- index.php
- more.php
您无法区分哪个网页与哪个网域。若要在网页报告中显示网域,请设置过滤条件以包含网页网址的所有组成部分,如下所示:- 在数据视图(配置文件)设置页面中,点击添加过滤器链接。
- 选择添加新过滤器,并为过滤器命名。
- 选择自定义过滤器并在过滤器类型设置中选择高级。
- 在高级设置下:
- FieldA 应设置为 Hostname
- FieldB 应设置为 Request URI
- 将字段 A 和字段 B 的值都设为
(.*)
,这是一个可捕获所有字符的表达式。 - 将输出至 --> 构造函数选项设置为请求 URI,并提供
$A1$B1
作为该选择的值。
您的报告现在将显示:
-www.example.com/index.php
-sub.example.com/more.php
这会捕获您网址中的www.example.com
部分,并将其包含在内容报告部分中网页网址的开头。
Cookie:传送访问者数据必不可少
为了使两个网域共享会话和访问者类型等相同的访问者数据,它们必须能够复制或共享相同的 Cookie 信息。另外,您还应该注意:
只有正确配置的点击或表单提交,或者 _getLinkerURL
,来自一个网域的会话才能转移到另一个网域。
通过这三种方法传递的 Cookie 数据会链接起单个会话下的两次网页浏览。如果用户单独访问了在同一数据视图(配置文件)中跟踪的两个网站(如通过书签),系统仍会将这些访问单独计为会话。这种情况将不调用链接方法,因此无法确定给定用户的发起会话。
Cookie 是由若干字段加以识别,且默认情况下不会在域之间进行共享,了解了这一点对真正理解跨域跟踪会有帮助。此外,Google Analytics(分析)会自动停用 Cookie 共享功能。这是因为在许多情况下,不希望在网域之间共享相同的 Cookie。请参阅 Cookie 参考中的 Cookie 标识和有效期的重要性。此外,Google Analytics(分析)默认会对 Cookie 进行额外的完整性检查。
_setDomainName 'yourDomainName')
作用。
此方法会将 Cookie 的域名字段设置为参数中提供的字符串。使用此方法,您可以控制 Cookie 使用的域名。您只需要在顶级网域之间设置关联,因为子网域将与父网域共享相同的 Cookie。
适用情形。
如果您希望将顶级网域和子网域视为一个实体并在同一数据视图(配置文件)中进行跟踪,请使用此方法。如果您希望跨多个顶级网域及其子网域进行跟踪,也可以使用此方法。在这种情况下,您需要在顶级网域之间使用关联,但不需要在顶级网域与其子网域之间使用。
何时不应使用?
如果您跟踪的是单个网域,则无需明确设置域名。