继《程序化广告4种典型模式》​、《流量优先级和交易管理》​之后我们看看一下程序化广告关键的技术接口协议:OpenRTB_API_Specification

下载地址:

http://www.iab.com/wp-content/uploads/2016/03/OpenRTB-API-Specification-Version-2-5-FINAL.pdf

是IAB指定的RTB竞价广告协议的规范,主要包括其生态图体系、业务流程和主要的对象模型和数据模型。基本负责流量技术对接的产品技术同学必须参考的文档。

现以《OpenRTB-API-Specification-Version-2-5-FINAL.pdf》为例给大家概要性地介绍一下该技术接口协议:

该协议首先介绍一些常用词,这些常用词也是我们经常会用到的:

常用词定义

RTB:实时竞价处理每个广告曝光机会投标(即,因用户等待广告结果整体处理时间极短,一般要求小于100毫秒)。

Exchange:对每个广告曝光机会之间进行拍卖的服务。(常称为广告交易市场(Ad Exchange))

Bidder:在广告实时拍卖中完成竞价的实体。(在此基础上完善的需求方的业务功能系统,常称之为DSP(需求方平台))

Seat:使用竞价服务代表其利益的交易席位。(竞价购买广告实际的出钱买方,常见的有广告主、广告代理公司等等,实际业务执行中他们可能不参与实际的竞价技术环节,但是他们给DSP下订单、并通过该“席位“的交易同Adx对账确保“透明化”。)(目前国内大部分Adx不支持该特性,仅google的Adx支持。)

Publisher:拥有一个或多个媒体的广告发布者。(是SSP系统的主要使用者)

Site:有广告位要展示的内容网站,包括Web、App等等。

Deal:广告卖方同买方以特殊的交易模式及特定的条款预先约定好的预订量合约。

该协议描述基础的RTB处理时序图:

0.用户打开媒体页面(媒体页面中有广告位需展示广告),媒体端向RTB交易服务(Adx)发起广告请求;

1.Adx向竞价服务方(DSP,广告主可在DSP添加广告投放订单)发起竞价(邀约)请求(传送竞价邀约请求、媒体网站、用户设备、用户相关行为数据等等);

竞价服务方返回竞价信息(竞价、广告素材或广告片段);

2a.Adx结果反馈:win-notice返回成交结果;

若竞价返回包中未含广告片段需要再次提供;

2b.有些Adx会发失败原因(注意:这个不是必须发的)。

3a.有些Adx会发成交账单信息(注意:这个不是必须发的)。

最后广告通过Adx返回给媒体并通过媒体展示给用户。

图上虚线流程:

a.媒体方可在Adx中设定媒体的相关属性设置(分类、底价、禁投行业等等)。

b.DSP可在设置接受竞价邀约流量的响应能力及所需流量过滤设置、创意审核等等。

协议中约定的广告请求对象内实体间的关系图如下:

(上图为“E-R图”即:“实体关系图(Entity Relationship Diagram)”,用于表示各实体对象间关系,“框”符号代表“实体”,“线”符号代表“关系”,“实心菱形”符号代表该“线”是“组成关系”,“实心菱形”所指的“实体”对象由“线”另一端的对象组成(即包含关系)(“0..1”代表符号这端对象被“线”另一端对象包含可0个但至多1个,“0..*”代表符号这端对象被“线”另一端对象包含可0个也可多个,“1..*”代表符号这端对象被“线”另一端对象包含至少1个也可多个)。拿“BidRequest”-“Imp”那个关系举例,通俗的说就是一个“BidRequest”可包含多个且至少1个“Imp”,这个可理解为有的时候为了节省网络开销,一个竞价请求可能会包含多个广告位的竞价信息(出现的场景很可能是用户一次打开内容页面时而同时产生的多个广告位的曝光机会)。)

换一种能直观展示包含关系的图例如下:

各数据段(对象)的简单描述参见下表:

对象(数据段)描述

BidRequest:顶级对象(代表整个竞价请求数据包对象)

Source:该数据段描述该广告曝光机会竞价决策的细节,是否该Adx决策或上游决策等等信息。(例如:header bidding就是由上游媒体决策的。)

Regs:该数据段描述该竞价请求中所有广告曝光机会是否存在任何法律、政府或行业法规的约束,例如:美国儿童在线隐私保护法等等。

Imp:描述特定广告曝光机会的数据段;每个竞价请求至少有1个该数据段

Metric:该数据段描述该广告位历史平均的数据,例如:CTR、广告可见性等等数据。

Banner:若广告位是广告横幅,该数据段描述该横幅广告位的细节(广告形式:横幅广告、横幅中的视频、或视频的旁的横幅广告),内容有:高宽尺寸、支持素材规格(mimes)等等。

Video:若广告位是视频中的广告位,该数据段描述该视频广告位的细节,内容有:高宽尺寸、支持素材规格(mimes)、最小时长、最大时长、序号(例如:一次竞价请求支持多个贴片广告,这个序号用于标识第几个贴片)等等。

Audio:若广告位是音频节目中的广告位,该数据段描述该音频广告位的细节,内容有:支持素材规格(mimes)、最小时长、最大时长、支持的API等等。

Native:若广告位是原生广告,该数据段描述该原生广告位的细节,内容有:支持的API等等。

Format:该数据段描述广告位允许的素材尺寸,例如:高宽比、高宽像素等等。

Pmp:若该该广告曝光机会是否存在已预订的PMP (private marketplace 的合约,该数据段描述用于描述这类合约的细节,内容有:是否私有交易、合约等等。

Deal:该数据段描述该广告曝光机会卖方买方双方预先约定好的合约内容。内容有:底价、成交方式等等。

Site:若是Web上的广告,该数据段描述广告曝光机会所在的网站的细节,内容有:网站名、广告所在页面URL、网站所属类别等等。

App:若是App上的广告,该数据段描述广告曝光机会所在的App的细节,内容有:App名、App是否为付费App、App所属类别等等。

Publisher:该数据段描述该网站或App广告发布者的细节,内容有:名字、域名、类别等等。

Content:该数据段描述广告将被展示的内容页的细节,内容有:关键词、语言等等。

Producer:该数据段描述广告将被展示的内容作者的细节,内容有:名字、分类等等。

Device:该数据段描述展示广告的设备的细节,内容有:ip、设备屏幕尺寸、地理信息等等。

Geo:该数据段描述展示广告设备的地理信息细节,内容有:经纬度、所属国家、所属城市等等。

User:该数据段描述展示广告的用户相关数据,内容有:用户基本的人口属性(年龄、性别)、位置信息、附加数据等等。

Data:该数据段描述展示广告的用户的附加数据,内容有:数据提供方名字、ID、相应的数据包等等。

Segment:该数据段描述附加数据的详细内容,内容有:一组键值对的数据包等等。

BidRequest包数据片段简单示例(一般都是Json(Content-Type: application/json)):

{

“id”: “80ce30c53c16e6ede735f123ef6e32361bfc7b22″,

“at”: 1, “cur”: ["USD" ],

“imp”: [

{

"id": "1","bidfloor": 0.03,

"banner": {

"h": 250, "w":300, "pos": 0

}

} ],

“site”: {

“id”: “102855″,

“cat”: [ "IAB3-1" ],

“domain”:”http://www.foobar.com“,

“page”:”http://www.foobar.com/1234.html “,

“publisher”:{

“id”: “8953″,”name”: “foobar.com”,

“cat”: [ "IAB3-1" ],

“domain”:”foobar.com”

} },

“device”:{

“ua”:”Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13

(KHTML, likeGecko) Version/5.1.7 Safari/534.57.2″,

“ip”:”123.145.167.10″

},

“user”: {

“id”:”55816b39711f9b5acf3b90e313ed29e51665623f”

}

}

协议中约定的买方广告响应对象内实体间的关系及同竞价请求对象相应的对应关系图如下:

(上面介绍“E-R图”符号中有个“剪头”符号,用以表示“剪头”所指的“实体”对象被“线”另一端的对象所关联(关联关系)(“0..*”代表符号这端对象被“线”另一端对象关联可0个也可多个)。拿“BidRequest”-“BidResponse”那个关系举例,通俗的说就是多个“BidResponse”对应一个“BidRequest”,这个好理解一个竞价请求自然会有多个Biider返回“BidResponse”。)

换一种能直观展示包含关系的图例如下:

各数据段(对象)的简单描述参见下表:

对象(数据段)描述

BidResponse:顶级对象(代表整个竞价返回数据包对象)

SeatBid:若出价有特定的买方交易席位,则该数据段描述该席位的细节,内容有:席位名等等。

Bid:该数据段描述出价的细节,内容有:出价、出价针对的广告曝光机会ID、广告素材ID、接收winnotice的地址等等。

BidResponse包数据片段简单示例:

{

“id”: “1234567890″,”bidid”: “abc1123″, “cur”: “USD”,

“seatbid”: [

{

"seat": "512",

"bid": [

{

"id": "1","impid": "102", "price": 9.43,

"nurl":"Conversant",

"iurl": "Conversant",

"adomain": ["advertiserdomain.com" ],

“cid”:”campaign111″,

“crid”:”creative112″,

“attr”: [ 1, 2, 3,4, 5, 6, 7, 12 ]

}

] }

]

}

OpenRTBv2.5-IAB关于程序化模式的定义系列【基础类】相关推荐

  1. 《数据库系统概论》3.3.1模式的定义与删除实操

    模式的定义和删除 一,创建 1,新建用户 2,创建模式赋给用户权限 create schema "S-T" authorization mu; 注意事项: create schem ...

  2. 关于抽象工厂模式的定义和实现

    前言 大部分摘自:<设计模式之禅> 这本书 抽象工厂模式的定义 为创建一组相关或相互 依赖的对象提供一个接口,而且无须指定它们的具体类. 一个好理解的例子: 讲了女娲造人的故事.人是造出来 ...

  3. MySQL的关系模式集是什么_数据库中“关系模式”的定义是什么?

    展开全部 数据库中"关系模式"的定义是对关系的描述,其必须指出这个元组集合的结构,也就是它32313133353236313431303231363533e4b893e5b19e3 ...

  4. 程序化广告实战分享系列 - 程序化广告入门

    什么是程序化广告? 程序化广告是运用技术手段将数字媒体广告投放整个过程中的各个环节信息化并通过技术手段衔接在一体:最终达成购买.投放.报表追踪.持续优化投放等等全环节完全可通过程序来自动完成,以提升媒 ...

  5. 【C语言笔记】【宏定义系列】 向下舍入到指定数值的倍数

    [C语言笔记][宏定义系列] 向下舍入到指定数值的倍数 宏定义系列内容.用于记录各式各样有用或者没用的宏定义☺. 宏定义说明 用于将一个数向下舍入到小于等于该数的指定数值的倍数. 例如一个要向下舍入的 ...

  6. 【C语言笔记】【宏定义系列】 绝对值

    [C语言笔记][linux宏定义系列] 绝对值 abs linux宏定义系列内容.用于记录在linux之中各式各样的宏定义☺. 宏定义说明 用于计算数值的绝对值,支持有符号和无符号的long,int, ...

  7. 【C语言笔记】【宏定义系列】 整数乘以分数

    [C语言笔记][linux宏定义系列] 整数乘以分数 mult_frac linux宏定义系列内容.用于记录在linux kernel之中各式各样的宏定义☺. 宏定义说明 用于将整数乘以分数.可以避免 ...

  8. 【C语言笔记】【宏定义系列】 向上取整到指定数值的倍数

    [C语言笔记][宏定义系列] 向上取整到指定数值的倍数 宏定义系列内容.用于记录各式各样有用或者没用的宏定义☺. 宏定义说明 用于将一个数向上取整到大于等于该数的指定数值的倍数. 例如一个要向上取整的 ...

  9. GOF对Builder模式的定义(转载)

    (1)意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. (2)适用性 1. 当创建复杂对象的算法应该独立于该对象的组成部分以及他们的装配方式: 2. 当构造过程必须允许 ...

最新文章

  1. 一文详解 RNN 及股票预测实战(Python)!
  2. 记一次通过c#运用GraphQL调用Github api
  3. POI Workbook接口和HSSFWorkbook对象和XSSFWorkbook对象操作相应excel版本
  4. python学习-syspath、系统内置模块
  5. MongoDB优化之二:常见优化方法
  6. Qt没有被正确安装,请运行make install问题的解决
  7. 人类长非编码RNA表达数据库,整合9种重要生物学场景(发育、癌症、病毒侵染等)...
  8. 电子游戏市场的演变————零售
  9. Nodejs-增删改查-案列方法
  10. 终于迎来大改变!iPhone 14全系标配120Hz高刷屏+6GB内存
  11. ftk学习记(窗口全屏设置篇)
  12. 听听优秀的人讲 AI!带你探知目标检测以及分割的现状和挑战
  13. ios app 提交评审注意事项
  14. unrar在linux如何编译,rarlinux(rar\unrar在linux使用)
  15. 中国书籍出版情况分析:2020年中国书籍出版总印数为65.2亿册(张),其中社科人文类占书籍94.8%[图]
  16. 安装debian8操作系统
  17. ubuntu16.04下ORB_SLAM2的配置
  18. 杂谈——TCP/IP 协议栈详解
  19. 个人贷款违约预测模型(逻辑回归)
  20. 股票交易问题全拿下,一扫光

热门文章

  1. jetty服务器的使用
  2. 360终端安全防护系统与飞腾S2500、D2000完成兼容互认
  3. 车辆管理系统都有哪些,价格怎么样?
  4. 和chatgpt一起学天线概念----驻波比、方向系数、辐射电阻、辐射效率、主瓣宽度
  5. 使用freemarker导出word,wps可以打开,office打不开问题
  6. html5 纵向分割线,html5和css3制作不规则的网页背景分割线
  7. Day01| 第四期-北京积分落户数据分析
  8. 模式识别 - 多视角学习 (Multi-View Learning) 简介
  9. video属性及操作
  10. React native ios上架