本文档面向希望为广告客户部署 Google 代码网关的用户。我们建议广告客户使用 Google 代码网关,以实现最持久的跟踪代码配置。
概览
借助面向广告客户的 Google 代码网关,您可以使用自己的第一方基础架构(托管在您网站的网域中)部署 Google 代码。此基础架构位于您的网站与 Google 服务之间。本文档中的设置将有助于您更好地衡量网站效果。您可以使用现有的内容分发网络 (CDN)、负载平衡器或 Web 服务器进行设置。
在标准 Google 代码设置中,网页会向 Google 网域请求 Google 代码。代码触发时,会直接向 Google 产品发送衡量请求。使用面向广告客户的 Google 代码网关后,您的网站会从第一方网域加载 Google 代码。当代码触发时,系统会使用您的第一方网域向 Google 发送一些衡量请求。
此图显示了面向广告客户的 Google 代码网关中的信息流:
准备工作
本指南假定您的网站已配置以下内容:
- Google 代码或 Google 跟踪代码管理器容器。
- 可以将请求转发到外部端点的内容分发网络 (CDN) 或负载平衡器。
首先,请选择您的设置类型。
1. 选择代码投放路径
您必须在网站网域上预留一个路径,用于提供代码。确保此路径尚未在您的网域中使用。
如需设置面向广告客户的 Google 代码网关,请选择一个尚未在您的网站上使用的路径。为降低与网站上已有路径冲突的可能性,您可以选择任意字母和数字组合,也可以选择使用 /metrics
、/securemetric
、/analytics
等字词或您想要的任何其他字词,以便路径更易于理解。
路径不得为根路径 /
或超过 100 个字符。
填写以下内容,以便在本文档中填充示例。
Your domain: example.com
Google tag ID: G-12345
Tag serving path: /metrics
2. 路由流量
本部分假定您的网站已在使用支持按路径路由流量的 CDN 或负载平衡器。
Google Cloud
您需要设置一个新的后端,用于查找网站访问者的大致地理位置,并在现有的外部应用负载平衡器中创建路由规则。
创建新的后端
在负载平衡器中,打开后端配置部分。创建新的后端服务。
使用地理定位信息配置新的后端服务:
- 指定一个名称,例如
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 CDN 和 Cloud Armor,因此您可以放心地停用这两项服务。
- 保存新的后端服务。
- 指定一个名称,例如
配置路由规则
在负载平衡器中,打开路由规则部分。
添加以下主机和路径规则:
主机 路径 后端 *
/metrics/*
measurement-be-svc
更新负载平衡器配置。
在浏览器中,前往
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
- 在“DNS”标签页中,打开记录部分。
- 添加一条具有以下配置的新记录:
- 将类型设置为 CNAME。
- 将名称设置为
fps
。 - 将目标设置为
G-12345.fps.goog
。
- 保存 CNAME 记录。
创建来源规则
- 在“规则”标签页中,打开源规则并创建规则。
- 输入规则名称,例如
Route measurement
。 - 根据自定义过滤表达式匹配传入的请求,然后点击修改表达式。
- 在构建器中粘贴以下表达式:
(http.host eq "example.com" and starts_with(http.request.uri.path, "/metrics"))
- 将主机标头更新为重写为...
G-12345.fps.goog
。 - 将 DNS 记录更新为替换为...
fps.example.com
。 - 保存源规则。
- 如果还有其他源规则,请提高新创建的规则的位置,以便它在任何其他通配符路径之后运行。
- 在浏览器中,前往
https://example.com/metrics/healthy
验证设置。该页面应显示ok
。
包含地理定位信息
- 在“规则”标签页中,打开设置
- 启用添加访问者所在位置标头选项。
- 等待几分钟,让规则传播。在浏览器中,前往
https://example.com/metrics/?validate_geo=healthy
,验证设置是否正确。该页面应显示ok
。
Akamai
如需在面向广告客户的 Google 代码网关中投放代码,您需要在媒体资源中添加新规则,以转发请求并添加地理定位信息。
创建重定向规则
- 在 Property Manager 中创建新的交付配置版本
- 在媒体资源配置设置部分下,添加新的
Rule
- 输入一个名称,例如
Route measurement
- 输入一个名称,例如
- 添加新的匹配项
- 将“匹配”下拉菜单设置为路径和属于
- 将匹配值设置为
/metrics/*
- 添加新的行为
- 选择 Standard Property Behavior,然后选择 Origin Server 行为
- 将源服务器主机名设置为
G-12345.fps.goog
- 将转发主机标头设置为原始主机名
- 保存新规则并部署更改
- 请务必先在预演环境中测试新的重定向规则,然后再将其发布到生产环境
- 提示:请确保您没有任何会修改或移除出站响应标头的规则。如果缺少
Content-Type
响应标头,这可能会导致 Google 脚本失败。
包含地理定位信息
前往属性变量部分,然后添加以下变量。
变量名称 安全设置 USER_REGION
Hidden
USER_COUNTRY
Hidden
在媒体资源配置设置下,选择您的重定向规则(如上文所述创建)
添加两个新的设置变量行为
- 选择标准媒体资源行为,然后选择设置变量行为。为每个变量创建一个行为。
- 为每种行为设置以下值
变量 从以下方面创造价值 获取数据来源 Edgescape 字段 操作 PMUSER_USER_REGION
Extract
Edgescape Data
Region Code
None
PMUSER_USER_COUNTRY
Extract
Edgescape Data
Country Code
None
添加了两个新的修改出站请求标头行为
- 选择标准媒体资源行为,然后选择修改传出请求标头行为。为每个 Edgescape 地理位置变量创建一个行为。
- 为每种行为设置以下值
操作 选择标头名称 自定义标头名称 标头值 Add
Other...
X-Forwarded-Region
{{user.PMUSER_USER_REGION}}
Add
Other...
X-Forwarded-Country
{{user.PMUSER_USER_COUNTRY}}
保存新规则并部署更改。
- 请务必先在预演环境中测试新的重定向规则,然后再将其发布到生产环境
在浏览器中,前往
https://example.com/metrics/healthy
,验证设置。相应网页应包含文本ok
。前往https://example.com/metrics/?validate_geo=healthy
,验证是否包含地理位置信息。网页应包含文本ok
。
其他
如需在面向广告客户的 Google 代码网关中投放代码,您需要配置 CDN 或负载平衡器,以将请求路由到面向广告客户的 Google 代码网关端点。
- 添加指向
G-12345.fps.goog
的源或后端。 - 将主机标头替换为
G-12345.fps.goog
。允许转发所有 Cookie 和查询字符串。 - 通过添加以下任一标头来传递访问者的地理定位信息:
X-Forwarded-CountryRegion
- 用户的国家/地区,采用单个 ISO 3166-2 代码(例如:US-CA
)。X-Forwarded-Country
和X-Forwarded-Region
:X-Forwarded-Country
- 用户的国家/地区,以 ISO 3166-1 alpha-2 代码表示(例如:US
)。- (可选)
X-Forwarded-Region
- 用户的区域细分代码(例如:CA
)。
- 如果同时包含这两组标头,则使用
X-Forwarded-CountryRegion
。
- 添加
/metrics/*
的路径规则,以便将流量路由到面向广告客户的 Google 代码网关。 - 配置预留路径,使其优先级高于默认路径
- 添加
/metrics/*
的路径规则,以便将流量路由到面向广告客户的 Google 代码网关。 - 配置预留路径,使其优先级高于默认规则。
- 在浏览器中,前往
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 -->
测试效果衡量设置
如需测试衡量设置,请将容器配置为至少包含一个会触发的代码。
- 前往 Tag Assistant 并预览您的容器。
- 浏览您的网站,以触发事件。
在摘要 > 输出 > 已发送的命中标签页中,验证命中是否已路由到
/metrics
。