Prebid.js 同意管理:出版商竞价头部设置指南

竞价头部通过让需求合作伙伴并行竞价来提升出版商的 CPM——但每一个合作伙伴在投放 Cookie、进行指纹识别或触发像素之前,都需要一个有效的同意信号。Prebid.js 是数以万计网站使用的事实标准开源竞价头部封装库,内置了一个同意管理模块,将您的 CMP 与每次竞价拍卖对接。配置不当会导致在未获同意的情况下泄露数据(合规风险),或令竞价方缺少所需信号(收入风险)。本指南将带领出版商完成生产级别的配置。

为什么 Prebid.js 需要同意管理模块

当 Prebid.js 拍卖运行时,封装库会向所有已配置的竞价适配器发出并行请求。每个适配器必须在其竞价请求中包含用户的同意字符串——tcfeu(适用于 EU/UK 的 TCF v2.2)、usp(CCPA/CPRA)以及日益重要的 gpp(覆盖多个美国州的 IAB 全球隐私平台字符串)。没有这些信号,下游的 SSP 和 DSP 将被迫将用户视为已选择退出、完全放弃竞价,或——最坏的情况——非法处理数据。

Prebid 同意管理模块位于您的 CMP 与竞价请求管道之间。它调用标准 CMP API(__tcfapi__uspapi__gppapi),等待同意字符串,然后自动将其注入每个适配器的竞价请求载荷中。当您启用 GDPR 执行时,它还会根据目的进行门控,阻止尚未授予相关 TCF 目的的用户访问存储和参与竞价执行。

安装和配置核心模块

Prebid.js 由出版商在 docs.prebid.org/download.html 上按需定制构建。生成自定义构建时,「同意管理」下的三个模块至关重要:

如果您面向全球流量,请同时包含这三个模块。构建文件部署到您的 CDN 后,在 Prebid 设置脚本中配置各模块:

TCF v2.2 配置

TCF 配置块告诉 Prebid 调用哪个 CMP API、等待字符串的时长,以及超时时的处理方式。典型的生产配置会设置 cmpApi: 'iab'timeout: 8000(8 秒——足以应对慢速 CMP 横幅加载),以及 defaultGdprScope: true,使未知司法管辖区的用户在被证明不在范围内之前均被视为在范围内。单独设置 actionTimeout 可控制用户尚未与横幅交互时 Prebid 的等待时长——设置适当的值可避免访客忽略横幅时出现空白广告位。

美国隐私与 GPP

USP 配置简单:启用模块后,Prebid 从 __uspapi 读取四字符字符串。GPP 更为复杂,因为 GPP 字符串可携带多个部分 ID(TCF EU、US National、US California、US Colorado、US Virginia 等)。Prebid 会自动转发完整字符串,但竞价方会检查特定部分。请确保您的 CMP 针对每个用户的司法管辖区发出正确的 GPP 部分——配置错误的 CMP 若仅向加利福尼亚州用户发出 US National 部分,将导致符合 CPRA 的 DSP 丢弃该竞价。

启用 GDPR 执行(基于目的的门控)

默认情况下,同意模块会传递 TCF 字符串,但不会阻止任何操作。要让 Prebid 真正执行 TCF 目的,需启用 gdprEnforcement 规则集。这是大多数配置错误发生的地方,也是合规与不合规竞价头部堆栈的分水岭。

标准规则集在相关目的缺乏同意时会阻止四类活动:

对于每条规则,您需设置 enforcePurpose: trueenforceVendor: true,以及一份 vendorExceptions 列表。供应商例外列表至关重要:列于其中的任何竞价方均可在没有明确 TCF 供应商同意的情况下参与,前提是您拥有独立的法律依据(例如正当利益与合同流程的结合)。请谨慎使用——过度宽泛的例外正是监管机构开始向出版商开罚款的模式。

损害出版商收入或合规性的常见陷阱

超时设置过低

如果 timeout 短于您的 CMP 横幅渲染时间,Prebid 将在没有同意字符串的情况下继续运行。竞价方会将此视为无同意并放弃竞价。请先测量您的 CMP 的 tcfapi('addEventListener') 首次调用延迟在第 95 百分位的值,并将 Prebid 超时设置在其之上。8000 毫秒是安全的默认值;若您面向横幅本地化需要较长时间的市场,3000 毫秒则存在风险。

美国流量缺少 GPP 集成

主要 SSP 和 DSP(Google AdX、TTD、Magnite、PubMatic)现在要求提供 GPP 字符串以执行美国退出规则。如果您仅发出旧版 USP 字符串,这些 DSP 将越来越多地降级或跳过您的广告资源。审查您的竞价响应:2026 年美国流量的 CPM 急剧下降通常是 GPP 信号缺失的信号。

SPA 导航时同意字符串过期

在路由变化时重新触发 Prebid 拍卖的单页应用必须调用 pbjs.refreshUserIds(),并确保获取最新的 TCF 字符串。如果您的网站使用共享会话,缓存的 30 分钟前的字符串可能携带上一个用户的偏好设置。

分析适配器缺少 vendorExceptions

出版商常常忘记,Prebid 分析适配器(Google Analytics、服务端报告)同样受 TCF 目的 7 下 measurement 门控的约束。如果您依赖这些工具进行收入报告,请在 measurement 规则的供应商例外中明确列出,或接受无同意流量的数据缺口。

上线前测试您的配置

Prebid.js 在浏览器控制台中提供 pbjs.getConfig('consentManagement')。验证当前配置是否符合您的预期。然后使用 Chrome Prebid.js Professor 扩展程序或 pbjs.getEvents() 检查附加在每个竞价请求上的同意字符串。重点检查三种场景:完全同意的用户、点击「全部拒绝」的用户,以及关闭横幅但未进行交互的用户。每种场景应在竞价请求载荷中产生不同的可观察行为。

使用 VPN 或您的 CMP 地理位置覆盖标志,在不同地区运行相同检查。EU 流量应产生 TCF 字符串并触发 gdprEnforcement;加利福尼亚州流量应产生 USP 和 GPP 字符串;司法管辖区未知的流量应遵循您的 defaultGdprScope 设置。

综合总结

正确配置的 Prebid 同意管理堆栈同时实现三件事:为您的竞价方持续提供有效同意信号(维持 CPM),在封装库层面执行 TCF 和美国退出规则(降低合规风险),并在监管机构询问您的竞价头部设置如何尊重用户选择时提供单一审计点。请认真设置超时时间,为美国流量同时启用 GPP 和 USP,并每季度审查您的 vendorExceptions 列表——配置错误的代价既包括罚款,也包括程序化收入的损失。

← 博客 阅读全部 →