AMP 网页中的客户端 ID

为了让 Google Analytics(分析)确定两个不同的匹配是否属于同一用户,必须通过客户端 ID 字段将与特定用户关联的唯一标识符和每个匹配一同发送。唯一标识符是任意生成的字符串。

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

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

客户端 ID 的不同情形

下面是用户访问 AMP 网页的各种可能方式以及对客户端 ID 的影响:

  1. Google 搜索:可以通过 Google 搜索结果访问 AMP 网页,并显示在“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 搜索、直接 AMP 和非 AMP 情形中,Google Analytics(分析)将开始使用一个客户端 ID。以下几个示例介绍如何为用户确定客户端 ID:

  • 当新用户访问 Google 搜索上的 AMP 网页时,他们开始时将使用 AMP 客户端 ID。当此用户随后访问非 AMP 网页时,系统将从客户端 ID 服务中检索相同的客户端 ID,并将其用于非 AMP 网页。
  • 当访问过 AMP 以及非 AMP 网页的回访用户访问 AMP 或非 AMP 网页时,系统之后将为该用户使用 AMP 客户端 ID。
  • 当从未访问 AMP 网页的回访用户访问非 AMP 网页时,系统将继续使用由 analytics.js 生成的客户端 ID。