DAPP Online Api 对接文档

目录

1.对接流程

  1. 商务洽谈。
  2. DAPP 系统分配: sid, token, app_id, adslot_id。
  3. 接入方式参考文档。
  4. 联调。

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 ObjectObject / ParameterTypeRequiredDescription
idstringYesPublisher 自己定义的本次广告请求的唯一ID
appobjectYesAPP相关信息的对象
appapp_idstringYesAPP 唯一ID。由 DAPP 生成并分配。测试 app_id 为 95caecceb1066c2b52665a2c85a959e4
appapp_bundle_idstringYesAPP的唯一标识。IOS为bundle id,Android为package。
appapp_namestringYesAPP Name。
appstore_urlstringRecommendAPP 的安装应用市场地址。
appapp_categorystringNoAPP的类型,枚举类型。枚举表格请见 5.1 APP Category Type
appapp_interaction_typearrayNoAPP支持的广告转化交互。枚举表格请见 5.2 APP Interaction Type
adslotobjectYes广告位相关信息的对象
adslotadslot_idstringYes广告位ID,由 DAPP 生成并分配。测试 adslot_id,banner广告为 12001,native广告为 12002
adslotbannerobjectNoBanner/Interstitial 广告位相关信息的对象。
adslot.bannerwidthintYesBanner/Interstitial 广告位的宽度。
adslot.bannerheightintYesBanner/Interstitial 广告位的高度。
adslot.bannerpositionintNoBanner/Interstitial 广告位的位置。枚举表格请见 5.3 Banner Type
adslotnativeobjectNoNative 广告位相关信息的对象。
adslot.nativeplcmttypeintYes原生广告位类型【默认为1】0为未知,1为信息流。
adslot.nativeassetsarrayYes广告素材相关信息的数组。用于配置所需要的素材类型。含 title、img、data
adslot.native.assetsidintYes原生广告素材请求ID,由Publisher自己定义。
adslot.native.assetsrequiredintYes原生广告素材是否为必须,0为否,1为是。
adslot.native.assetstitleobjectNo原生广告素材的 Title 信息。
adslot.native.assets.titlelenintNo原生广告素材 Title 的最大长度限制。
adslot.native.assetsimgobjectNo原生广告素材的 Image 信息。
adslot.native.assets.imgtypeintYes原生广告素材 图片 的类型。1为ICON,2为LOGO,3为主题图。
adslot.native.assets.imgwidthintYes原生广告素材 图片 的宽度。
adslot.native.assets.imgheightintYes原生广告素材 图片 的高度。
adslot.native.assetsdataobjectNo原生广告素材的 Data 信息。主要为广告的内容文案或按钮描述文案
adslot.native.assets.datatypeintYes原生广告素材 文案 的类型。枚举表格请见 5.4 Assets Data Type
adslot.native.assets.datalenintNo原生广告素材 文案 的最大长度限制。
userobjectYes用户相关信息的对象
useruser_idstringYesPublisher 对用户的唯一标识。
useripstringYes用户(设备)IP地址,点分十进制字符串。非服务端IP地址。
usergenderintYes性别。0为未知,1为男性,2为女性。
useryobintNo出生年份,四位数字。
deviceobjectYes设备相关信息的对象
deviceuser_agentstringYesUser Agent
devicedevice_idarrayYes设备的唯一标识
device.device_idtypeintYes移动设备唯一ID的类型。0为未知,1为IMEI,2为MAC地址
device.device_ididstringYes对应的移动设备唯一ID的值
deviceadvertising_idobjectYes广告ID对象
device.advertising_idtypeintYes广告ID类型。0为未知,4为Android,ID内容为GAID;5为IOS,ID内容为IDFA
device.advertising_ididstringYes对应的广告ID的值
devicegeoobjectRecommend坐标信息
device.geolatitudefloatRecommend维度
device.geolongitudefloatRecommend经度
device.geocountrystringRecommend国家代码,使用 ISO-3166-1-alpha-3 标准
device.geoRegionstringRecommend地区代码,使用 ISO-3166-2 标准。美国使用2位 state code。
devicedevice_typeintYes设备类型,枚举表格请见 5.5 Device Type
devicelanguagestringYes语言。枚举表格请见 5.6 Language
deviceosintYes系统。0为未知,1为IOS,2为Android
deviceos_versionstringYes系统版本
devicebrandstringNo设备品牌
devicemodelstringNo设备型号
devicescreen_widthintRecommend设备屏幕宽度
devicescreen_heightintRecommend设备屏幕高度
devicescreen_densityintNo设备屏幕像素密度
devicecarrier_idstringYes运营商ID。前三位为 Mobile Country Code,后两位为 Mobile Network Code。EG: "310-005" 代表 Verizon Wireless CDMA in the USA 枚举表格请见 MCC & MNC Code
devicewireless_network_typeintYes网络类型 0为未知,1为WIFI,2为2G,3为3G,4为4G,5为5G
regsobjectYes描述任何适用于该请求的法律,政府或者工业管控条例相关信息的对象。
regscoppaintNo标记该请求是否受美国COPPA法案约束,0为否,1为是。该参数请谨慎使用,如果无法确定则不填。填1,则要补充详细的用户信息,否则会影响填充率。
regsgdprintNo标记该请求是否受欧盟GDPR法案约束,0为否,1为是。该参数请谨慎使用,如果无法确定则不填。填1,则要补充详细的用户信息,否则会影响填充率。
tmaxintNo允许返回结果的最长时间(单位:毫秒)避免超时
secureintNo标记是否使用安全的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 ObjectObject / ParameterTypeRequiredDescription
err_nointYes错误码。枚举表格请见 5.7 Err No and Msg
err_msgstringYes错误信息
dataidstringYes本次广告请求的ID,由 DAPP 生成
dataadsarrayNo广告数组
data.adsbanner_adobjectNoBanner / Interstitial 广告信息对象
data.ads.banner_adhtml_snippetstringYesBanner / Interstitial 广告HTML代码块
data.ads.banner_adimg_urlstringNoBanner / Interstitial 广告图片 URL
data.ads.banner_adwidthintYesBanner / Interstitial 广告宽度
data.ads.banner_adheightintYesBanner / Interstitial 广高宽度
data.ads.banner_adimptrackersarrayYesBanner / Interstitial 展示上报数组
data.adsnative_adobjectNoNative 广告信息对象
data.ads.native_adassetsarrayYesNative 广告信息对象
data.ads.native_ad.assetsidintYesNative 广告素材请求ID,由Publisher自己定义。
data.ads.native_ad.assetsrequiredintYesNative 广告素材是否为必须,0为否,1为是。
data.ads.native_ad.assetstitleobjectNoNative 广告素材的 Title 信息对象。
data.ads.native_ad.assets.titletitlestringNoNative 广告素材 Title 的内容
data.ads.native_ad.assetsimgobjectNoNative 广告素材的 Image 信息对象。
data.ads.native_ad.assets.imgwidthintYesNative 广告素材 Image 的宽度。
data.ads.native_ad.assets.imgheightintYesNative 广告素材 Image 的高度。
data.ads.native_ad.assets.imgurlstringYesNative 广告素材 Image 的URL。
data.ads.native_ad.assetsdataobjectNoNative 广告素材的 Data 信息对象。
data.ads.native_ad.assets.datavaluestringYesNative 广告素材的 Data 信息的内容
data.ads.native_adtarget_urlstringYesNative 广告的点击(Tracking)URL
data.ads.native_adimptrackersarrayYesNative 广告的展示上报数组,广告展示发生后需要遍历数组并逐个上报
data.ads.native_adclicktrackersarrayYesNative 广告的点击上报数组,广告点击发生后需要遍历数组并逐个上报
data.adsdeeplink_infoobjectNoDeeplink 信息对象
data.ads.deeplink_infodeeplink_urlstringYesDeeplink Url
data.ads.deeplink_infofallback_urlstringYesDeeplink 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教程新建Doadx JavaScript Network,将下面HTML代码段直接复制黏贴到mopub平台。
  • 下面HTML代码段的请求参数为请求广告的必要参数,Publiser可以提供更多参数提升广告填充率,从而提升转化率。所有参数可查阅3.1.3 请求参数

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>
    <!-- Make sure you have replaced [adDivId] [sid] [token] [app_id] [adslot_id] [app_bundle_id] [width] [height] with your own values before setting it up in Mopub -->

    <!-- COPY FROM HERE - : JS Tag START -->

    <!-- [adDivId] 放置广告的DIV ID -->
    <div id="[adDivId]"></div>
    <script>
        var data = {
            "adDivId": "[adDivId]", // [adDivId] 放置广告的DIV ID
            "sid": "[sid]", // [sid] DAPP 分配的sid
            "token": "[token]", // [token] DAPP token
            "app": {
                "app_id": "[app_id]", // [app_id] DAPP app_id
                "app_bundle_id": "[app_bundle_id]" // [app_bundle_id] APP的唯一标识。IOSbundle idAndroidpackage
            },
            "adslot": {
                "adslot_id": "[adslot_id]", // [adslot_id] DAPP adslot_id
                "banner": {
                    "width": [width], // [width] 广告位宽度
                    "height": [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 () {
                    // success passback
                    console.log("SUCCESS");
                }, function () {
                    // Mopub passback
                    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>

    <!-- COPY TILL HERE -  : JS Tag END -->

    <!-- Make sure you have replaced [adDivId] [sid] [token] [app_id] [adslot_id] [app_bundle_id] [width] [height] with your own values before setting it up in Mopub -->

</body>
</html>

5.附录

5.1 APP Category Type

valueDescription
IAB1Arts & Entertainment
IAB2Automotive
IAB3Business
IAB4Careers
IAB5Education
IAB6Family & Parenting
IAB7Health & Fitness
IAB8Food & Drink
IAB9Hobbies & Interests
IAB10Home & Garden
IAB11Law, Gov’t & Politics
IAB12News
IAB13Personal Finance
IAB14Society
IAB15Science
IAB16Pets
IAB17Sports
IAB18Style & Fashion
IAB19Technology & Computing
IAB20Travel
IAB21Real Estate
IAB22Shopping
IAB23Religion & Spirituality
IAB24Uncategorized
IAB25Non-Standard Content
IAB26Illegal Content

5.2 APP Interaction Type

valueDescription
0电话
1下载
2应用唤醒(Deeplink)

5.3 Banner Type

valueDescription
0未知
1页面的上半部分
2动态展示,根据屏幕的尺寸可能展示也可能隐藏
3页面的下半部分
4头部
5脚部
6侧边栏
7全屏

5.4 Assets Data Type

valueDescription
2广告描述内容
12描述用于目标URL的“调用操作”按钮的描述性文本
其他点击查看详细文档

5.5 Device Type

valueDescription
0未知
1手机
2平板
3电视
4其他外设

5.6 Language

valueDescription
zh中文
en英语
ja日语
ko韩语
de德语
fr法语
pt葡萄牙语
it意大利语

5.7 Err No and Msg

valueDescription
1000Sucess
1001Token error
1010Request JSON Body cannot be parsed correctly
1011Adslot obj has an error or doesn't exist
1012User obj has an error or doesn't exist
1013App obj has an error or doesn't exist
1014Device obj has an error or doesn't exist
1015Reg obj has an error or doesn't exist
2001hava no ad