ORTB
中 / EN
分册导航

CMP JS API

定位与分类

解决网页里的 Vendor 怎么向同意管理平台(Consent Management Platform,CMP)获取隐私状态问题。在浏览器侧的三个入口:__gpp()(全球隐私平台(Global Privacy Platform,GPP)的 CMP API v1.1,2023-06)/ __tcfapi()(透明度与同意框架(Transparency & Consent Framework,TCF)2.2 之前的入口,现仍并存)/ __uspapi()(USPrivacy legacy)。队列-回调模型、泛型命令集与 PingReturn / TCData 返回体结构(getGPPData 命令与 GPPData 对象在 v1.1 已废弃)。

承载点
__gpp() · __tcfapi() · __uspapi()
状态
GPP CMP API v1.1 (2023-06)

字符串与字段布局

泛型命令(与 section 无关,CMP 必须全部支持)

  • __gpp('ping')
  • __gpp('addEventListener')
  • __gpp('removeEventListener')
  • __gpp('hasSection')
  • __gpp('getSection')
  • __gpp('getField')

泛型命令与具体 section 无关,CMP 必须全部支持,且在 stub 阶段即同步可用(不入队)。getGPPData 命令与 GPPData 对象在 v1.1 已废弃,其信息并入 ping 返回的 PingReturn。

PingReturn

字段说明
gppVersionGPP API 版本,当前 "1.1"
cmpStatusstub / loading / loaded / error
cmpDisplayStatushidden / visible / disabled
signalStatusnot ready / ready
supportedAPIs支持的 section 列表,形如 ["2:tcfeuv2", "6:uspv1"]
cmpId互动广告局(Interactive Advertising Bureau,IAB)分配的 CMP ID,stub/loading 期可为 0;对无注册要求的 section(如美国全国信号)字符串创建者用 1
applicableSections本次交易生效的 section ID:通常单个,少数 2 个;过渡期(至 2023-09-30)legacy USPrivacy §6 与另一美国 section 并存时可达 3 个;无适用时为 [-1]
gppString完整编码的 GPP 字符串,CMP 加载期可为空
parsedSectionsgppString 中本页 supportedAPIs 支持的各 section 的已解析对象(与 getSection 返回一致,可含 subsection)

承载与访问

__gpp 是 GPP 时代的统一入口;__tcfapi 是 TCF 2.2 之前的入口,现仍并存——欧洲经济区(European Economic Area,EEA)规范要求在独立 TC String 场景下继续实现;__uspapi 是 USPrivacy 的 legacy 入口。三者共用同一队列-回调调用模型(command + callback + parameter)。

CMP 未加载时,页面上的 stub 必须把调用压入队列(如 __gpp 先是数组,push [command, callback, parameter]),CMP 加载后按调用顺序执行;但泛型命令须在 stub 阶段即同步响应。

失效形态

  • 把 __gpp 当返回值函数用(它是队列-回调模型,结果经 callback 给出;泛型命令同步、其余可能异步)
  • 继续依赖 getGPPData / GPPData(v1.1 已废弃,应改用 ping 的 PingReturn 配合 getSection / getField)
  • applicableSections 为 [-1](无适用 section)时仍去解析某个 section
本章正文迁移自老 /protocol/gpp-tcf 单页,素材与官方规范一致。