设置第一方模式

本文档适用于希望在第一方模式下部署 Google 代码的用户。我们建议使用第一方模式,以获得最持久的代码配置。

概览

借助第一方模式,您可以使用托管在您网站网域(例如 example.com)上的自己的第一方基础架构部署 Google 代码。此基础架构位于您的网站和 Google 服务之间,使您的第一方基础架构成为唯一可与网站用户直接互动的技术。第一方模式增加了一个数据安全层,还支持额外的数据隐私控制(例如完整的 IP 混淆),而不会影响您的衡量结果。本文档中的设置将帮助您在网站上多检索 X% 的衡量信号。您可以使用现有的内容分发网络 (CDN)、负载平衡器或 Web 服务器进行设置,以启用第一方模式。

在标准 Google 代码设置中,您的网页从 Google 网域(例如 www.googletagmanager.com)请求 Google 代码。当代码触发时,它会直接向 Google 产品发送衡量请求。在第一方模式下,您的网站会从您的第一方网域(例如 example.com)加载 Google 代码。代码触发后,会将衡量请求发送到您的第一方网域,然后系统会将此类请求转发到相关的 Google 产品。

从标准 Google 代码设置切换到第一方模式配置后,您将体验到完整的衡量连续性。

下图显示了第一方模式下的信息流:

第一方模式架构

准备工作

本指南假定您已为网站进行了如下配置:

1. 选择代码投放路径

您必须在网站网域上预留路径以投放代码。请确保您的网域尚未使用此路径。

选择您要设置第一方模式的任意路径。您可能希望使用的路径示例包括:/metrics/securemetric/analytics,或者最好是您尚未在网站上使用的随机字母数字字符串。

请填写以下内容以填充本文档中的示例。

Your domain: example.com
Google tag ID: GTM-123456
Tag serving path: /metrics

2. 路由流量

本部分假定您的网站已在使用支持按路径路由流量的 CDN 或负载平衡器。

Google Cloud

您需要设置一个新的后端,以查询网站访问者的大致地理位置,并在现有的外部应用负载平衡器中创建路由规则。

创建新后端

  1. 打开 GCP 负载平衡器

  2. 在您的负载平衡器中,打开后端配置部分。创建新的后端服务。 后端配置设置的屏幕截图

  3. 使用地理定位信息配置新的后端服务:

    • 指定一个名称,例如 measurement-be-svc
    • 后端类型设置为互联网网络端点组
    • 协议设置为 HTTPS,并将超时保留为预填充值。
    • 后端下,点击互联网网络端点组下拉列表,然后创建一个新的互联网网络端点组:
      • 网络端点组类型设置为互联网 NEG(全球、区域级)
      • 范围设置为全局
      • 添加方式设置为完全限定域名和端口
      • 完全限定域名设置为 GTM-123456.fps.goog
      • 点击创建以创建端点。
      • 关闭网络端点组标签页,以返回到新建后端服务标签页。
    • 搜索新网络端点组的名称并选择它。
    • 打开高级配置部分。添加以下自定义请求标头。
      标头名称 标头值
      Host GTM-123456.fps.goog
      X-Gclb-Country {client_region}
      X-Gclb-Region {client_region_subdivision}
    • 查看其他设置。此集成不需要 Cloud CDNCloud Armor,因此您可以放心地同时停用这两者。
    • 保存新的后端服务。

配置路由规则

  1. 在您的负载平衡器中,打开路由规则部分。

  2. 添加以下主机和路径规则:

    主机 路径 后端
    * /metrics/* measurement-be-svc

  3. 更新负载平衡器配置。

  4. 在浏览器中,前往 https://example.com/metrics/healthy,验证设置。该页面应包含文本 ok。导航到 https://example.com/metrics/?validate_geo=healthy,验证是否包含地理位置信息。该页面应包含文本 ok

Cloudflare

如需在第一方模式下传送代码,您需要为新的子网域创建 CNAME 条目,创建源规则以转发请求,并创建转换规则以包含地理位置信息。

创建 CNAME 条目

选择要为 CNAME 条目预留的子域名。请填写以下内容,以填充本文档中的示例。此 CNAME 永远不会在您的 Cloudflare 配置之外公开,因此可以使用任意名称。

CNAME subdomain: fps
  1. 在“DNS”标签页中,打开 Records(记录)部分。
  2. 添加一条具有以下配置的新记录:
    • 类型设置为 CNAME
    • 名称设置为 fps
    • 目标设置为 GTM-123456.fps.goog
  3. 保存 CNAME 记录。

创建源规则

  1. 在“规则”标签页中,打开来源规则并创建规则。
  2. 输入规则名称,例如 Route measurement
  3. 根据自定义过滤条件表达式匹配传入请求,然后点击修改表达式
  4. 将以下表达式粘贴到构建器中:(http.host eq "example.com" and starts_with(http.request.uri.path, "/metrics"))
  5. Host Header(主机标头)更新为 Rewrite to...(重写到...)GTM-123456.fps.goog.
  6. DNS Record(DNS 记录)更新为 Override to...fps.example.com.
  7. 保存源规则。
  8. 如果存在其他来源规则,请增加新创建的规则的位置,使其在任何其他通配符路径之后运行。
  9. 在浏览器中,前往 https://example.com/metrics/healthy,验证设置。该页面应显示 ok

包含地理定位信息

  1. 在“规则”标签页中,打开转换规则
  2. 创建 Edit Request Header 规则。
  3. 将规则应用于所有传入请求
  4. 使用以下配置修改请求标头:
    • 将运算符设置为设置动态值
    • 标头名称设置为 X-CfIpCountryRegion
    • 设置为 ip.src.subdivision_1_iso_code
  5. 部署转换规则。
  6. 请等待几分钟,让规则生效。在浏览器中,前往 https://example.com/metrics/?validate_geo=healthy,验证设置。该页面应显示 ok

(可选)移除访问者 IP 标头

第一方模式无需访问者 IP 即可正常运行。您可以使用移除访问者 IP 标头代管式转换来移除所有访问者 IP 标头。

其他

如需在第一方模式下投放代码,您需要配置 CDN 或负载平衡器,以将请求路由到第一方模式端点。

  1. 添加指向 GTM-123456.fps.goog 的来源或后端。
  2. 主机标头替换为 GTM-123456.fps.goog。允许转发所有 Cookie 和查询字符串。
  3. /metrics/* 添加路径规则,以将流量路由到第一方模式。
  4. 将预留路径配置为具有高于默认规则的优先级。
  5. 在浏览器中,前往 https://example.com/metrics/healthy,验证设置。该页面应显示 ok

第 3 步:更新网站上的脚本以使用衡量路径

将网站每个网页上的脚本替换为以下某个脚本:

gtag.js

<head> 部分的顶部,找到包含您的 Google 代码 ID 的两行脚本:

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GTM-123456"></script>

并将其替换为衡量路径:

<!-- Google tag (gtag.js) -->
<script async src="/metrics/"></script>

gtm.js

<head> 部分的顶部,将跟踪代码管理器代码段替换为以下代码:

<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'/metrics/?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','');</script>
<!-- End Google Tag Manager -->

第 4 步:测试衡量设置

要测试衡量设置,请将您的容器配置为至少包含一个可触发的代码。

  1. 前往 Tag Assistant 并预览您的容器。浏览您的网站以触发代码。

  2. 摘要 > 输出 > 发送的命中标签页中,验证命中是否已路由到 /metrics

    验证设置的屏幕截图

第 5 步:反馈

请通过反馈表单提供有关第一方模式的反馈。