实时竞价 接口
版本历史
版本号 | 日期 | 作者 | 描述 |
---|---|---|---|
1.0 | 2019-05-27 | 赵家勇 | 支持移动端业务 |
1.0.1 | 2019-08-29 | 王骁恒 | 创意送审、创意修改、创意查询、BidResponse支持下载类第3方监控 |
1.0.2 | 2019-11-15 | 王骁恒 | 获取广告位详情memo 字段改为选填,新增platform 字段 |
1.0.3 | 2019-11-15 | 王骁恒 | 下载类广告的package_name 字段改为选填 |
1.0.4 | 2019-12-30 | 王骁恒 | 添加deeplinktk字段 |
1.0.5 | 2020-02-12 | 赵家勇 | 添加应用定向和广告过滤字段说明 |
1.0.6 | 2020-05-25 | 梁春雷 | 添加下载或调起类广告效果上报字段,dstartinstalltk、deeplinkfailedtk、installedtk、uninstalledtk |
1.0.7 | 2020-09-04 | 徐华根 | 添加actionurl在BidResponse和创意同步接口-创意送审/创意修改/创意查询中的app_info object[] |
1.0.7 | 2020-12-20 | 徐华根 | 添加bgimg , videotime 等字段在BidResponse和创意同步接口-directive_response object[] |
1.0.8 | 2021-08-03 | 黄有龙 | 在BidRequest.Device增加hmsVersion , asVersion |
2.0 | 2023-04-21 | 黄有龙 | 增加ApiVersion2.0版本,BidRequest结构display 对象更新,BidResponse结构新增material 对象 |
2.0.1 | 2023-05-25 | 黄有龙 | 在BidRequest.Device增加IOS相关字段birthTime , bootTime , updateTime , idfv , caid |
2.0.2 | 2023-06-30 | 黄有龙 | 在BidRequest.Device增加拼多多caid字段paid |
2.0.3 | 2023-07-26 | 黄有龙 | 在BidRequest.Device增加caid的version字段caid .version |
2.0.4 | 2023-08-11 | 黄有龙 | 在BidResponse.AppInfo新增下载要素的字段:permission_url , function_desc |
2.0.5 | 2023-09-04 | 黄有龙 | 支持protobuf 格式对接, 支持gzip , zstd 压缩方式; 在BidRequest.Device增加ppi , pxRatio 字段, 即将废弃density 字段 |
2.0.6 | 2023-10-16 | 黄有龙 | 在BidRequest.Device增加阿里广告标识aaid字段aaid |
2.0.7 | 2023-11-29 | 黄有龙 | 在BidResponse.AppInfo新增ios universal_link字段,universal_link 字段 |
2.0.8 | 2023-12-28 | 黄有龙 | 增加点击事件与摇一摇相关宏:__itm__ , __acw__ , __ach__ , __xma__ , __yma__ , __zma__ |
2.0.9 | 2024-01-19 | 黄有龙 | 在BidRequest.Device增加:elapseTime , sysCpuNum , batteryState , battery , romVersion , sdFreeSpace |
2.0.10 | 2024-12-11 | 黄有龙 | 在BidRequest.Device增加:anDisk , anMemory |
通信方式
简介
- ADX和DSP之间的通信协议采用
HTTP
协议 - ADX使用
POST
方法向DSP发送Bid Request消息 - 数据格式:
json
,protobuf
- 支持压缩方式:
gzip
,zstd
- ADX使用
GET
方式向DSP发送Win Notice消息
请求头
参数名称 | 参数值 | 备注 |
---|---|---|
Content-Type | application/json | 目前支持json和protobuf格式 json: 固定传 application/json protobuf:固定传 application/x-protobuf |
Accept-Encoding | 压缩方式, 不压缩的时候不传 支持压缩方式有 gzip ,zstd , 选择对应压缩方式则会传对应的压缩 | |
Content-Encoding | 压缩方式, 不压缩的时候不传 支持压缩方式有 gzip ,zstd , 选择对应压缩方式则会传对应的压缩 |
提示
- 建议DSP使用protobuf对接, 对接参考proto文件
- 出于降低带宽的角度, 希望DSP支持压缩, 支持压缩后, 我方会采用对应压缩方式请求(Request Header头会传Accept-Encoding与Content-Encoding),对应值如: gzip
响应头
参数名称 | 参数值 | 备注 |
---|---|---|
Content-Type | application/json | 目前支持json和protobuf格式 json: 固定传 application/json protobuf:固定传 application/x-protobuf |
Content-Encoding | 压缩方式, 不压缩的时候不传 支持压缩方式有 gzip ,zstd , 选择对应压缩方式则需传对应的值 |
HTTP状态码
- DSP正常出价响应包的HTTP状态码:
200 OK
- DSP不出价的HTTP状态码:
204 no content
- 其他状态码均认为异常
接口定义v2.0
2.0更新说明
1.0版本升 级到2.0版本须知:
2.0版本的主要目标:针对素材适配做了调整,提升DSP侧的素材适配性。 建议升级以提升跑量能力
2.0版本相对1.0版本主要调整:
- 请求参数调整:
-
- 增加
BidRequest
.api_version
参数,固定传值2.0
- 增加
-
Display
对象调整:BidRequest
.ImpList<Imp>
.DisplayList<Display>
移除display_id
字段,新增template_id
字段,为模板字段,具体可以参照帮助中心/广告形式规范报表/广告模板V2.0
- 返回参数调整:
-
- 移除
directive_response
下相关字段:display_id
、ad_content_list
、bgimg
、videosize
、videotime
、videoProtocol
- 移除
-
- 增加
directive_response
.template_id
字段,增加directive_response
.material
字段,用于表示素材,提高素材可适配性
- 增加
BidRequest结构说明
ADX向DSP发送HTTP竞价请求,竞价请求信息保存在BidRequest中。BidRequest将包含曝光信息、站点信息、APP信息、设备信息、用户信息。
BidRequest object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
reqid | string | 必填 | 标识一次请求的唯一id |
api_version | string | 必填 | 版本号,固定为2.0 |
imp_list | object[] | 必填 | 曝光信息, 广告位信息, 一个BidRequest可能包含多个imp对象, 至少包含一个 object的结构见imp object |
site | object | 选填 | 站点信息, 仅当广告位出现在web时, 才会包含site对象 object的结构见site object |
app | object | 选填 | APP信息, 仅当广告位出现在APP时, 才会包含APP对象 object的结构见app object |
device | object | 选填 | 设备信息 object的结构见device object |
user | object | 选填 | 用户信息 object的结构见user object |
bcat | string[] | 选填 | 拒绝的广告分类 |
badv | stirng[] | 选填 | 拒绝的广告主域名 |
test | int | 选填 | 测试字段, 标识是否涉及收费 0-生产模式 1-调试模式 |
ext | object | 选填 | 保留字段 |
imp object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | string | 必填 | 标识该imp的唯一id |
seat_id | int | 必填 | 广告位标识id, DSP先同步获取ADX资源的素材标准,然后根据本字段识别曝光资源的来源和素材标准 |
ad_type | int | 必填 | 广告类型: 1-开屏 2-插屏 3-信息流 4-激励视 频 5-推送 |
display_list | object[] | 必填 | 广告位支持的广告形式: 包含多个,代表该位置支持多种广告形式,投放方可以根据自己需要选取其中一个广告投放,返回投放广告对应的广告形式id object的结构见display object |
bid_info_list | object[] | 必填 | 竞价信息,包含允许的竞价类型和底价,至少存在一个bidinfo object的结构见bid_info object |
deal_id | string[] | 选填 | 直接交易标识 ID列表,由交易平台和 DSP 提前约定 |
action_type | int[] | 选填 | 支持的广告交互类型 0-无限制、1-H5、2-下载、3-唤醒、4-微信小程序、10-LBA、21-仅展示不可点击 |
display object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
template_id | int | 必填 | 广告模板id 参考帮助中心/广告形式规范报表/广告模板v2.0 |
width | int | 必填 | 广告位宽度 |
height | int | 必填 | 广告位高度 |
bid_info object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
bid_type | int | 必填 | 允许的竞价类型 0-CPM |
bid_floor | int | 选填 | 可 接受的底价 单位:分/千次曝光 |
site object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | int | 必填 | 站点id, 由ADX定义的site id |
name | string | 选填 | 站点名称 |
domain | string | 选填 | 站点域名 |
url | string | 选填 | 当前页面的url |
ref | string | 选填 | 当前页面的referer url |
keywords | string | 选填 | 逗号分隔的页面关键词 |
app object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | string | 必填 | APP id, 由ADX定义 |
name | string | 选填 | APP名称 |
package_name | string | 选填 | APP package name, 平台内唯一 |
cat | int[] | 选填 | APP类型 |
ver | string | 选填 | APP版本号 |
keywords | string | 选填 | 逗号分隔的APP关键词 |
device object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
ua | string | 选填 | 浏览器的user agent |
device_type | int | 选填 | 设备类型 0-PC 1-手机 2-平板 3-互联网电视 |
brand | string | 选填 | 设备品牌(如: apple) |
model | string | 选填 | 设备型号(如: iphone) |
make | string | 选填 | 设备厂商(如: apple) |
orientation | int | 选填 | 屏幕方向 0-未知 1-竖屏 2-横屏 |
hmsVersion | string | 选填 | 华为机型HMS Core版本号(如: 60000306) |
asVersion | string | 选填 | 大陆厂商安卓设备AS版本号(如: 110302302) |
os | int | 选填 | 操作系统 0-Windows 1-MacOS 2-Linux 3-IOS 4-Android 5-WP |
osv | string | 选填 | 操作系统版本号 |
density | int | 选填 | 屏幕密度, 默认为400,即将废弃,用ppi字段取代 |
ppi | int | 选填 | 像素密度, 表示每英寸像素点, 默认为400 |
pxRatio | float | 选填 | 屏幕密度, 例如 1.5 |
ip | string | 选填 | ipv4 |
ipv6 | string | 选填 | ipv6 |
carrier | int | 选填 | 运营商 0-电信 1-移动 2-联通 3-网通 4-未知 |
network | int | 选填 | 网络类型 0-wifi 1-earthnet(有线网络) 2-2G 3-3G 4-4G 5-5G 6-未知 |
width | int | 选填 | 物理屏幕宽度 |
height | int | 选填 | 物理屏幕高度 |
imei | string | 选填 | 设备号imei |
imei_md5 | string | 选填 | 设备号imei的md5 |
oaid | string | 选填 | Android Q以上版本的设备号 明文形式 |
dpid | string | 选填 | Android id |
dpid_md5 | string | 选填 | Android id的md5 |
idfa | string | 选填 | Apple设备的idfa |
idfa_md5 | string | 选填 | Apple设备的idfa的md5 |
boot_mark | string | 选填 | 取原值进⾏传输 iOS:1623815045.970028 Android:ec7f4f33-411a-47bc-8067-744a4e7e0723 |
update_mark | string | 选填 | 取原值进⾏传输 iOS:1581141691.570419583 Android:1004697.709999999 |
mac | string | 选填 | 设备的mac值 |
mac_md5 | string | 选填 | 设备的mac值的md5 |
birthTime | string | 选填 | 设备初始化时间 |
bootTime | string | 选填 | 系统启动时间 |
updateTime | string | 选填 | 系统更新时间 |
idfv | string | 选填 | 苹果开发者标识 |
paid | string | 选填 | 拼多多版caid,仅iOS |
caid | object | 选填 | 中广协设备id,object的结构见Caid object ,仅iOS |
geo | object | 选填 | 地域信息 object的结构见geo object |
aaid | string | 选填 | 阿里集团内推出的匿名广告标识符,格式示例:CD7D878A870C-97D4-89A4-3EB3-D48AF066 |
elapseTime | string | 选填 | 开机时长 |
sysCpuNum | int | 选填 | 设备cpu数量 |
batteryState | int | 选填 | 设备当前充电状态 1:未知状态,2:正在充电,3 放电 4:未充满,5:满状态 |
battery | int | 选填 | 设备电量 |
romVersion | string | 选填 | 系统rom版本 |
sdFreeSpace | string | 选填 | 磁盘剩余空间 |
anDisk | string | 选填 | 安卓磁盘空间 |
anMemory | string | 选填 | 安卓内存空间 |
geo object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
lat | float | 选填 | 纬度 (-90.0 - 90.0), 负值代表南 |
lon | float | 选填 | 经度 (-180.0 - 180.0), 负值代表西 |
type | int | 选填 | 位置来源 1-GPS定位 2-IP地址 3-用户提供(如注册信息) |
country | string | 选填 | 国家 |
province | string | 选填 | 省份 |
city | string | 选填 | 城市 |
user object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | string | 选填 | 由ADX定义的用户id |
yob | int | 选填 | 出生年份 4位数字 |
gender | string | 选填 | 性别 M-男 F-女 默认-未知 |
keywords | string | 选填 | 逗号分隔得用户关键词或兴趣点 |
Caid object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
id | string | 选填 | caid原值 |
version | string | 选填 | caid版本号,caid原值跟版本号同时传才有意义,建议传caid原值时,同时也传caid_version |
bootTimeInSec | string | 选填 | iOS设备启动时间(单位秒,无小数点) |
countryCode | string | 选填 | 国家 |
language | string | 选填 | 语言 |
deviceName | string | 选填 | 设备名称 |
model | string | 选填 | 设备model |
systemVersion | string | 选填 | 系统版本 |
machine | string | 选填 | 设备machine |
carrierInfo | string | 选填 | 运营商 |
memory | string | 选填 | 物理内存,单位字节 |
disk | string | 选填 | 磁盘空间,单位字节 |
sysFileTime | string | 选填 | 系统更新时间 |
timeZone | string | 选填 | 时区 |
initTime | string | 选填 | 应用首次启动时间 |
ext object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
iapp_list | string | 选填 | 定向应用id列表(逗号分隔), 最多50 个id, 请联系我们商务或运营开通, 及索要包名 和id 映射关系表, 用于支持部分唤醒或下载类广告业务 |
BidRequest请求示例
{
"reqid":"b-8910dd1fc643149c88906fc77a70f4a2",
"api_version": "2.0",
"imp_list":[
{
"id":"1",
"seat_id":10007201,
"ad_type": 3,
"display_list": [
{
"template_id": 3,
"width": 480,
"height": 360
},
{
"template_id": 4,
"width": 480,
"height": 360
},
{
"template_id": 5,
"width": 720,
"height": 360
},
{
"template_id": 6,
"width": 720,
"height": 360
}
],
"bid_info_list":[
{
"bid_type":0,
"bid_floor":30
}
],
"deal_id":[
"100072011125192"
]
},
{
"id":"2",
"seat_id":10007202,
"ad_type": 3,
"display_list":[
{
"template_id": 3,
"width": 480,
"height": 360
},
{
"template_id": 4,
"width": 480,
"height": 360
},
{
"template_id": 5,
"width": 720,
"height": 360
},
{
"template_id": 6,
"width": 720,
"height": 360
}
],
"bid_info_list":[
{
"bid_type":0,
"bid_floor":30
}
],
"deal_id":[
"10007202464452"
]
}
],
"site":{
"id":1,
"name":"2345网址导航",
"domain":"www.2345.com",
"url":"http://www.2345.com/index.html",
"ref":"http://www.2345.com",
"keywords":"音乐,小说,财经"
},
"app":{
"id":"52",
"name":"2345手机浏览器-安卓主版",
"package_name":"com.browser2345",
"cat":[
6502
],
"ver":"61000",
"keywords":"魅力的小鸟"
},
"device":{
"ua":"Mozilla/5.0(Linux;Android7.0;FRD-AL00Build/HUAWEIFRD-AL00;wv)AppleWebKit/537.36(KHTML,likeGecko)Version/4.0Chrome/60.0.3112.116MobileSafari/537.36",
"device_type":1,
"hmsVersion":"60000306",
"asVersion":"110302302",
"brand":"honor",
"model":"FRD-AL00",
"make": "huawei",
"os":4,
"osv":"7.0",
"ip":"172.16.171.88",
"ipv6":"",
"carrier":4,
"network":0,
"width":1080,
"height":1794,
"imei":"862679030655599",
"imei_md5":"b9b7d034a11df90d0be1d095c9ffe1f2",
"oaid":"8bc673b56ca9c1bc",
"dpid":"da79762cdb2521e8",
"dpid_md5":"7c16cd22b9034aeca5afc7403895ef70",
"idfa":"",
"idfa_md5":"",
"mac":"d41a844d7028",
"mac_md5":"8f0f4c4532c0d8fac13df364d31545b5",
"boot_mark":"ec7f4f33-411a-47bc-8067-744a4e7e0723",
"update_mark":"1004697.709999999",
"idfv": "",
"bootTime": "1633371485.234154208",
"updateTime": "1644125433.724374",
"birthTime": "",
"caid": {
"id": "",
"bootTimeInSec": "1671304611",
"countryCode": "CN",
"language": "zh-Hans-CN",
"deviceName": "867e57bd062c7169995dc03cc0541c19",
"model": "D17AP",
"systemVersion": "15.3",
"machine": "iPhone14,5",
"carrierInfo": "中国移动",
"memory": "3866836992",
"disk": "127866785792",
"sysFileTime": "1644125433.724374",
"timeZone": "28800",
"initTime": "1633371485.234154208"
},
"geo":{
"lat":31.180670080928,
"lon":121.60124658875,
"type":1,
"country":"",
"province":"",
"city":""
}
},
"user":{
"id":"d4a1484d7208",
"yob":0,
"gender":"",
"keywords":""
},
"bcat":[
],
"badv":[
],
"test":0,
"ext":{
"iapp_list":"10001,10002"
}
}
BidResponse基础结构说明
DSP通过BidResponse返回参与竞价的广告
一个BidResponse中可包含多个BidSeat对象。通常,一个BidSeat代表DSP端的一个广告主。每个BidSeat中又可包含多个Bid对象,一个Bid代表一个参与竞价的广告,对应于BidRequest中的一个Imp对象
BidResponse object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
resid | string | 必填 | response id, 与request id相同 |
seat_bid_list | object[] | 选填 | 广告位-竞价列表, 如果参与竞价, 必须至少包含一个seat_bid对象 object的结构见seat_bid object |
bidid | string | 选填 | 由DSP定义的响应id,用于 logging/tracking(日志或效果追踪) |
seat_bid object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
bid_list | object[] | 必填 | 竞价信息 object的结构见bid object |
adv | string | 选填 | 该次竞价是代表谁参与的,一般设置成广告主id,用于logging/tracking |
bid object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
imp_id | string | 必填 | 本次竞价所关联的imp id |
price | int | 必填 | 出价 单位:分 |
deal | string | 选填 | 预定的资源id, 仅pd和pdb业务使用 |
creative_id | string | 必填 | 广告创意素材id, DSP需保证该id在DSP侧的唯一性, 最长支持32位 |
directive_response | object | 选填 | 广告创意信息, 免审核时使用, 白名单内的DSP此项必填 object的结构见directive_response object |
iapp_filter | int | 选填 | 0=不过滤(默认) 1=过滤已安装 2=过滤未安装 |
ext_data | string | 选填 | 自定义宏, 会替换竞价成功后的__EXT_DATA__ 宏 |
directive_response object
字段 | 类型 | 必填 | 描述 |
---|---|---|---|
creative_id | string | 必填 | 广告创意素材id, DSP需保证该id在DSP侧的唯一性 |
advertiser_id | int | 必填 | 广告主id,DSP侧可自定义 |
advertiser_name | string | 必填 | 广告主名称,DSP侧可自定义 |
vocation | int | 必填 | 广告主行业编码, 详见广告主行业编码表 |
template_id | int | 必填 | 广告模板id |
material | Material | 必填 | 广告创意素材信息,详见Material 对象 |
app_info | object | 选填 | app下载唤起 object的结构见app_info object |
url | string | 必填 | 落地url 支持302 |
incentiveloadedtk | string[] | 选填 | 仅用于激励视频广告,激励视频加载成功时统计url列表, 最多3个 |
videostarttk | string[] | 选填 | 仅用于信息流视频、激励视频,视频开始播放统计url列表,最多3个 |
firstQuartiletk | string[] | 选填 | 仅用于激励视频,视频播放至25%时统计url列表,最多3个 |
midpointtk | string[] | 选填 | 仅用于激励视频,视频播放至50%时统计url列表,最多3个 |
thirdQuartiletk | string[] | 选填 | 仅用于激励视频,视频播放至75%时统计url列表,最多3个 |
videoCompletetk | string[] | 选填 | 仅用于信息流视频、激励视频,视频播放完成统计url列表,最多3个 |
incentiveerrortk | string[] | 选填 | 仅用于激励视频广告,激励视频播放错误时统计url列表,最多3个 |
imptk | string[] | 选填 | 曝光监测url, 最多8个 |
clktk | string[] | 选填 | 点击监测url, 最多8个 |
dstarttk | string[] | 选填 |