本文档作为 DSP 与程序化交易平台进行对接的指引文档。主要包括2个部分:
-
接入步骤
阅读对象为 DSP 的商务人员。该部分说明了 DSP 与 Ad Exchange 对接的流程和步骤。
-
Buyer API
阅读对象为 DSP 的产品和开发人员。该部分详细描述了DSP向ADX上传/修改广告主/广告信息以及查询广告主/广告审核状态的接口。
本章节将详细介绍 DSP 如何使用 Buyer API 与 Ad Exchange 进行交互,提交/修改广告主/广告信息,查询广告主/广告审核状态。为确保广告内容的有效性与合法性,所有参与Ad Exchange竞价的 DSP平台必须将广告主和广告信息提前上传到 Ad Exchange 进行审核,审核通过后方可正常投放,如果DSP返回未经审核通过的广告,将直接被过滤不会被展现。
API 通过用户授权令牌(token)来做权限验证,授权信息需要包含在 API 请求数据头中。
参数编码使用 UTF-8编码
API URL格式定义如下:
http://{host}/adx/{api_version}/${resource_name}/${resource_action}
其中api_version是版本(目前是v1),resource_name表示要操作的资源,resource_action表示对资源的操作方法。
resource_name目前包括两种资源:
操作资源 | 说明 |
---|---|
advertiser | 广告主 |
creative | 广告 |
resource_action目前包含的基本的操作方法有:
操作 | 说明 |
---|---|
add | 新增 |
update | 修改 |
audit_status | 获取审核状态 |
API 使用 JSON消息格式,通过 RESTFUL 的HTTP协议进行数据交换。
所有请求,使用POST方式,同时在Http header中需要设置Content_Type和鉴权信息,如下例:
Content-Type: application/json
Authorization: /* auth token here */
所有请求,参数均以JSON格式设置在 HTTP 请求的Body内,如下例:
{
"data": request_data
}
HTTP 返回码为200则请求成功,否则可能客户端或服务端产生了异常,可根据 HTTP 状态码判断错误的类型。
HTTP响应中包含了头部信息:Content-Type: application/json
。
响应信息包含在返回的JSON 数据中,包含本次操作的返回码和具体错误信息。响应信息分三部分内容,分别为状态码、说明和数据区。
对非数组形式的API请求,返回数据如下所示:
字段名称 | 类型 | 说明 |
---|---|---|
code | int | 错误码,非0为错误发生 |
message | string | 错误信息,若没有错,此字段返回success |
data | json array或json object | 返回信息 |
URL: http://{host}/adx/v1/advertiser
请求字段:
类型 | 是否数组类型 | 说明 |
---|---|---|
Advertiser | 否 | 广告主信息 |
请求类型Advertiser:
字段名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
advertiserId | string | 是 | dsp平台广告主唯一id |
name | string | 是 | 广告主名称 |
businessLicense | string | 是 | 广告主营业执照 |
qualification | string | 否 | 其他资质文件,多个资质文件需打包成压缩文件 |
industryType | int | 是 | 广告主行业类型,行业类型定义参见:行业定义 |
应答字段:
字段名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
code | int | 是 | 响应码,0为操作成功,非0操作异常 |
message | string | 否 | 响应说明,如果code非0返回错误原因 |
data | object | 否 | 批量操作响应信息 |
URL: http://{host}/adx/v1/advertiser/update
请求字段:
类型 | 是否数组类型 | 说明 |
---|---|---|
Advertiser | 否 | 广告主信息 |
请求类型Advertiser:
字段名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
advertiserId | string | 是 | dsp平台广告主唯一id |
name | string | 否 | 广告主名称 |
businessLicense | string | 否 | 广告主营业执照 |
qualification | string | 否 | 其他资质文件,多个资质文件需打包成压缩文件 |
industryType | int | 否 | 广告主行业类型,行业类型定义参见:行业定义 |
URL: http://{host}/adx/v1/advertiser/audit_status
请求字段:
类型 | 是否数组类型 | 说明 |
---|---|---|
string | 是 | dsp广告主id |
URL: http://{host}/adx/v1/creative
请求字段:
类型 | 是否数组类型 | 说明 |
---|---|---|
Creative | 否 | 广告信息 |
请求类型Creative:
字段名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
creativeId | string | 是 | 素材id, dsp平台唯一 |
advertiserId | string | 是 | dsp平台广告主id, dsp平台唯一 |
name | string | 是 | 广告名称 |
creativeType | int | 是 | 广告类型, 广告类型定义参见: 广告类型字典 |
creativeUrl | string | 否 | 素材url,非原生广告必填 |
string | 是 | 广告点击url | |
landingPage | string | 是 | 广告落地页地址 |
nativeAd | object | 否 | 原生广告对象,广告类型为原生广告必填, 参见:NativeAd |
NativeAd:
字段名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
title | string | 是 | 广告名称 |
icon | string | 是 | 广告icon |
desc | string | 否 | 广告描述 |
images | string array | 是 | 原生广告图片素材 |
URL: http://{host}/adx/v1/creative/update
请求字段:
类型 | 是否数组类型 | 说明 |
---|---|---|
Creative | 否 | 广告信息 |
请求类型Creative:
字段名称 | 类型 | 是否必填 | 说明 |
---|---|---|---|
creativeId | string | 是 | 素材id, dsp平台唯一 |
advertiserId | string | 是 | dsp平台广告主id, dsp平台唯一 |
name | string | 否 | 广告名称 |
creativeType | int | 否 | 广告类型, 广告类型定义参见: 广告类型字典 |
creativeUrl | string | 否 | 素材url,非原生广告必填 |
string | 否 | 广告点击url | |
landingPage | string | 否 | 广告落地页地址 |
nativeAd | object | 否 | 原生广告对象,广告类型为原生广告必填 |
URL: http://{host}/adx/v1/creative/audit_status
请求字段:
类型 | 是否数组类型 | 说明 |
---|---|---|
string | 是 | dsp广告主id |
行业类型 | 类型id |
---|---|
不限 | 1 |
广告类型名称 | 类型id |
---|---|
图片(Banner) | 2 |
贴片(Video) | 5 |
信息流(Native) | 7 |
审核状态 | 说明 |
---|---|
1 | 审核通过 |
2 | 审核拒绝 |
3 | 待审核 |
{
"advertiserId":"105",
"name":"乐元素12",
"businessLicense":"http://image.google.com/x.jpg",
"qualification": "http://qulification.url",
"industryType": 5
}
{
"code":1,
"msg":"广告主名称不能为空"
}
{
"advertiserId":"105",
"name":"完美世界"
}
{
"code":1,
"msg":"广告主名称不能为空"
}
[
"105",
"103",
"1110"
]
{
"code":0,
"data":
[
{"103":{"autidStatus":3,"auditMsg":"审核备注/拒绝原因"}},
{"105":{"autidStatus":3, "auditMsg":"xxxxxx"}}
],
"msg":"success"
}