# 基本信息

# 法律声明

客户在与麦晗签署了《商业合作保密协议》后,麦晗将开通客户调⽤API的权限并向客户提供本⽂文档,作为其与mAX广告平台对接的指引⽂文档。未经麦晗书⾯许可,不得以任何形式向第三⽅披露、泄露有关本⽂文档的任何内容。麦晗拥有修改、调整、增补本⽂文件的权利,并在法律允许范围内对本⽂文档拥有最终解释权。

# 1. 关于文档

本文档作为DSP与麦晗程序化广告交易平台(以下简称“mAX”)进行对接的指引文档。主要包括三个部分:

对接流程:阅读对象为DSP的商务人员。该部分说明了DSP与mAX对接的流程和步骤。

Buyer API: 阅读对象为DSP的产品和开发人员。该部分详细描述了DSP向mAX上传/修改广告主/素材信息以及查询广告主/素材审核状态的接口。

实时竞价RTB接口: 阅读对象为DSP的产品和开发人员。该部分详细描述了DSP参与mAX实时竞价的接口协议。

# 2. 背景知识

本API文档所涉及接口均遵循HTTP协议,请求和响应数据格式如无特殊说明均为JSON,您可以使用任何支持HTTP协议和JSON格式的编程语言开发应用程序。

有关标准HTTP协议,可参考 RFC2616 (opens new window)维基百科 (opens new window)-HTTP (opens new window) 相关介绍。有关JSON数据格式,可参考 JSON.ORG (opens new window)维基百科–JSON (opens new window) 相关介绍。

# 3. 对接流程

1、申请并签署协议; 2、开通API: 按要求︎提供需要的相关信息后获得相应的API测试授权; 3、开发对接: 对接过程中如果遇到疑问,可联系运营接⼝人安排相关的产品和技术答疑;

4、测试联调: 在开发完成后,mAX提供测试环境与外部DSP进行测试环境联调,包括Buyer API和实时竞价RTB接口两部分的测试,测试过程中将会向DSP提供测试环境DSPID及授权令牌(TOKEN);

5、正式环境上线: 测试环境联调通过后,向运营接⼝⼈申请线上正式的授权,正式环境对接完成

# 4. Buyer API

本章节将详细介绍DSP如何使用Buyer API 与mAX进行交互,提交/修改广告主/素材信息,查询广告主/广告审核状态。为确保广告内容的有效性与合法性,所有参与mAX竞价的DSP平台必须将广告主和素材信息提前上传到mAX进行审核,审核通过后方可正常投放,如果DSP返回未经审核通过的广告,将直接被过滤不会被展现。

# 4.1 通用声明

# 4.1.1 权限认证

API 通过授权令牌(TOKEN)和dsp_id进行权限控制。dsp_id和token需要在每次请求时通过请求头传入。

# 4.1.2 编码方式

若无特殊说明或响应头中的Content-Type未指定编码,请求和响应中的字节编码均使用 UTF-8(无 BOM 头)。

# 4.1.3 URL定义

请求URL参考RESTful风格,约定了使用的协议、模块、版本、资源及动作,详细定义如下:

https://{myhayo.max.domain}/<MODULE>/<SUBMODULE>/<API_VERSION>/<RESOURCE_NAME>/<RESOURCE_ACTION>

其中:

  • 协议:使用HTTPS
  • MODULE: dsp
  • SUBMODULE: api
  • API_VERSION:版本号,当前版本号码为 v1
  • RESOURCE_NAME:表示要操作的资源,如creative
  • RESOURCE_ACTION:表示对资源的动作,如add

RESOURCE_NAME支持的资源示例如下:

资源 描述
advertiser 广告主
creative 素材

RESOURCE_ACTION支持的基本动作示例如下:

操作 描述
add 新增
edit 修改
get_review_status 获取审核状态
# 4.1.4 API请求

HTTP Method

调用方应设置HTTP Method为 POST/GET。

HTTP Header

调用方应遵循HTTP协议设置相应的 Header,目前支持的Header有:dsp_id、Authorization、Content-Type。dsp_id用于传递mAX为调用发分配的dspid,Authorization用于传递授权令牌(TOKEN),Content-Type用于指定数据格式。本章节中Content-Type应为application/json。

HTTP Header示例

dsp_id: 10001
Authorization: Bearer <TOKEN>
Content-Type: application/json
# 4.1.5 API响应

HTTP状态码

支持HTTP标准状态码,具体如下:

状态码 名称 描述
200 成功 当 API 请求被正确处理,且能按设计获取结果时,返回该状态码;亦适用于批量接口返回部分结果
3xx 跳转 在特定情况下,API 可能会返回这些状态码,建议调用方按照 HTTP 标准来处理
4xx 客户端错误 由客户端原因造成的错误
5xx 服务器端错误 API 或其下层服务发生内部错误

其中,4xx 和 5xx 的状态码仅用于辅助调用方快速识别问题,不作为包含实际语义的错误码,若有调整也不另行通知,实际操作结果以API返回的数据为准。调用方也应能够识别和处理由于网络异常等因素导致的,由非API 服务返回的 HTTP 状态码,如 504 Gateway Timeout 等。

HTTP Header

响应会根据接口要求设置Content-Type。本章节中Content-Type均设置为application/json。

HTTP Body

响应的JSON数据中包含三部分内容,分别为返回码、返回信息和数据,如下表所示:

名称 类型 必填 描述
code int 返回码: 200表示成功,其他表示失败。具体见返回码列表
msg string 返回信息:若有错误,此字段为详细的错误信息。
data json array 或 json object 返回结果

# 4.2 广告主

使用接口进行广告主上传需要先获取由麦晗分配的dsp_id与token,该dsp_id与token同样适用于素材上传接口。

目前提供三个接口:广告主上传接口、广告主更新接口、广告主审核状态查询接口。

# 4.2.1 广告主上传接口

DSP通过http post请求广告主上传接口,进行信息及文件上传。广告主上传信息参数包括广告主ID,广告主名称,行业信息及资质相关附件。

接口地址:http://{myhayo.max.domain}/dsp/api/v1/advertiser/add

请求方法:POST

请求字段

名称 类型 必填 描述
advertiser_id String 广告主唯一id
name String 广告主名称。请确保此名称与客户营业执照上的名称一致,否则会影响该广告主的审核。
industry_id String 行业分类id,见附录【广告主行业分类】
qualifices JsonArray 广告主资质,图片链接

请求示例

{
    "advertiser_id": "11",
	"name": "这是一个测试的广告主",
    "industry_id": "2353",
	"qualifices": [{
        "name": "DSP广告业务承揽函",
        "file_url": "http://www.test.com/_163288776155e56ad34a50e95b3cfd02e812d7955f.png"
    },
    {
        "name": "营业资质",
        "file_url": "http://www.test.com/_1629885437d1ab2a4d1e1cf434c016973b39ae5d8c.jpg"
    }]
}

返回结果

名称 类型 描述
advertiser_id String 创建成功返回广告主id

返回示例

{
 "msg": "操作成功",
 "trace_id": "cf909b5b3553492e841347b33ff8da45",
 "code": 200,
 "data": {
     "advertiser_id": "17"
 }
}
# 4.2.2 广告主修改接口

接口地址:http://{myhayo.max.domain}/dsp/api/v1/advertiser/edit

请求方法:POST

请求字段

名称 类型 必填 描述
advertiser_id String 广告主id,不可修改
name String 广告主名称
industry_id String 行业分类
qualifices JsonArray 覆盖之前所有资质

请求示例

{
    "advertiser_id": "17",
	"qualifices": [{
        "name": "DSP广告业务承揽函",
        "file_url": "http://www.test.com/_163288776155e56ad34a50e95b3cfd02e812d7955f.png"
    },
    {
        "name": "营业资质",
        "file_url": "http://www.test.com/_1629885437d1ab2a4d1e1cf434c016973b39ae5d8c.jpg"
    }]
}

返回结果

名称 类型 描述
advertiser_id int 创建成功返回广告主id

返回示例

{
 "msg": "操作成功",
 "trace_id": "cf909b5b3553492e841347b33ff8da45",
 "code": 200,
 "data": {
     "advertiser_id": 17
 }
}
# 4.2.3 广告主审核状态查询接口

通过http get请求进行查询。广告主上传成功后即可通过该广告主ID进行审核状态查询,审核通过后即可使用该广告主进行素材上传。

接口地址:http://{myhayo.max.domain}/dsp/api/v1/advertiser/get_review_status

请求方法:GET

请求字段

名称 类型 必填 描述
advertiser_id int 上传广告主成功后返回的advertiser_id

请求示例:

http://{myhayo.max.domain}/dsp/api/v1/advertiser/get_review_status?advertiser_id=17

返回结果:

名称 类型 描述
advertiser_id int 上传广告主返回的广告主id
status String 审核结果见附录【广告主审核状态】
reason String 拒绝原因,状态为拒绝时返回

返回示例:

{
 "msg": "操作成功",
 "trace_id": "83a777b8c68945e58eae71604cdd34bc",
  "code": 200,
  "data": {
     "advertiser_id": 17,
     "status": "APPROVED"
   }
}

# 4.3 素材

目前提供三个接口:素材上传接口、素材更新接口、素材审核状态查询接口。

# 4.3.1 素材上传接口

接口地址:http://{myhayo.max.domain}/dsp/api/v1/creative/add

请求方法:POST

请求字段

名称 类型 必填 描述
advertiser_id String 广告主id
creative_id String 素材唯一id,请确保该id为DSP层级下唯一,不会出现不同的广告主有相同的creative_id
click_url String 点击广告后着陆地址
detail_page String 详情页,点击非交互按钮区域,跳转到产品详情页。信息流(图文& 视频)、猜你喜欢、视频关联位小图文 广告、焦点图(大 图&视频)以及开机屏 android 端下载情况下必填(否则会出现点击后无反应的情况)。 投放 Android 端不允许填 app 下载地址。
ad_form int 创意类型,目前支持的创意类型见附录【创意类型】
creative_type int 广告形式,1:展示广告,2:视频广告
type int 目前仅支持RTB。1:RTB,默认1
platform int 1:PC, 2: Mobile,3:PAD,4:OTT,21:IOS, 22:Android
product_type int 链接类型,0: H5,1: 下载,2: 小程序,3: Deeplink, 4: Universal Link
cl_monitor_url array 点击监测,最多支持2条
im_monitor_url array 曝光监测,最多支持2条
deeplink String deeplink
template_id int 模版id
start_date datetime 开始时间,如:2021-11-18
end_date datetime 结束时间,如:2021-11-18
ad_content json object 素材内容,具体内容视广告样式而定,每种样式要求字段不同 ,根据template_id选填

ad_content:

名称 类型 描述
title String 标题
description String 描述
account String 品牌名称
apple_id String 应用 ID:iPhone 客户端 APP 在苹果 应用商店的 APP id
app_name String APP名称
button int 按钮文案。如:1-查看详情; 2-立即下载; 3-立即咨询; 4-立即抢购。
position String 广告展示位置。当上传通用浮 层-角标广告创意时,可填写该字段。备选项为 left、right,默认为 left
xapp_id String 小程序id
xapp_path String 小程序路径
video1 String 素材视频url。如果有多个,分别为video1,video2,video3...
image1 String 素材图片url。如果有多个,分别为image1,image2,image3...
logo String Logo
cover_pic1 String 封面图(背景图)
detail_pic1 String 应用详情图。如果有多个,分别为detail_pic1,detail_pic2,detail_pic3...
splash_type int 开屏类型。1:普通,2:摇一摇

请求示例

{
	"advertiser_id": "17",
    "creative_id": "16",
    "click_url": "https://www.test.com/",
    "detail_page": "https://www.test.com/v_2baf6bkf2s8.html?vfrm=pcw_home&vfrmblk=&vfrmrst=709181_%E4%BC%9A%E5%91%98%E7%89%B9%E6%9D%83_%E5%A4%A7%E5%89%A7%E6%8A%A2%E5%85%88%E7%9C%8B_area2",
    "ad_form": 13,
    "creative_type": 1,
    "type": 1,
    "platform": 21,
    "product_type": 0,
    "cl_monitor_url": ["http://cl.monitor.com"],
    "im_monitor_url": ["http://im.monitor.com"],
    "deeplink": "http://deeplink.com",
	"template_id": 111,
    "start_date": "2021-11-18",
    "end_date": "2021-11-20",
	"ad_content": {
        "title":"麦晗品牌会员日",
        "description ": "老客尊享买一送一 新客低至63元",
        "image1": "http://www.test.com/163520570_720x1280_11708301.jpg",
        "logo ": "http://www.test.com/1630195338_720x1280_40158301.jpg"
    }
}

返回结果

名称 类型 描述
creative_id int 创建成功返回素材id

返回示例

{
 "msg": "操作成功",
 "trace_id": "cf909b5b3553492e841347b33ff8da45",
 "code": 200,
 "data": {
     "creative_id": 17
 }
}
# 4.3.2 素材修改接口

接口地址:http://{myhayo.max.domain}/dsp/api/v1/creative/edit

请求方法:POST

请求字段

名称 类型 必填 描述
advertiser_id String 广告主id
creative_id String 素材id
click_url String 落地页
detail_page String 详情页
platform int 1:PC, 2: Mobile,3:PAD,4:OTT,21:IOS, 22:Android
cl_monitor_url array 点击监测,最多支持2条
im_monitor_url array 曝光监测,最多支持2条
deeplink String deeplink
start_date datetime 开始时间,如:2021-11-18
end_date datetime 结束时间,如:2021-11-18
ad_content json object 素材内容,具体内容视广告样式而定,每种样式要求字段不同

请求示例

{
	"advertiser_id": 17,
    "creative_id": 11,
    "click_url": "https://www.test.com/",
    "detail_page": "https://www.test.com/v_2baf6bkf2s8.html?vfrm=pcw_home&vfrmblk=&vfrmrst=709181_%E4%BC%9A%E5%91%98%E7%89%B9%E6%9D%83_%E5%A4%A7%E5%89%A7%E6%8A%A2%E5%85%88%E7%9C%8B_area2",
    "cl_monitor_url": ["http://cl.monitor.com"],
    "im_monitor_url": ["http://im.monitor.com"],
    "deeplink": "http://deeplink.com",
	"ad_content": {
        "title":"麦晗品牌会员日",
        "description ": "老客尊享买一送一 新客低至63元",
        "image1": "http://www.test.com/163520570_720x1280_11708301.jpg",
        "logo ": "http://www.test.com/1630195338_720x1280_40158301.jpg"
    }
}

返回结果

名称 类型 描述
creative_id int 创建成功返回素材id

返回示例

{
 "msg": "操作成功",
 "trace_id": "cf909b5b3553492e841347b33ff8da45",
 "code": 200,
 "data": {
     "creative_id": 17
 }
}
# 4.3.3 素材审核状态查询

通过http get请求进行查询。素材上传成功后即可通过该广告主ID和素材ID进行审核状态查询,审核通过后即可投放。

接口地址:http://{myhayo.max.domain}/dsp/api/v1/creative/get_review_status

请求方法:GET

请求字段

名称 类型 必填 描述
advertiser_id String 广告主id
creative_id String 上传素材成功后返回的creative_id

请求示例:

http://{myhayo.max.domain}/dsp/api/v1/creative/get_review_status?advertiser_id=17&creative_id=29

返回结果:

名称 类型 描述
creative_id int 素材id
status String 审核结果见附录【素材审核状态】
reason String 拒绝原因,状态为拒绝时返回

返回示例:

{
    "msg": "操作成功",
    "trace_id": "841ac88bb6b047b19bebdc0a08171039",
    "code": 200,
    "data": {
        "creative_id": 29,
        "status": "PENDING"
    }
}

# 5 附录

# 【广告主行业分类】

描述
2 交通航空
3 电子商务
4 房地产
5 时装
6 化妆品
7 家居用品
8 教育
9 保险
10 投资理财
11 高级消费品
12 专业服务
13 纤体美容
14 娱乐
15 电脑
16 汽车
17 饮食
19 医疗保健
21 家具
22 组织
23 电子产品
24 外汇
25 黄金贸易
27 钟表珠宝
28 酒店
29 物流
30 制造
32 第三方支付平台
33 住宅服务
35 餐馆
36 证券
37 电讯
38 运动用品
39 贵金属贸易
40 其他
41 零食百货
42 旅游

# 【创意类型】

描述
1 横幅
2 暂停
3 浮层
4 信息流
5 开屏
6 插屏
7 焦点图
8 贴片
9 激励视频
10 屏保图片
11 开机视频
12 前贴
13 视频关联位
14 猜你喜欢

# 【广告形式】

描述
1 展示广告
2 视频广告

# 【投放平台】

描述
1 PC
2 MOBILE
3 PAD
4 OTT
21 IOS
22 Android

# 【链接类型】

描述
0 H5
1 下载
2 小程序
3 Deeplink
4 Universal Link

# 【广告主审核状态】

描述
APPROVED 审核通过
PENDING 待审核
REJECTED 拒绝

# 【素材审核状态】

描述
APPROVED 审核通过
PENDING 待审核
REJECTED 拒绝
OFF 下线

# 【错误码】

描述
200 成功
400 错误的请求
401 未授权
403 访问受限
429 超出频次限制
500 系统异常
10000 系统繁忙,请稍后重试
10004 认证失败,请检查参数是否正确
20002 参数错误
20003 数据保存失败
20005 字段必填
30001 广告主不存在
30009 图片或视频地址无法访问
30021 素材不存在
30022 图片大小超出限制
30023 图片分辨率不正确
30024 图片类型不正确
30025 文案长度超出限制
30026 对应的广告位不存在,请检查参数是否正确或联系运营人员
30034 视频大小超出限制
30035 视频类型不正确
30036 视频时长不正确
30039 字段值有误,请查看文档
30040 视频分辨率不正确
30042 无效的platform