跨网域跟踪用户

跨网域跟踪是 Google Analytics(分析)的一项功能,可以将两个相关网站(例如电子商务网站和单独的购物车网站)上的会话视为一个会话,而不是作为两个单独会话。这有时称为“站点关联”,它可以让您更有效地跟踪整个客户转化历程。

Google Analytics(分析)会生成唯一的客户端 ID,以确定用户是新用户还是回访用户。如果已经向同一媒体资源发送了包含相符的客户端 ID 的匹配数据,则该用户将被视为回访用户。

通过在来源网域和目标网域之间共享客户端 ID,实现跨网域跟踪。客户端 ID 保存在浏览器的 Cookie 中,也就是说,只能通过同一网域中的网页访问客户端 ID。如果您拥有多个网域并希望将它们视为同一个媒体资源,则需要设法在您希望跟踪的所有网域间共享客户端 ID。

在网域之间共享客户端 ID 的过程分为两个步骤:

  1. 来源网域需要确保指向目标网域的所有网址均包含来源网域的客户端 ID。
  2. 目标网域需要知道在用户导航到该网址后检查该网址中是否包含客户端 ID。

使用 gtag.js 的跨网域跟踪通过为指向目标网域的网址添加链接器参数来完成此流程。链接器参数包含客户端 ID 以及当前时间戳和通过编码加入其中的浏览器元数据。(时间戳和元数据可用于避免网址共享带来的问题。)

以下是链接器参数的示例:

_ga=1.199239214.1624002396.1440697407

在目标网域上,为 linker 参数的 domains 属性配置值后,gtag.js 将检查网址中的链接器参数。如果找到了链接器参数且该参数是有效的,则 gtag.js 将提取该参数中的客户端 ID 并保存。

通过 gtag.js 启用跨网域跟踪后,即可通过自动和手动方式向网页上的链接和表单中的网址添加链接器参数。

要在来源网域上为指向目标网域的网址设置自动跨网域跟踪,请在媒体资源配置中配置 linker 参数的 domains 属性。

在配置和运行后,gtag.js 将监听对指向目标网域的链接的选择,并在导航即将开始之前,为这些链接自动添加链接器参数。(等待用户点击链接后再添加链接器参数非常有必要,因为链接器参数的有效期只有两分钟。)

如果您的网站上有表单指向目标网域,请将 linker 参数的可选 decorate_forms 属性设置为 true

例如,此代码会将链接器参数附加到页面上指向目标网域“example.com”的任何链接:

gtag('config', 'GA_TRACKING_ID', {
  'linker': {
    'domains': ['example.com']
  }
});

配置网站以接受链接器参数

当用户到达网址中包含链接器参数的目标网域上的网页时,gtag.js 需要知道查找该参数。

如果目标网域已配置为自动链接网域,则默认情况下它将接受链接器参数。

如果目标网域未配置为自动链接网域,则可以通过在目标媒体资源的配置中将 linker 参数的 accept_incoming 属性设置为 true 来指示目标网页查找链接器参数:

gtag('config', 'GA_TRACKING_ID', {
  'linker': {
    'accept_incoming': true
  }
});

双向跨网域跟踪

如果只跟踪从一个网域到另一个网域的用户流,就是“单向跨网域跟踪”。例如:用户开始于 example-source.com,结束于 example-destination.com。上文中的说明即假设遇到的是这类用户流。

如果不知道您的用户会先访问哪个网域,则必须实现“双向跨网域跟踪”,将每个网域都配置为来源网域和目标网域。要实现双向跨网域跟踪,需要对这两个网域都启用自动链接,并将它们配置为接受链接器参数并自动链接网域。

在 source.com 上更新媒体资源的配置:

gtag('config', 'GA_TRACKING_ID', {
  'linker': {
    'domains': ['example-destination.com']
  }
});

在 destination.com 上更新媒体资源的配置:

gtag('config', 'GA_TRACKING_ID', {
  'linker': {
    'domains': ['example-source.com']
  }
});

在所有网域上使用同一个代码段

为了进一步简化双向跨网域跟踪,您可以针对每个网域在媒体资源配置的 linker 参数的 domains 属性内列出要跟踪的所有可能的网域,即可在每个网域上使用相同的代码段:

在 example-1.com 上更新媒体资源的配置:

gtag('config', 'GA_TRACKING_ID_1', {
  'linker': {
    'domains': ['example-1.com', 'example-2.com']
  }
});

在 example-2.com 上更新媒体资源的配置:

gtag('config', 'GA_TRACKING_ID_2', {
  'linker': {
    'domains': ['example-1.com', 'example-2.com']
  }
});