DAPP Online Api 对接文档
目录
1.对接流程
- 商务洽谈。
- DAPP 系统分配: sid, token, app_id, adslot_id。
- 接入方式参考文档。
- 联调。
2.注意事项
Publisher 在进行广告请求的时候尽可能多地填写可选参数,能匹配到更适合用户的广告,从而提升转化率,进而提高开发者收入。但如果存在获取不到的参数,不可随意填写,会影响广告的匹配程度,间接影响收入。
广告请求允许服务端发起,但必须带上 客户端 的真实IP,同时展示、点击、转化上报必须由 客户端 直接上报到平台。否则会被判定为作弊流量,影响结算。
3.API
3.1 广告请求
3.1.1 请求URL
PS: “线上URl的” sid 和 token 均为 DAPP 分配。
3.1.2 请求方式
POST
Header: Content-Type Value: application/json
3.1.3 请求参数
| Parent Object | Object / Parameter | Type | Required | Description |
|---|
| id | string | Yes | Publisher 自己定义的本次广告请求的唯一ID |
| app | object | Yes | APP相关信息的对象 |
| app | app_id | string | Yes | APP 唯一ID。由 DAPP 生成并分配。测试 app_id 为 95caecceb1066c2b52665a2c85a959e4 |
| app | app_bundle_id | string | Yes | APP的唯一标识。IOS为bundle id,Android为package。 |
| app | app_name | string | Yes | APP Name。 |
| app | store_url | string | Recommend | APP 的安装应用市场地址。 |
| app | app_category | string | No | APP的类型,枚举类型。枚举表格请见 5.1 APP Category Type |
| app | app_interaction_type | array | No | APP支持的广告转化交互。枚举表格请见 5.2 APP Interaction Type |
| adslot | object | Yes | 广告位相关信息的对象 |
| adslot | adslot_id | string | Yes | 广告位ID,由 DAPP 生成并分配。测试 adslot_id,banner广告为 12001,native广告为 12002 |
| adslot | banner | object | No | Banner/Interstitial 广告位相关信息的对象。 |
| adslot.banner | width | int | Yes | Banner/Interstitial 广告位的宽度。 |
| adslot.banner | height | int | Yes | Banner/Interstitial 广告位的高度。 |
| adslot.banner | position | int | No | Banner/Interstitial 广告位的位置。枚举表格请见 5.3 Banner Type |
| adslot | native | object | No | Native 广告位相关信息的对象。 |
| adslot.native | plcmttype | int | Yes | 原生广告位类型【默认为1】0为未知,1为信息流。 |
| adslot.native | assets | array | Yes | 广告素材相关信息的数组。用于配置所需要的素材类型。含 title、img、data |
| adslot.native.assets | id | int | Yes | 原生广告素材请求ID,由Publisher自己定义。 |
| adslot.native.assets | required | int | Yes | 原生广告素材是否为必须,0为否,1为是。 |
| adslot.native.assets | title | object | No | 原生广告素材的 Title 信息。 |
| adslot.native.assets.title | len | int | No | 原生广告素材 Title 的最大长度限制。 |
| adslot.native.assets | img | object | No | 原生广告素材的 Image 信息。 |
| adslot.native.assets.img | type | int | Yes | 原生广告素材 图片 的类型。1为ICON,2为LOGO,3为主题图。 |
| adslot.native.assets.img | width | int | Yes | 原生广告素材 图片 的宽度。 |
| adslot.native.assets.img | height | int | Yes | 原生广告素材 图片 的高度。 |
| adslot.native.assets | data | object | No | 原生广告素材的 Data 信息。主要为广告的内容文案或按钮描述文案 |
| adslot.native.assets.data | type | int | Yes | 原生广告素材 文案 的类型。枚举表格请见 5.4 Assets Data Type |
| adslot.native.assets.data | len | int | No | 原生广告素材 文案 的最大长度限制。 |
| user | object | Yes | 用户相关信息的对象 |
| user | user_id | string | Yes | Publisher 对用户的唯一标识。 |
| user | ip | string | Yes | 用户(设备)IP地址,点分十进制字符串。非服务端IP地址。 |
| user | gender | int | Yes | 性别。0为未知,1为男性,2为女性。 |
| user | yob | int | No | 出生年份,四位数字。 |
| device | object | Yes | 设备相关信息的对象 |
| device | user_agent | string | Yes | User Agent |
| device | device_id | array | Yes | 设备的唯一标识 |
| device.device_id | type | int | Yes | 移动设备唯一ID的类型。0为未知,1为IMEI,2为MAC地址 |
| device.device_id | id | string | Yes | 对应的移动设备唯一ID的值 |
| device | advertising_id | object | Yes | 广告ID对象 |
| device.advertising_id | type | int | Yes | 广告ID类型。0为未知,4为Android,ID内容为GAID;5为IOS,ID内容为IDFA |
| device.advertising_id | id | string | Yes | 对应的广告ID的值 |
| device | geo | object | Recommend | 坐标信息 |
| device.geo | latitude | float | Recommend | 维度 |
| device.geo | longitude | float | Recommend | 经度 |
| device.geo | country | string | Recommend | 国家代码,使用 ISO-3166-1-alpha-3 标准 |
| device.geo | Region | string | Recommend | 地区代码,使用 ISO-3166-2 标准。美国使用2位 state code。 |
| device | device_type | int | Yes | 设备类型,枚举表格请见 5.5 Device Type |
| device | language | string | Yes | 语言。枚举表格请见 5.6 Language |
| device | os | int | Yes | 系统。0为未知,1为IOS,2为Android |
| device | os_version | string | Yes | 系统版本 |
| device | brand | string | No | 设备品牌 |
| device | model | string | No | 设备型号 |
| device | screen_width | int | Recommend | 设备屏幕宽度 |
| device | screen_height | int | Recommend | 设备屏幕高度 |
| device | screen_density | int | No | 设备屏幕像素密度 |
| device | carrier_id | string | Yes | 运营商ID。前三位为 Mobile Country Code,后两位为 Mobile Network Code。EG: "310-005" 代表 Verizon Wireless CDMA in the USA 枚举表格请见 MCC & MNC Code |
| device | wireless_network_type | int | Yes | 网络类型 0为未知,1为WIFI,2为2G,3为3G,4为4G,5为5G |
| regs | object | Yes | 描述任何适用于该请求的法律,政府或者工业管控条例相关信息的对象。 |
| regs | coppa | int | No | 标记该请求是否受美国COPPA法案约束,0为否,1为是。该参数请谨慎使用,如果无法确定则不填。填1,则要补充详细的用户信息,否则会影响填充率。 |
| regs | gdpr | int | No | 标记该请求是否受欧盟GDPR法案约束,0为否,1为是。该参数请谨慎使用,如果无法确定则不填。填1,则要补充详细的用户信息,否则会影响填充率。 |
| tmax | int | No | 允许返回结果的最长时间(单位:毫秒)避免超时 |
| secure | int | No | 标记是否使用安全的https url。0为非安全,1为安全。如果省略表示状态未知,默认认为不安全的http也支持。 |
3.1.4 请求的例子
3.1.4.1 Banner / Interstitial 广告请求的例子
{
"id": "fgasikutgasurebuifgsiuafgisua",
"app": {
"app_id": "95caecceb1066c2b52665a2c85a959e4",
"app_bundle_id": "4767426574632874",
"app_name": "Es File",
"store_url": "https://play.google.com/store/apps/details?id=com.estrongs.android.pop",
"app_category": "IAB20",
"app_interaction_type": [
1,
2
]
},
"adslot": {
"adslot_id": "12001",
"banner": {
"width": 320,
"height": 50,
"position": 1
}
},
"user": {
"user_id": "dsygfyad",
"ip": "106.38.48.52",
"gender": 1,
"yob": 1990
},
"device": {
"user_agent": "Mozilla/5.0*****",
"device_id": [
{
"type": 1,
"id": "2536643785678345673845"
},
{
"type": 2,
"id": "5C-FF-35-0B-95-B5"
}
],
"advertising_id": {
"type": 4,
"id": "ghdakgdhajgdajydg"
},
"geo": {
"latitude": 56.223,
"longitude": 112.848
},
"device_type": 1,
"os": 1,
"language": "zh",
"os_version": "9.0.1",
"brand": "xiaomi",
"model": "hongmi",
"screen_width": 640,
"screen_height": 1136,
"screen_density": 326,
"carrier_id": "460-000",
"wireless_network_type": 4
},
"regs": {
"coppa": 0,
"gdpr": 0
},
"tmax": 200,
"secure": 1
}
3.1.4.1 Native 广告请求的例子
{
"id": "fgasikutgasurebuifgsiuafgisua",
"app": {
"app_id": "95caecceb1066c2b52665a2c85a959e4",
"app_bundle_id": "4767426574632874",
"app_name": "Es File",
"store_url": "https://play.google.com/store/apps/details?id=com.estrongs.android.pop",
"app_category": "IAB20",
"app_interaction_type": [
2
]
},
"adslot": {
"adslot_id": "12002",
"native": {
"plcmttype": 1,
"assets": [
{
"id": 1,
"required": 1,
"title": {
"len": 256
}
},
{
"id": 2,
"required": 1,
"img": {
"type": 1,
"width": 75,
"height": 75
}
},
{
"id": 3,
"required": 1,
"img": {
"type": 3,
"width": 320,
"height": 240
}
},
{
"id": 4,
"required": 1,
"data": {
"type": 2,
"len": 256
}
}
]
}
},
"user": {
"user_id": "dsygfyad",
"ip": "106.38.48.52",
"gender": 1,
"yob": 1990
},
"device": {
"user_agent": "Mozilla/5.0 (Linux; U; Android 2.3.6; it-it; GT-S5570I Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 (Mobile; afma-sdk-a-v6.1.0),gzip(gfe)",
"device_id": [
{
"type": 1,
"id": "2536643785678345673845"
},
{
"type": 2,
"id": "5C-FF-35-0B-95-B5"
}
],
"advertising_id": {
"type": 4,
"id": "dfc59c16-4435-48cb-98a9-9bdd06108077"
},
"geo": {
"latitude": 56.223,
"longitude": 112.848
},
"device_type": 1,
"os": 1,
"language": "CN",
"os_version": "9.0.1",
"brand": "xiaomi",
"model": "hongmi",
"screen_width": 640,
"screen_height": 1136,
"screen_density": 326,
"carrier_id": "460-000",
"wireless_network_type": 4
},
"regs": {
"coppa": 0,
"gdpr": 0
},
"tmax": 200,
"secure": 1
}
3.1.5 返回参数:
| Parent Object | Object / Parameter | Type | Required | Description |
|---|
| err_no | int | Yes | 错误码。枚举表格请见 5.7 Err No and Msg |
| err_msg | string | Yes | 错误信息 |
| data | id | string | Yes | 本次广告请求的ID,由 DAPP 生成 |
| data | ads | array | No | 广告数组 |
| data.ads | banner_ad | object | No | Banner / Interstitial 广告信息对象 |
| data.ads.banner_ad | html_snippet | string | Yes | Banner / Interstitial 广告HTML代码块 |
| data.ads.banner_ad | img_url | string | No | Banner / Interstitial 广告图片 URL |
| data.ads.banner_ad | width | int | Yes | Banner / Interstitial 广告宽度 |
| data.ads.banner_ad | height | int | Yes | Banner / Interstitial 广高宽度 |
| data.ads.banner_ad | imptrackers | array | Yes | Banner / Interstitial 展示上报数组 |
| data.ads | native_ad | object | No | Native 广告信息对象 |
| data.ads.native_ad | assets | array | Yes | Native 广告信息对象 |
| data.ads.native_ad.assets | id | int | Yes | Native 广告素材请求ID,由Publisher自己定义。 |
| data.ads.native_ad.assets | required | int | Yes | Native 广告素材是否为必须,0为否,1为是。 |
| data.ads.native_ad.assets | title | object | No | Native 广告素材的 Title 信息对象。 |
| data.ads.native_ad.assets.title | title | string | No | Native 广告素材 Title 的内容 |
| data.ads.native_ad.assets | img | object | No | Native 广告素材的 Image 信息对象。 |
| data.ads.native_ad.assets.img | width | int | Yes | Native 广告素材 Image 的宽度。 |
| data.ads.native_ad.assets.img | height | int | Yes | Native 广告素材 Image 的高度。 |
| data.ads.native_ad.assets.img | url | string | Yes | Native 广告素材 Image 的URL。 |
| data.ads.native_ad.assets | data | object | No | Native 广告素材的 Data 信息对象。 |
| data.ads.native_ad.assets.data | value | string | Yes | Native 广告素材的 Data 信息的内容 |
| data.ads.native_ad | target_url | string | Yes | Native 广告的点击(Tracking)URL |
| data.ads.native_ad | imptrackers | array | Yes | Native 广告的展示上报数组,广告展示发生后需要遍历数组并逐个上报 |
| data.ads.native_ad | clicktrackers | array | Yes | Native 广告的点击上报数组,广告点击发生后需要遍历数组并逐个上报 |
| data.ads | deeplink_info | object | No | Deeplink 信息对象 |
| data.ads.deeplink_info | deeplink_url | string | Yes | Deeplink Url |
| data.ads.deeplink_info | fallback_url | string | Yes | Deeplink Fallback Url。当deeplink唤醒失败时使用 |
3.1.5.1 Banner / Interstitial 广告返回的例子
{
"data": {
"ads": [
{
"banner_ad": {
"html_snippet": "<!DOCTYPE html> <html> <head> <title></title> <meta name='viewport' content='user-scalable=0, minimum-scale=1.0, maximum- scale=1.0'/> <style type='text/css'> body {margin: 0; overflow: hidden;} </style> </head> <body> <style>.im_1664_ads-lbl,.im_1664_ads-lbl img{position:absolute;bottom:0;right:0;pointer-events:none;z-index:1000000000000000}.im_1664_ads-lbl img{width:26px;height:16px}</style> <div class='im_1664_ads-lbl'><img src='http://i.l.inmobicdn.net/ifctpads/IFC/CCN/assets/AdsiconHDPI1472034285.png'></div> <style> .inmC { margin-left: auto; margin-right: auto; display: block; }</style> <a href='https://play.google.com/store/apps/details?id=com.offline.miniocr' target='_top' style='text-decoration:none;'> <img border='0' class='inmC' src='http://dev-report.doadx.com/static/img/320_50.jpg' height='50' width='320' /> </a> <style>body{margin:0}</style> <img src='http://et-cn.w.inmobi.com/c.asm/C/t/ectjuimhah/1blu/w/4k/lx/m/r/0/0/ eyJVSUQiOiJGQzBGMzQ0NS0wRkNFLTQwRUUtODY0Ni0zQ0E4QkIyNjYzRUEiLCJJREEiOiJGQzBGMzQ0NS0wRkNFLTQwRUUtODY0Ni0zQ0E4QkIy NjYzRUEifQ~~/ca0d9776-0159-1000-ee66-38a46c1e0093/-1/411p/-1/0/0/40.71269989013672,74.00589752197266,0.0/13779426/NW/2t/0/api/3.0.0/dir/ Y29tLmlubW9iaS5kZW1vYXBw/ FvCTCRYAFta48rroVFcAAAAAAADwPzQAEhg4NUxNdTREejQ0MmxZS3lZSXpNWHVkMG4yZUZuVEUxZ0gzZ1haQzlzS3g2ZC9tM2Qwd0grc3hRPT0YB kJBTk5FUhwUABQCHBwW_7-36r-itPJrFtndsvyC1-PgIwAWxN7fpp2TiM- yARUAEgAAOQUiFAAWloqp6t9RKD1wZXJmLWFkcG9vbC1za3lob29rcHJvZDUwMDJfcGVyZl9oa2cxX3BlcmYtYWRwb29sX3NreWhvb2twcm9kFAQSJpr 5FhwVAgAsFQIAUwEm8JMJFQASGAUwLjA3NQA=/-1/AA==/7/844b2836?m=18' width='1' height='1' style='display:none;' /> </body></html><img src=\"https://apac-trk.doadx.com/imp?&info=w4CM90WYmAjLw0TbmIDO5gjLw0TbiZSM9knYmETPmBnJOh0Q9MmJxADMyETPwZCNllTN5EWN4MmMhVjN2ITNiJzY2YDMxIWZjNWZhNWN50TYmgjMmRmNwADMlNzMzEWY5MWMyEDOllTZ3IGM0MGZycjY9Enc_w4nc&price=${AUCTION_PRICE}\" width=\"1\" height=\"1\" style=\"display:none;\">",
"img_url": "",
"width": 320,
"imptrackers": [
"http://apac-trk.doadx.com/imp?&info==AjLw0TbmAjLw0TbiZCMwETP5JmJy0jZwZSPjZCMxkjM2ETPwZCNllTN5EWN4MmMhVjN2ITNiJzY2YDMxIWZjNWZhNWN50TYmcDZ4ATZ2YGNilTOidjZkFTYzQGZzUmM4ADO1M2NjVGZ9Enc_"
],
"height": 50
}
}
],
"id": "fgasikutgasurebuifgsiuafgisua"
},
"err_msg": "Success",
"err_no": 1000
}
3.1.5.1 Native 广告返回的例子
{
"data": {
"ads": [
{
"native_ad": {
"assets": [
{
"id": 1,
"title": {
"title": "The Vicious Cycle Of Vaginal Infections"
},
"required": 1
},
{
"img": {
"width": 50,
"url": "https://images2.zemanta.com/p/srv/sha/00/af/6c/28902411fa70b73aca75b2da2730553a99.jpg?w=75&h=75&fit=crop&crop=faces&fm=jpg",
"height": 50
},
"id": 2,
"required": 1
},
{
"img": {
"width": 600,
"url": "https://images2.zemanta.com/p/srv/sha/00/af/6c/28902411fa70b73aca75b2da2730553a99.jpg?w=75&h=75&fit=crop&crop=faces&fm=jpg",
"height": 280
},
"id": 3,
"required": 1
},
{
"data": {
"value": "Restore and maintain a healthy balance of good bacteria and yeast for a healthy vagina"
},
"id": 4,
"required": 1
}
],
"clicktrackers": [
"https://do_global/track/url",
"https://apac-trk.doadx.com/clk?&info=w4CM90WYmAjLw0TbmIDO5gjLw0TbiZSM9knYmETPmBnJOh0Q9MmJyADMyETPwZCNllTN5EWN4MmMhVjN2ITNiJzY2YDMxIWZjNWZhNWN50TYmAjNkZWO1cjN1cDOmJWZjJ2MjFGNwQzMzYjM5ETNidDM9Enc_w4nc&price=${AUCTION_PRICE}"
],
"target_url": "https://r1.zemanta.com/r/u1qm61onnbb4/b1_rubicon/478563/7124557/C4NAONQHHBYL3S7WLF4ZSZFV2GCZFYDDINNXKVCYIRNEUYD76UZIU4TKSAJW5I6DUMYFEUW4AAP7HS7NCZP73SQOS4HY3VM5P76JCBIBX2GK7HGI2H5D3ZW2WT7XPKB2JM3G5VQUBQZSLQEITY7G2Y3D4XR7PO5YSC7WMQPTQVI3VIVYDYVSUMEIHQFGKDQZ55VIVS7AH73YDIBYA4O7PS4QPYK2YTNWBJJR4FCXMHCWD2X2DGSBYZGUFRWXOMA7C4UUZN2X2HWAXIT4PAZN7EYS5M7JQC2MGYPXC4NIB7XX476P7JOKRDVAXQRZGBHPCFB2JID3ZUBK77TXGWWS2J5L32MWS2R3FGYIXFNUOCGWEXKX765X5OAA4HL35XPQWEBWX2JLNM4O7T6UJ2YCDTBDH5FXATJUOO2OI7SGHQKTZOCT2PKYMEHAURNFNYTQ5FZNIE5FTAIGGIXCOWIWKWZBPU/",
"imptrackers": [
"https://apac-trk.doadx.com/imp?&info=w4CM90WYmAjLw0TbmIDO5gjLw0TbiZSM9knYmETPmBnJOh0Q9MmJyADMyETPwZCNllTN5EWN4MmMhVjN2ITNiJzY2YDMxIWZjNWZhNWN50TYmAjNkZWO1cjN1cDOmJWZjJ2MjFGNwQzMzYjM5ETNidDM9Enc_w4nc&price=${AUCTION_PRICE}"
]
}
}
],
"id": "fgasikutgasurebuifgsiuafgisua"
},
"err_msg": "Success",
"err_no": 1000
}
4. JS Tag
4.1 注意事项
- Doadx JS Tag 目前支持Banner、Interstitial广告,暂不支持Native广告。
- [adDivId] 是Publisher定义的放置广告的DIV ID,请确保DIV ID的唯一性。
- [sid] [token] [app_id] [adslot_id] 由 DAPP 生成并分配,需Publisher自行替换。
- [app_bundle_id] 是APP的唯一标识,需Publisher自行替换。
- [width] [height] 是广告位的宽度、高度,需Publisher自行替换。
4.2 MoPub 接入步骤
Mopub JavaScript Network HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
</head>
<body>
<div id="[adDivId]"></div>
<script>
var data = {
"adDivId": "[adDivId]",
"sid": "[sid]",
"token": "[token]",
"app": {
"app_id": "[app_id]",
"app_bundle_id": "[app_bundle_id]"
},
"adslot": {
"adslot_id": "[adslot_id]",
"banner": {
"width": [width],
"height": [height]
}
},
"user": {
"ip": "%%IPADDRESS%%"
},
"device": {
"user_agent": "%%USERAGENT%%",
"device_id": [{
"id": "%eudid!"
}],
"advertising_id": {
"id": "%eudid!"
}
}
};
(function () {
var script = document.createElement('script');
script.onload = script.onreadystatechange = function () {
if (script.readyState && /loaded|complete/.test(script.readyState)) {
script.onload = script.onreadystatechange = undefined;
}
script = undefined;
DoadxJS.loadAd(data, function () {
console.log("SUCCESS");
}, function () {
loaded = true;
window.location = "mopub://failLoad";
});
};
script.onerror = function () {
script.onerror = undefined;
document.body.removeChild(script);
script = undefined;
};
script.type = 'text/javascript';
script.charset = 'UTF-8';
script.src = 'https://xyz.doadx.com/static/bundle.js?t=' + new Date().getTime();
document.body.appendChild(script);
})();
</script>
</body>
</html>
5.附录
5.1 APP Category Type
| value | Description |
|---|
| IAB1 | Arts & Entertainment |
| IAB2 | Automotive |
| IAB3 | Business |
| IAB4 | Careers |
| IAB5 | Education |
| IAB6 | Family & Parenting |
| IAB7 | Health & Fitness |
| IAB8 | Food & Drink |
| IAB9 | Hobbies & Interests |
| IAB10 | Home & Garden |
| IAB11 | Law, Gov’t & Politics |
| IAB12 | News |
| IAB13 | Personal Finance |
| IAB14 | Society |
| IAB15 | Science |
| IAB16 | Pets |
| IAB17 | Sports |
| IAB18 | Style & Fashion |
| IAB19 | Technology & Computing |
| IAB20 | Travel |
| IAB21 | Real Estate |
| IAB22 | Shopping |
| IAB23 | Religion & Spirituality |
| IAB24 | Uncategorized |
| IAB25 | Non-Standard Content |
| IAB26 | Illegal Content |
5.2 APP Interaction Type
| value | Description |
|---|
| 0 | 电话 |
| 1 | 下载 |
| 2 | 应用唤醒(Deeplink) |
5.3 Banner Type
| value | Description |
|---|
| 0 | 未知 |
| 1 | 页面的上半部分 |
2 | 动态展示,根据屏幕的尺寸可能展示也可能隐藏 |
| 3 | 页面的下半部分 |
| 4 | 头部 |
| 5 | 脚部 |
| 6 | 侧边栏 |
| 7 | 全屏 |
5.4 Assets Data Type
| value | Description |
|---|
| 2 | 广告描述内容 |
| 12 | 描述用于目标URL的“调用操作”按钮的描述性文本 |
| 其他 | 点击查看详细文档 |
5.5 Device Type
| value | Description |
|---|
| 0 | 未知 |
| 1 | 手机 |
| 2 | 平板 |
| 3 | 电视 |
| 4 | 其他外设 |
5.6 Language
| value | Description |
|---|
| zh | 中文 |
| en | 英语 |
| ja | 日语 |
| ko | 韩语 |
| de | 德语 |
| fr | 法语 |
| pt | 葡萄牙语 |
| it | 意大利语 |
5.7 Err No and Msg
| value | Description |
|---|
| 1000 | Sucess |
| 1001 | Token error |
| 1010 | Request JSON Body cannot be parsed correctly |
| 1011 | Adslot obj has an error or doesn't exist |
| 1012 | User obj has an error or doesn't exist |
| 1013 | App obj has an error or doesn't exist |
| 1014 | Device obj has an error or doesn't exist |
| 1015 | Reg obj has an error or doesn't exist |
| 2001 | hava no ad |