为广告客户设置 Google 代码网关

本文档面向希望为广告客户部署 Google 代码网关的用户。我们建议广告客户使用 Google 代码网关,以实现最持久的跟踪代码配置。

概览

借助面向广告客户的 Google 代码网关,您可以使用自己的第一方基础架构(托管在您网站的网域中)部署 Google 代码。此基础架构位于您的网站与 Google 服务之间。本文档中的设置将有助于您更好地衡量网站效果。您可以使用现有的内容分发网络 (CDN)、负载平衡器或 Web 服务器进行设置。

在标准 Google 代码设置中,网页会向 Google 网域请求 Google 代码。代码触发时,会直接向 Google 产品发送衡量请求。使用面向广告客户的 Google 代码网关后,您的网站会从第一方网域加载 Google 代码。当代码触发时,系统会使用您的第一方网域向 Google 发送一些衡量请求。

此图显示了面向广告客户的 Google 代码网关中的信息流:

面向广告客户的 Google 代码网关的架构信息流。

准备工作

本指南假定您的网站已配置以下内容:

首先,请选择您的设置类型。

1. 选择代码投放路径

您必须在网站网域上预留一个路径,用于提供代码。确保此路径尚未在您的网域中使用。

如需设置面向广告客户的 Google 代码网关,请选择一个尚未在您的网站上使用的路径。为降低与网站上已有路径冲突的可能性,您可以选择任意字母和数字组合,也可以选择使用 /metrics/securemetric/analytics 等字词或您想要的任何其他字词,以便路径更易于理解。

路径不得为根路径 / 或超过 100 个字符。

填写以下内容,以便在本文档中填充示例。

Your domain: example.com
Google tag ID: G-12345
Tag serving path: /metrics

2. 路由流量

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

Google Cloud

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

创建新的后端

  1. 打开 GCP 负载平衡器

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

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

    • 指定一个名称,例如 measurement-be-svc
    • 后端类型设置为互联网网络端点组
    • 协议设置为 HTTPS,并将超时保留为预填充的值。
    • 后端下,点击互联网网络端点组下拉菜单,然后创建新的互联网网络端点组:
      • 网络端点组类型设置为互联网 NEG(全球、区域)
      • 范围设置为全球
      • 添加方式设置为完全限定域名和端口
      • 完全限定域名设置为 G-12345.fps.goog
      • 点击创建以创建端点。
      • 关闭网络端点组标签页,返回到新建后端服务标签页。
    • 搜索新网络端点组的名称,然后选择该名称。
    • 打开高级配置部分。添加以下自定义请求标头。
      标头名称 标头值
      Host G-12345.fps.goog
      X-Forwarded-Country {client_region}
      X-Forwarded-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

如需在 Google 代码网关中投放广告客户的代码,您需要为新子网域创建 CNAME 条目,创建用于转发请求的来源规则,并创建用于添加地理定位信息的转换规则。如需完成此设置,您需要拥有 Cloudflare 企业版方案。如果您没有企业版方案,请考虑改用 Cloudflare 自动设置

创建 CNAME 条目

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

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

创建来源规则

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

包含地理定位信息

  1. 在“规则”标签页中,打开设置
  2. 启用添加访问者所在位置标头选项。
  3. 等待几分钟,让规则传播。在浏览器中,前往 https://example.com/metrics/?validate_geo=healthy,验证设置是否正确。该页面应显示 ok

Akamai

如需在面向广告客户的 Google 代码网关中投放代码,您需要在媒体资源中添加新规则,以转发请求并添加地理定位信息。

创建重定向规则

  1. 在 Property Manager 中创建新的交付配置版本
  2. 媒体资源配置设置部分下,添加新的 Rule
    • 输入一个名称,例如 Route measurement
  3. 添加新的匹配项
    • 将“匹配”下拉菜单设置为路径属于
    • 将匹配值设置为 /metrics/*
  4. 添加新的行为
    • 选择 Standard Property Behavior,然后选择 Origin Server 行为
    • 源服务器主机名设置为 G-12345.fps.goog
    • 转发主机标头设置为原始主机名
  5. 保存新规则并部署更改
    • 请务必先在预演环境中测试新的重定向规则,然后再将其发布到生产环境
    • 提示:请确保您没有任何会修改或移除出站响应标头的规则。如果缺少 Content-Type 响应标头,这可能会导致 Google 脚本失败。

包含地理定位信息

  1. 前往属性变量部分,然后添加以下变量。

    变量名称 安全设置
    USER_REGION Hidden
    USER_COUNTRY Hidden

  2. 媒体资源配置设置下,选择您的重定向规则(如上文所述创建)

  3. 添加两个新的设置变量行为

    • 选择标准媒体资源行为,然后选择设置变量行为。为每个变量创建一个行为。
    • 为每种行为设置以下值
      变量 从以下方面创造价值 获取数据来源 Edgescape 字段 操作
      PMUSER_USER_REGION Extract Edgescape Data Region Code None
      PMUSER_USER_COUNTRY Extract Edgescape Data Country Code None
  4. 添加了两个新的修改出站请求标头行为

    • 选择标准媒体资源行为,然后选择修改传出请求标头行为。为每个 Edgescape 地理位置变量创建一个行为。
    • 为每种行为设置以下值
      操作 选择标头名称 自定义标头名称 标头值
      Add Other... X-Forwarded-Region {{user.PMUSER_USER_REGION}}
      Add Other... X-Forwarded-Country {{user.PMUSER_USER_COUNTRY}}
  5. 保存新规则并部署更改。

    • 请务必先在预演环境中测试新的重定向规则,然后再将其发布到生产环境
  6. 在浏览器中,前往 https://example.com/metrics/healthy,验证设置。相应网页应包含文本 ok。前往 https://example.com/metrics/?validate_geo=healthy,验证是否包含地理位置信息。网页应包含文本 ok

其他

如需在面向广告客户的 Google 代码网关中投放代码,您需要配置 CDN 或负载平衡器,以将请求路由到面向广告客户的 Google 代码网关端点。

  1. 添加指向 G-12345.fps.goog 的源或后端。
  2. 主机标头替换为 G-12345.fps.goog。允许转发所有 Cookie 和查询字符串。
  3. 通过添加以下任一标头来传递访问者的地理定位信息:
    • X-Forwarded-CountryRegion - 用户的国家/地区,采用单个 ISO 3166-2 代码(例如:US-CA)。
    • X-Forwarded-CountryX-Forwarded-Region
      • X-Forwarded-Country - 用户的国家/地区,以 ISO 3166-1 alpha-2 代码表示(例如:US)。
      • (可选)X-Forwarded-Region - 用户的区域细分代码(例如:CA)。
    • 如果同时包含这两组标头,则使用 X-Forwarded-CountryRegion
  4. 添加 /metrics/* 的路径规则,以便将流量路由到面向广告客户的 Google 代码网关。
  5. 配置预留路径,使其优先级高于默认路径
  6. 添加 /metrics/* 的路径规则,以便将流量路由到面向广告客户的 Google 代码网关。
  7. 配置预留路径,使其优先级高于默认规则。
  8. 在浏览器中,前往 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=G-12345"></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 -->

测试效果衡量设置

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

  1. 前往 Tag Assistant 并预览您的容器。
  2. 浏览您的网站,以触发事件。
  3. 摘要 > 输出 > 已发送的命中标签页中,验证命中是否已路由到 /metrics

    验证设置的屏幕截图