适用于 SSP 的 Protected Audience(以前称为 FLEDGE)集成和测试指南

作为 Privacy Sandbox 的一部分,Chrome 提出了 Protected Audience API,一种浏览器内 API 可让广告主和广告技术公司挑选并定位兴趣群体 (受众群体名单),无需依赖第三方 Cookie,同时保护用户 实施跨网站跟踪开发者 指南

SSP 可以将 Protected Audience API 与展示广告和Video 360 和 Google Ads 可以:

  • 迭代并了解 Protected Audience API 流程的效果。
  • 公开提出可能的 API 改进建议并提供反馈 论坛 - 例如,GitHub
  • 为通过 Protected Audience 支持个性化广告做好准备 实现 API 集成,而不依赖于第三方 Cookie。

以下指南详细介绍了 SSP 和展示广告与 Video 360 和 Google Ads。有兴趣协调测试的 SSP 应该加入 与其展示广告Video 360 合作伙伴代表。

注册

SSP 应该注册 自己 使用 Protected Audience API。

服务流摘要

下图所示的一般流程概述了 Chrome、SSP、展示广告和展示广告之间的主要交互点Video 360 和 Google Ads。

显示 Chrome、SSP 和
DSP

集成选项

选项 1:直销 / 单卖家

针对单卖家的详细请求流程
拍卖

步骤:

  1. SSP 广告代码向 SSP 服务器发送广告请求,指明浏览器 支持 Protected Audience API。
  2. SSP 服务器向 DSP 发送内容相关 OpenRTB 出价请求,指明 浏览器支持 Protected Audience API
  3. DSP 会返回 OpenRTB 出价响应,其中包含 设备端竞价。
  4. SSP 服务器向 SSP 广告代码发送包含竞价配置的广告响应。
  5. SSP 广告代码通过调用 runAdAuction()、 将来自 DSP 的 OpenRTB 出价响应的信号 perBuyerSignals
  6. Chrome 调用键值对可信 DSP 出价服务器 提取实时出价信号
  7. Chrome 调用 generateBid() 为每个参与兴趣群体提供 DSP JavaScript 函数。
  8. Chrome 调用键值对可信 SSP 评分服务器 来获取实时评分信号。
  9. Chrome 调用 scoreAd() 每个参与兴趣群体的 SSP JavaScript 函数。
  10. Chrome 调用 reportWin() 用于向 DSP 报告胜出者的 DSP JavaScript 函数。
  11. Chrome 调用 reportResult() 用于向 SSP 报告胜出者的 SSP JavaScript 函数。

SSP 端的最少更改

  • SSP 广告代码需要更新为

    • 检测浏览器是否支持 Protected Audience API
    • 将该信息作为广告请求的一部分发送到 SSP 服务器 [1]
    • 通过调用 runAdAuction() 传入设备端竞价 来自 DSP 的 OpenRTB 出价响应 [5] 的信号(请参阅 出价请求和响应结构)。
  • SSP 服务器需要

    • 将有关 Protected Audience API 支持的信息传播到 DSP 通过 OpenRTB 出价请求中的字段 [2](请参阅“出价”部分) 请求和响应结构)。
    • 将 OpenRTB 出价响应中 DSP 的买方信号传播到 SSP 广告 代码(请参阅下文有关出价请求 / 出价响应结构的部分)[4]
  • [Optional] SSP 需要实现可信 SSP 服务器才能实时提取数据 评分信号,以支持广告质量检查、发布商设置执行 [8]

  • SSP 需要通过 "scoreAd(...)""reportResult(...)" 实现 JavaScript 函数 [9][11]

选项 2:多卖家

多卖方竞价的详细请求流程

步骤:

  1. SSP 适配器向 SSP 服务器发送广告请求,指明浏览器 支持 Protected Audience API。
  2. SSP 服务器向 DSP 发送内容相关 OpenRTB 出价请求,指明 浏览器支持 Protected Audience API
  3. DSP 服务器做出 OpenRTB 出价响应,其中包含 设备端竞价。
  4. SSP 服务器向 SSP 广告代码发送包含竞价配置的广告响应。
  5. SSP Prebid 适配器向发布商广告服务器提供组件竞价配置 标记前面。
  6. 发布商广告服务器代码向发布商广告服务器服务器发送广告请求。
  7. 发布商广告服务器代码通过调用 runAdAuction(...) API。
  8. Chrome 调用键值对可信 DSP 出价服务器 提取实时出价信号
  9. Chrome 调用 generateBid() 针对每个参与兴趣群体使用 DSP JavaScript 函数。
  10. Chrome 调用键值对可信 SSP 评分服务器 来获取实时评分信号。
  11. Chrome 调用 scoreAd() 每个参与兴趣群体的 SSP JavaScript 函数。
  12. Chrome 调用 reportWin() 用于向 DSP 报告胜出者的 DSP JavaScript 函数。
  13. Chrome 调用 reportResult() 用于向 SSP 报告胜出者的 SSP JavaScript 函数。

SSP 端的最少更改

  • 需要将 SSP 适配器更新为

    • 检测浏览器是否支持 Protected Audience
    • 将该信息作为广告请求的一部分发送到 SSP 服务器 [1]
    • 为发布商广告服务器广告代码 [5] 提供组件竞价配置。
    • 如果 Google Ad Manager 是发布商广告服务器,则 SSP 可以 * 使用 Prebid Protected Audience 模块 * 调用 Google Ad Manager 广告代码 setConfig() API 利用多种 卖家
  • SSP 服务器需要

    • 通过 OpenRTB 出价请求中的 [2] 字段(请参阅“出价”部分 请求和响应结构)。
    • 将 OpenRTB 出价响应中 DSP 的买方信号传播到 SSP 广告 代码(请参阅下文有关出价请求 / 出价响应结构的部分)[4]
  • [Optional] SSP 需要实现可信 SSP 服务器才能实时提取数据 评分信号,以支持广告质量检查、发布商设置执行 [10]

  • SSP 需要使用 scoreAd()reportResult() 公开 JavaScript 函数 [11][14]

出价和竞价服务

我们正在密切评估拍卖服务 (B&A) proposal

显示和Video 360 已准备好通过 B&A 测试 Protected Audience API。 我们会与您联系,提供更多详细信息。

OpenRTB 协议

出价请求

为了区分支持 Protected 的展示机会 Audience API 设备端竞价,来自仅支持标准 服务器端广告交易平台竞价,新增了一个名为 ae 的枚举字段,用于“竞价” 环境"应作为扩展程序添加到 OpenRTB 中的 Imp 对象 指定的出价请求支持哪种竞价环境 展示广告位。ae 枚举可以具有以下值:

  • 0:标准服务器端竞价
  • 1:支持 Protected Audience API 的请求,其中情境 竞价是在交易平台的服务器上进行的,而基于兴趣群体的出价和 在浏览器中运行最终竞价
{
  "id": 
  "imp": [{
    "id": "1"
    "video": {...}
    "ext": {
      "ae": 1
    }]
}

出价响应

除了内容相关出价外,出价响应还用于传递 与展示广告和展示广告相关的信息,Video 360 和 Google Ads 参与 Protected Audience API 基于兴趣群体的竞价。出价响应会更新为 支持兴趣群体竞价,具体如下:

{
  "seatbid": [{
    "bid": [{
       // Traditional contextual bids
    }]
  }],

  "ext": {
    // InterestGroupBidding object which holds information for running an
    // in-browser interest group auction.
    "igbid": [{
      // ID of the Imp object of the impression to which
      // these interest group bidding signals apply to.
      "impid": "1",

      // InterestGroupBuyer object which holds DSP information for the in-browser
      // auction.
      "igbuyer": [{
        // Origin of Display & Video 360 and Google Ads to participate in the
        // interest group auction. For more info regarding the origin see:
        // https://developer.mozilla.org/en-US/docs/Glossary/Origin
        "origin": "https://td.doubleclick.net",

        // Buyer-specific signals to use in auctionConfig as perBuyerSignals.
        // Used by the buyer's interest group bidding function. Can be left empty
        "buyerdata": ...,

        // Buyer experiment group id to support coordinated experiments with
        // buyers' trusted servers. This experiment id should be added to the
        // `perBuyerExperimentGroupIds` map in auctionConfig.
        "buyer_experiment_group_id": 12345
      }]
    }]
  }
}

支持以下场景。

  • 场景 1:展示广告和Video 360 和 Google Ads 只想参与 来参与竞价在这种情况下,不存在 igbid 字段。

  • 场景 2:展示广告和Video 360 和 Google Ads 只想参与 参与基于兴趣群体的竞价在这种情况下, 展示广告和Video 360 和 Google Ads 将丢弃出价响应中的 seatbid 字段, 返回 igbid 信息。换句话说,如果有 igbid 字段,则表示 展示广告和Video 360 和 Google Ads 希望拥有自己的兴趣群体 参与设备端竞价。

  • 场景 3:展示广告和Video 360 和 Google Ads 希望参与 内容相关竞价和兴趣群体竞价。在这种情况下, 展示广告和 Video 360 和 Google Ads 将在出价响应中同时返回两个 seatbid 字段 以及 igbid 信息。

含出价的元数据

Protected Audience API 允许 passing arbitrary metadata generateBid() 函数中有关广告的信息。

展示广告与Video 360 计划依靠 specification 适用于广告元数据:Protected Audience API 和 OpenRTB。

即展示广告和Video 360 将返回以下字段作为广告的一部分 对象:

PA 属性 类型 OpenRTB 说明
ad.seat String;必需 代表其出价的买方(例如广告客户、代理机构)的 ID。
ad.adomain String[] 用于检查屏蔽列表的广告客户网域(例如,“ford.com”)。对于轮播广告素材,此值可以是 的数组。广告交易平台可以强制要求仅允许使用一个域名。
ad.cid 字符串 用于协助进行广告质量检查的广告系列 ID。
ad.crid 字符串 协助广告质量检查的广告素材 ID。
ad.language 字符串 使用 ISO-639-1-alpha-2 的广告素材语言。非标准代码“xx”如果广告素材不包含语言内容(例如,只有公司徽标的横幅),则也可使用此属性。只应提供 language 和 langb 中的一种。
ad.w integer 广告素材的宽度,以设备无关像素 (DIPS) 为单位。
ad.h integer 广告素材的高度,以设备无关像素 (DIPS) 为单位。

示例

{
  "seat": "123"
  "adomain": ["example.com"]
  "cid": "12345"
  "crid": "12345"
  "language": "en"
  "w": 300
  "h": 250
}

事件报告

Protected Audience API 提供了一个事件级报告 API,详见下文 GitHub 博文:Fenced Frame Ads Reporting。 尽管名称显示 Fenced Frame Ads Reporting,但此 API 在以下国家/地区均可用: 围栏框架和 iframe(请参阅 here)。

SSP 可以在其 reportResult 函数中向浏览器注册网址,方法是 正在呼叫registerAdBeacon() API。

展示广告与Video 360 将调用 reportEvent() 目标为“component-seller”的 API从广告素材中添加到报告 展示和点击事件。这会将信标发送到 注册网址。

请注意,展示广告和Video 360 将针对展示次数和 reportEvent() API 调用 点击次数。

示例

registerAdBeacon({
 'impression': 'https://ssp.example/impression?ssp_event_id=abc',
});
registerAdBeacon({
 'click': 'https://ssp.example/click?ssp_event_id=abc',
});

展示广告与Video 360 将参与Chrome-facilitated testing的 第三方 Cookie 弃用。为了顺利完成测试,我们要求合作伙伴 根据 specification:

对象:Device.ext

属性 类型 说明
CDep 字符串 从 Chrome 或上游合作伙伴收到的标签。