AMP 网页中的客户端 ID

为了让 Google Analytics(分析)能够判断两项不同的命中是否属于同一用户,必须通过客户端 ID 字段将与该用户关联的唯一标识符与每项命中一同发送。此唯一标识符是一个随机生成的字符串。

对于非 AMP 网页,Google Analytics(分析)在发布商网域中使用一个名为 _ga 的第一方 Cookie 存储该客户端 ID。

AMP 网页的情况略有不同。用户可能以多种方式通过浏览器查看网页,这就导致客户端 ID 的生成和管理不尽相同。 因此,网站/应用指标会受到影响。

客户端 ID 的各种使用情形

下面介绍了用户访问 AMP 网页时可能采用的各种方式及其对客户端 ID 的影响:

  1. Google 搜索:AMP 网页是通过 Google 搜索结果加以访问的,并显示在“AMP 查看工具”中。

    • 在这种情况下,用户执行 Google 搜索,所选的搜索结果是 AMP 网页。google.com 页面包含一个指向 cdn.ampproject.orgIFRAME,内容是从 cdn.ampproject.org 加载的。
    • 由于在这种情况下 google.com 是第一方,因此客户端 ID 存储在 google.com 中。然后,将客户端 ID 从 AMP 查看工具传递到通过 cdn.ampproject.org 提供的网页,以便通过 AMP 分析进行传输。
    • 仅在原始 AMP 网页的来源(即架构、主机和端口的组合)相同时,才会重复使用 Cookie。
  2. 代理/缓存:通过代理/缓存访问 AMP 网页。

    • 在这种情况下,用户会直接转到 cdn.ampproject.org
    • 客户端 ID 存储在 cdn.ampproject.org 中。当用户(在一段时间内)再次访问时,会重复使用该客户端 ID。在这种情况下,cdn.ampproject.org 是第一方。
    • 仅在原始 AMP 网页的来源(即架构、主机和端口的组合)相同时,才会重复使用 Cookie。
  3. 直接 AMP:直接在发布商网域中访问 AMP 网页。

    • 在这种情况下,用户直接进入发布商的网域查看 AMP 网页。
    • 客户端 ID 存储在 Cookie (_ga) 中,无论该 ID 是传统格式还是 AMP 格式,都会加以使用/重复使用。
    • 如果客户端 ID 由 AMP 网页生成,则客户端 ID 将采用 AMP 格式(即 amp- 加上随机生成的字符串)。
  4. 非 AMP:在发布商网域中访问非 AMP 网页。

    • 在这种情况下,用户直接在发布商网域中查看非 AMP 网页。
    • 客户端 ID 存储在 Cookie (_ga) 中,无论该 ID 是传统格式还是 AMP 格式,都会加以使用/重复使用。
    • 如果客户端 ID 由非 AMP 网页生成,则客户端 ID 将遵循传统的客户端 ID 格式。

客户端 ID 的注意事项

上述各种情形各有不同的注意事项。

多个客户端 ID

任何情况下,即使用户是在从同一个客户端/浏览器访问内容的,该用户使用的客户端 ID 仍然取决于该用户访问的网域。因此,对于在上述不同情形中访问发布商内容的同一用户,Google Analytics(分析)会将其计为三个不同的用户(分别对应搜索、代理/缓存和发布商来源这三种情形)。

各种情形间的相互作用

当用户在多种情形中访问同一发布商的内容时,系统是如何处理各种情形间的相互作用的呢?下面的列表就提供了相关的注意事项:

Google 搜索与直接Google 搜索与非 AMP代理/缓存与直接以及代理/缓存与非 AMP

  • 由于其中一种情况下是使用在另一种情况下无法访问的本地存储,所以 ID 是分开保留的。

直接与非 AMP

  • 对于同一用户,使用的是同一个 Cookie。客户端 ID 的格式取决于用户首次访问的是 AMP 网页还是非 AMP 网页。

跨 AMP 和非 AMP 网页使用一个客户端 ID

可以通过 AMP 客户端 ID 集成,允许用户跨 AMP 和非 AMP 网页使用同一个客户端 ID。做到这一点后,Google Analytics(分析)将开始在上述的 Google 搜索、直接 AMP 和非 AMP 情形中使用同一个客户端 ID。以下几个示例说明了如何为用户确定客户端 ID:

  • 当新用户在 Google 搜索上访问 AMP 网页时,他们首先使用的是 AMP 客户端 ID。当此用户随后访问非 AMP 网页时,系统将从发布商网域中的 Cookie 检索该客户端 ID,并将其用于非 AMP 网页。
  • 当访问过 AMP 以及非 AMP 网页的回访用户访问 AMP 或非 AMP 网页时,系统之后将为该用户使用 AMP 客户端 ID。
  • 当从未访问 AMP 网页的回访用户访问非 AMP 网页时,系统将继续使用 analytics.js 生成的客户端 ID。