愉悦推广告接入文档


开发者收到订单

<h4><strong>一、简要描述:</strong></h4> <ol> <li>开发者需提供<font color='red'>奖励接受接口</font>,用户触发领取奖励时,我方会实时反馈给贵方,推送的参数固定</li> <li>当贵方返回结果为接受失败时,我方会尝试重推,默认每隔5分钟重推一次,最多重新发送3次请求</li> <li>推送失败重新推送的订单是同一订单号,</font> <font color='red'>开发者需要排重处理</font>,不要重复发放奖励给用户</li> <li>支持广告类型:CPA广告安装,CPA广告签到,唤醒广告,小程序广告,公众号广告,CPL广告,ASO广告,截图广告</li> <li>请求头:content-type:application/x-www-form-urlencoded 接口统一使用的编码为:UTF-8</li> </ol> <h4><strong>二、请求方式:</strong></h4> <ul> <li>POST <br></li> </ul> <h4><strong>三、参数说明:</strong></h4> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">ocode</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>订单号 (媒体用该字段排重,一个订单号只允许发一次奖励),长度不超过50位</td> </tr> <tr> <td style="text-align: left;">cid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">int</td> <td>渠道id,幂动广告提供,跟sdk的appId字段一个意思</td> </tr> <tr> <td style="text-align: left;">cuid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>用户方Id,在获取广告时开发者传入的字段,奖励发给该ID</td> </tr> <tr> <td style="text-align: left;">devid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>用户设备码 (安卓:IMEI ,IOS:IDFA)</td> </tr> <tr> <td style="text-align: left;">adid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>任务Id</td> </tr> <tr> <td style="text-align: left;">adname</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>任务名称</td> </tr> <tr> <td style="text-align: left;">pkg</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>包名 唤醒广告和小程序广告可为空</td> </tr> <tr> <td style="text-align: left;">adtype</td> <td style="text-align: left;">是</td> <td style="text-align: left;">int</td> <td>任务类型0=CPA安装 1=CPA签到 2=唤醒广告 3=小程序广告 4=公众号 5=CPL广告,6=ASO广告,7=截图广告,9=看看赚,10=小说赚,12=快互动,13=快小说,14=快红包,15=快点点,16=app看视频</td> </tr> <tr> <td style="text-align: left;">minitype</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>小程序任务类型0=签到 1=普通 2=分享 3=激励视频</td> </tr> <tr> <td style="text-align: left;">time</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>时间戳</td> </tr> <tr> <td style="text-align: left;">points</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>积分(用户获得的奖励数值,跟媒体app的货币单位相关) 用户下载app拿到奖励1元,如果开发者应用里面货币单位是元,那么points=1,如果开发者应用里面单位是金币(1元=1000金币)points=1000,货币单位在开发者后台可以配置,<font color='red'>不可改动</font></td> </tr> <tr> <td style="text-align: left;">sign</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>签名 (MD5加密串,详见下方)</td> </tr> <tr> <td style="text-align: left;">uprice</td> <td style="text-align: left;">否</td> <td style="text-align: left;">double</td> <td>用户收入(单位:元)该字段可方便媒体统计,实际奖励已points为准</td> </tr> <tr> <td style="text-align: left;">dprice</td> <td style="text-align: left;">否</td> <td style="text-align: left;">double</td> <td>开发者收入(单位:元)开发者的利润=dprice-uprice,开发者在幂动开发者后台看到的收入统计是dprice的统计,部分业务会以审核结算数据为准,此数据仅供参考</td> </tr> <tr> <td style="text-align: left;">appid</td> <td style="text-align: left;">否</td> <td style="text-align: left;">string</td> <td><font color='red'>cpa广告唯一id,已废弃</font></td> </tr> </tbody> </table> <p><strong>备注</strong>:</p> <ul> <li>加密算法: key由幂动广告方提供,获取MD5串的小写,从索引10位置取10位长度作为sign</li> <li>md5str= MD5(ocode + cid +cuid+ devid + adid+ adname +pkg+adtype+ time + points + key).ToLower()</li> <li>sign= md5str .Substring(10, 10);不同开发语言substring处理方式可能不同,做以下说明:从第11个字符开始(包括第11个字符)截取长度10的字符串 例如 12345678908888888888abcd.substring(10,10)=8888888888</li> <li>请求结果需返回json,status=1表示请求成功,例如:<code>{"status":1,"msg":"ok"}</code></li> <li><strong>开发者后台地址:</strong> <a href="http://app.midongtech.com">http://app.midongtech.com</a> 账号密码请联系幂动广告方提供,后台可自行配置回调链接测试 <br></li> </ul> <h5><strong>开发者接受订单后返回结果示例:</strong></h5> <p>接收成功:<font color='green'><code>{"status":1,"msg":"ok"}</code></font> 接收失败:<font color='green'><code>{"status":0,"msg":"失败原因"}</code></font> <br></p> <h4><strong>四、postman调试参考代码:</strong></h4> <p>body部分</p> <pre><code class="language-javascript">ocode:test123456 cid:{{cid}} cuid:11110 devid:864824030928913 adid:10001 adname:测试小程序 pkg: time:15464233341 points:0.01 adtype:3 sign:{{sign}} minitype:1</code></pre> <p>pre-request-script部分</p> <pre><code class="language-javascript">var cid = 'xxx';//幂动广告分配 var key = 'xxxxxx';//幂动广告分配 //md5str= MD5(ocode + cid +cuid+ devid + adid+ adname +pkg+adtype+ time + points + key).ToLower(); var v= request.data['ocode'] + cid + request.data['cuid'] + request.data['devid'] + request.data['adid'] + request.data['adname'] + request.data['pkg'] + request.data['adtype'] + request.data['time'] + request.data['points'] + key var sign = CryptoJS.MD5(v).toString(); console.log(v) console.log(sign) sign = sign.substr(10,10); console.log(sign); postman.setGlobalVariable("cid", cid); postman.setGlobalVariable("sign", sign);</code></pre> <p><strong>java接入参考代码:</strong> //AD_KEY是由幂动广告提供的key</p> <pre><code class="language-java">//AD_KEY是由幂动广告提供的key public String processCallBack(String ocode, Integer cid, String cuid, String devid, String adid, String adname, String pkg, Integer adtype, String time, String points, String sign, HttpServletRequest request) { // 1. 校验MD5数据内容 String parameter = ocode + "" + cid + "" + cuid + devid + adid + adname + pkg + "" + adtype + "" + time + "" + points + "" + AD_KEY; // 小写比较 String md5Result = MD5Util.encodeByMD5(parameter).toLowerCase().substring(10, 20); //参数错误 if (ocode == null || points == null || sign == null || adtype == null) { } // md5校对结果 boolean md5flag = md5Result.equals(sign.toLowerCase()); //数据校验成功 if (md5flag) { } //数据校验失败 else { } }</code></pre>

页面列表

ITEM_HTML