本文档适用于希望在第一方模式下部署 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
您需要设置一个新的后端,以查询网站访问者的大致地理位置,并在现有的外部应用负载平衡器中创建路由规则。
创建新后端
在您的负载平衡器中,打开后端配置部分。创建新的后端服务。
使用地理定位信息配置新的后端服务:
- 指定一个名称,例如
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 CDN 和 Cloud Armor,因此您可以放心地同时停用这两者。
- 保存新的后端服务。
- 指定一个名称,例如
配置路由规则
在您的负载平衡器中,打开路由规则部分。
添加以下主机和路径规则:
主机 路径 后端 *
/metrics/*
measurement-be-svc
更新负载平衡器配置。
在浏览器中,前往
https://example.com/metrics/healthy
,验证设置。该页面应包含文本ok
。导航到https://example.com/metrics/?validate_geo=healthy
,验证是否包含地理位置信息。该页面应包含文本ok
。
Cloudflare
如需在第一方模式下传送代码,您需要为新的子网域创建 CNAME 条目,创建源规则以转发请求,并创建转换规则以包含地理位置信息。
创建 CNAME 条目
选择要为 CNAME 条目预留的子域名。请填写以下内容,以填充本文档中的示例。此 CNAME 永远不会在您的 Cloudflare 配置之外公开,因此可以使用任意名称。
CNAME subdomain: fps
- 在“DNS”标签页中,打开 Records(记录)部分。
- 添加一条具有以下配置的新记录:
- 将类型设置为 CNAME。
- 将名称设置为
fps
。 - 将目标设置为
GTM-123456.fps.goog
。
- 保存 CNAME 记录。
创建源规则
- 在“规则”标签页中,打开来源规则并创建规则。
- 输入规则名称,例如
Route measurement
。 - 根据自定义过滤条件表达式匹配传入请求,然后点击修改表达式。
- 将以下表达式粘贴到构建器中:
(http.host eq "example.com" and starts_with(http.request.uri.path, "/metrics"))
- 将 Host Header(主机标头)更新为 Rewrite to...(重写到...)
GTM-123456.fps.goog
. - 将 DNS Record(DNS 记录)更新为 Override to...。
fps.example.com
. - 保存源规则。
- 如果存在其他来源规则,请增加新创建的规则的位置,使其在任何其他通配符路径之后运行。
- 在浏览器中,前往
https://example.com/metrics/healthy
,验证设置。该页面应显示ok
。
包含地理定位信息
- 在“规则”标签页中,打开转换规则。
- 创建 Edit Request Header 规则。
- 将规则应用于所有传入请求。
- 使用以下配置修改请求标头:
- 将运算符设置为设置动态值。
- 将标头名称设置为
X-CfIpCountryRegion
。 - 将值设置为
ip.src.subdivision_1_iso_code
。
- 部署转换规则。
- 请等待几分钟,让规则生效。在浏览器中,前往
https://example.com/metrics/?validate_geo=healthy
,验证设置。该页面应显示ok
。
(可选)移除访问者 IP 标头
第一方模式无需访问者 IP 即可正常运行。您可以使用移除访问者 IP 标头代管式转换来移除所有访问者 IP 标头。
其他
如需在第一方模式下投放代码,您需要配置 CDN 或负载平衡器,以将请求路由到第一方模式端点。
- 添加指向
GTM-123456.fps.goog
的来源或后端。 - 将主机标头替换为
GTM-123456.fps.goog
。允许转发所有 Cookie 和查询字符串。 - 为
/metrics/*
添加路径规则,以将流量路由到第一方模式。 - 将预留路径配置为具有高于默认规则的优先级。
- 在浏览器中,前往
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 步:测试衡量设置
要测试衡量设置,请将您的容器配置为至少包含一个可触发的代码。
前往 Tag Assistant 并预览您的容器。浏览您的网站以触发代码。
在摘要 > 输出 > 发送的命中标签页中,验证命中是否已路由到
/metrics
。
第 5 步:反馈
请通过反馈表单提供有关第一方模式的反馈。