借助第一方投放路径功能,您可以通过内容分发网络 (CDN) 或网络基础设施将请求路由到 Google 广告服务器,从而恢复未遮盖的用户 IP 地址。
在第三方请求中,浏览器和操作系统功能以及网络配置可能会遮盖 IP 地址。这种遮盖可能会影响您的广告收入、地理位置定位和无效流量 (IVT) 检测。
您的 CDN 会在向您的网域发出的所有传入请求中收到用户的未遮盖客户端 IP。此功能具有以下优势:
- 无需更改客户端代码:您无需修改 JavaScript 或手动传递参数。Google 发布商代码 (GPT) 会从您的 Google Ad Manager 设置中读取配置的路径,并异步运行恢复请求。
- 开销更低:请求轻量,在本地按网页浏览会话缓存,并与广告位定义一起异步运行。
- 加密载荷:默认情况下,此功能会将用户的 IP 地址作为加密载荷返回。
本页面介绍了如何将第一方投放路径配置到您的首选 CDN。
前提条件
在配置 CDN 之前,请执行以下操作:
- 在 Ad Manager 账号中指定投放路径,例如
/adserver/。如需指定路径,请按照方法 1:第一方投放路径中的步骤操作。- 请确保您的服务路径是唯一的,并且您发送的流量不使用此路径。
- 拥有或设置以下各项:
- 目标主机或来源:
securepubads.g.doubleclick.net - 目标路径:
/pagead/fpm - 协议:HTTPS,默认端口为
443。 - 标头:将标头设置为
Host: securepubads.g.doubleclick.net。 - 缓存:将 CDN 配置为绕过路由的缓存,例如,将缓存政策设置为绕过缓存或
Cache-Control: no-store标头。
- 目标主机或来源:
- 如果您的 CDN 是 Cloudflare,则您必须拥有 Cloudflare 企业层级才能创建源规则。
配置 CDN
配置 CDN 或反向代理,以将与您配置的路径匹配的请求转发到 Google 广告服务器。选择您的首选 CDN:
Cloudflare
在信息中心内创建规则,并使用以下值:
- 自定义过滤表达式:添加以下内容:
- 字段:
URI Path - 运算符:
starts with - 值:您的路径,例如
/adserver/。
- 字段:
- 主机标头替换:选择重写为,然后添加目标主机
securepubads.g.doubleclick.net。 - DNS 替换:选择替换为,然后添加目标主机
securepubads.g.doubleclick.net。
- 自定义过滤表达式:添加以下内容:
在信息中心内创建网址规则重写,并使用以下值:
- 自定义过滤表达式:添加以下内容:
- 字段:
URI Path - 运算符:
starts with - 值:您的路径,例如
/adserver/。
- 字段:
- 路径:选择重写为 > 静态 >,然后添加
/pagead/fpm目标路径。 - 查询:选择保留。
- 自定义过滤表达式:添加以下内容:
Amazon CloudFront
按照源设置中的步骤操作,并使用以下值:
- 源网域:
securepubads.g.doubleclick.net - 协议:HTTPS
- 源网域:
按照创建函数中的说明操作,并添加以下示例:
function handler(event) { var request = event.request; request.uri = '/pagead/fpm'; return request; }此示例会获取传入的请求事件,将 URI 分配给目标路径,然后返回请求。
点击保存更改,前往发布标签页,然后点击发布函数。
按照在控制台中更新分发中的步骤操作,并使用以下值:
- 路径模式:您的路径,例如
/adserver/*。 - 源站和源站组:目标主机
securepubads.g.doubleclick.net。 - 缓存政策:选择
CachingDisabled。 - 源请求政策:选择
AllViewerExceptHostHeader。 - 函数关联:
- Viewer request(查看者请求):选择 CloudFront Function(CloudFront 函数),然后添加函数的名称。
- 路径模式:您的路径,例如
Fastly
按照添加主机中的说明操作,并使用以下值:
- Address:目标主机
securepubads.g.doubleclick.net - 端口:默认端口
443。 - 是否启用 TLS?:是
- 证书主机名:
securepubads.g.doubleclick.net- 选择将 SNI 主机名与证书名称匹配。
- SNI 主机名:
securepubads.g.doubleclick.net - 替换主机:
securepubads.g.doubleclick.net
- 证书主机名:
- Address:目标主机
按照创建 VCL 代码段中的说明操作,并参考以下示例:
if (req.url ~ "^PATH") { set req.backend = F_NAME; set req.http.Host = "securepubads.g.doubleclick.net"; set req.url = regsub(req.url, "^PATH", "/pagead/fpm"); return(pass); }替换以下内容:
NAME:主机的名称,例如Google_GAM_FPM_Backend。PATH:您的路径,例如/adserver/。
Google Cloud
按照创建 NEG 和互联网端点中的说明操作,并使用以下值:
- 网络端点组类型:选择互联网 NEG(全球级)
- 默认端口:
443 - 新网络端点:选择完全限定域名 (FQDN) 和端口。
- FQDN:添加目标主机
securepubads.g.doubleclick.net。
创建全球后端服务,并使用以下值配置自定义请求标头:
- 后端类型:选择互联网网络端点组。
- 协议:选择 HTTPS。
- 标头名称:
Host - 标头值:添加目标主机
securepubads.g.doubleclick.net。
- 标头名称:
按照配置网址映射中的步骤操作。
在路由规则中,找到与您的子网域匹配的生产环境主机规则。
使用
routeRules配置更新路径匹配器:name: NAME defaultService: projects/PROJECT_ID/global/backendServices/DEFAULT_BACKEND routeRules: - priority: 1 matchRules: - prefixMatch: PATH service: projects/PROJECT_ID/global/backendServices/BACKEND_NAME routeAction: urlRewrite: pathPrefixRewrite: /pagead/fpm替换以下内容:
BACKEND_NAME:您在第 2 步中创建的后端服务的名称,例如gam-fpm-backend-service。DEFAULT_BACKEND:托管您网站的默认后端服务。- 如果您在 Cloud Storage 上托管网站,请将
defaultService字段的资源路径中的backendServices替换为backendBuckets参数。
- 如果您在 Cloud Storage 上托管网站,请将
NAME:路径匹配器的名称,例如gam-fpm-matcher。PATH:您的路径,例如/adserver/。PROJECT_ID:您的项目 ID。
测试实现效果
如需验证 CDN 是否代理请求并传递 IP 地址,请使用 curl 命令运行测试:
curl -i https://example.comPATH
将 PATH 替换为您的路径,例如 /adserver/。
如果成功,您将收到以下输出:
- HTTP 状态:
200 OK - 响应内容:来自 Google 后端服务器的载荷,默认包含加密的 IP 令牌。
排查实现问题
本部分介绍了在 CDN 中排查第一方投放路径实现问题的工作流程。
下表详细说明了问题、原因和问题排查解决方案:
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 您从 CDN 收到 HTTP 状态 404 或 502 | 路径重写未启用,或缺少 Host 标头。 |
验证重写是否映射到 /pagead/fpm 目标路径,以及 Host 标头是否被替换为目标主机 securepubads.g.doubleclick.net。 |
| 广告请求中的 IP 地址不会更新。 | 已在 CDN 代理上启用缓存 | 请确保将路由上的缓存政策设置为 CachingDisabled 政策或 Cache-Control: no-store 标头。每个客户端都必须访问后端服务,以评估其特定 IP 地址。 |
| SSL 或 TLS 握手失败 | 后端源连接上的 SNI 不匹配 | 请确保您已将 CDN 配置为在 TLS SNI 扩展程序中发送目标主机 securepubads.g.doubleclick.net。 |
广告请求中缺少 ips 参数。 |
Ad Manager 路径与 CDN 路径不一致 | 验证在 Ad Manager 界面全局设置页面中输入的路径是否与 CDN 上配置的路径一致。如需了解详情,请参阅传递未遮盖的发布商提供的 IP(Beta 版)。 |