MSSDK

SDK 文档


Android 数据统计API

<p>[TOC]</p> <h3>文档历史</h3> <table> <thead> <tr> <th style="text-align: left;">版本号</th> <th style="text-align: left;">时间</th> <th style="text-align: left;">修改内容</th> <th style="text-align: left;">责任人</th> <th style="text-align: left;">备注</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">V0.8.0</td> <td style="text-align: left;">2019/08/09</td> <td style="text-align: left;">首次编写</td> <td style="text-align: left;">wesley</td> <td style="text-align: left;">无</td> </tr> <tr> <td style="text-align: left;">V0.9.0</td> <td style="text-align: left;">2019/09/02</td> <td style="text-align: left;">增加独立的登入登出接口</td> <td style="text-align: left;">mark</td> <td style="text-align: left;">无</td> </tr> <tr> <td style="text-align: left;">V0.9.5</td> <td style="text-align: left;">2019/12/18</td> <td style="text-align: left;">修改Dlog错误的路由名称</td> <td style="text-align: left;">mark</td> <td style="text-align: left;">无</td> </tr> </tbody> </table> <h3>文档简介</h3> <p>该文档是Dlog(数据统计)模块对外 API,方便开发者接入Dlog功能。</p> <h5>函数说明</h5> <p><span id="jump_callback">回调声明</span></p> <pre><code class="language-java">interface MSLDCallback { void onSuccess(String msg, Object data); void onFail(int code, String msg, Object errorData); }</code></pre> <ul> <li>onSuccess 参数说明</li> </ul> <table> <thead> <tr> <th>参数名称</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>msg</td> <td>提示信息</td> </tr> <tr> <td>data</td> <td>数据对象</td> </tr> </tbody> </table> <ul> <li>onFail 参数说明</li> </ul> <table> <thead> <tr> <th>参数名称</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>code</td> <td>错误码</td> </tr> <tr> <td>msg</td> <td>错误信息</td> </tr> <tr> <td>errorData</td> <td>数据对象</td> </tr> </tbody> </table> <h5>错误码</h5> <p>文档中涉及到的错误码,请参考 <a href="https://www.showdoc.cc/mssdk?page_id=2634523439445568">Android 错误码</a></p> <h3>1.自定义数据上报</h3> <p><strong>接入场景描述:</strong></p> <p>其他通用接口不能满足数据上报要求的情况下,可通过自定义事件接口上报指定的业务数据,并通过彩虹报表平台展现数据;</p> <p>根据业务的具体需求,在游戏内埋点(需要申请唯一的事件ID,并通过事件ID作为上报数据的唯一标识),游戏运行到埋点位置时,调用自定义事件接口,上报自定义数据</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">自定义数据上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_CUSTOM_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">EventId</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>事件ID(由产品人员在彩虹报表后台“自定义事件”页面配置)</td> </tr> <tr> <td style="text-align: left;">EventParam</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>事件参数(由产品人员在彩虹报表后台“自定义事件”页面配置)</td> </tr> <tr> <td style="text-align: left;">EventParamValue</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>事件参数取值(由产品人员在彩虹报表后台“自定义事件”页面配置)</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_CUSTOM_EVENT, new HashMap&lt;String, Object&gt;() { { put("EventId", "xx"); put("EventParam", "xx"); put("EventParamValue", "xx"); put("extStr1", "xx"); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>2. 游戏加载时长上报</h3> <p><strong>接入场景描述:</strong> 进入游戏到游戏加载完成时,调用该接口上报数据据</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th>功能名称</th> <th>调用类型</th> <th>功能标识</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>游戏加载时长上报</td> <td>异步调用</td> <td>DlogPath.ROUTE_DLOG_LOADING_COMPLETED_EVENT</td> <td>-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">loadingTime</td> <td style="text-align: left;">Integer</td> <td style="text-align: left;">是</td> <td>游戏加载时长(单位:秒)</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_LOADING_COMPLETED_EVENT, new HashMap&lt;String, Object&gt;() { { put("loadingTime", 10); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>3. 进入游戏事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>登陆游戏→选择区服→创建角色(选择角色)进入游戏时调用</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th>功能名称</th> <th>调用类型</th> <th>功能标识</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>进入游戏事件上报</td> <td>异步调用</td> <td>DlogPath.ROUTE_DLOG_ENTER_COMPLETED_FLOW_EVENT</td> <td>-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">GameSvrId</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>游戏服务器编号</td> </tr> <tr> <td style="text-align: left;">ZoneId</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>区服id</td> </tr> <tr> <td style="text-align: left;">roleId</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>角色id</td> </tr> <tr> <td style="text-align: left;">Level</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>玩家等级,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">vGameUsersid</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>游戏内玩家id</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_ENTER_COMPLETED_FLOW_EVENT, new HashMap&lt;String, Object&gt;() { { put("GameSvrId", "xx"); put("ZoneId", "xx"); put("roleId", "xx"); put("Level", "xx"); put("vGameUsersid", "xx"); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>4. 货币流水事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>游戏内玩家的游戏货币(游戏币与人民币)变动均需要调用</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">货币流水事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_MONEY_FLOW_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">AfterMoney</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>动作后用户账户剩余的货币数,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">iMoney</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>消耗/获取的货币数,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">Reason</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>货币流动一级原因(通过何种途径获取/消耗货币); 由CP根据附录A (货币获取/消耗途径)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">SubReason</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>币流动二级原因 由CP根据附录A(货币获取/消耗途径)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">AddOrReduce</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>货币增加或减少标识,取值说明: 0:增加;1:减少 注:用户获得游戏币时填0,消耗掉游戏币时填1</td> </tr> <tr> <td style="text-align: left;">iMoneyType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>货币类型,99代表人民币,其他货币类型取值由CP根据附录G(货币类型、货币获取/消耗途径) 填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">Level</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>玩家等级,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_MONEY_FLOW_EVENT, new HashMap() { { put("AddOrReduce", 0); put("AfterMoney", 110); put("iMoney", 10); put("iMoneyType", 99); put("Reason", 1); put("SubReason", 11); put("Level", 0); put("extStr1", ""); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>5. 道具流水事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>游戏内道具道具数量发生变化时(获取或消耗道具),调用该接口上报数据</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">道具流水事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_ITEM_FLOW_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">iGoodsType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>道具类型 由CP根据附录B(道具类型/道具名称、道具购买/消耗途径)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">iGoodsId</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>道具ID 由CP根据附录B(道具类型/道具名称、道具购买/消耗途径)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">AfterCount</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>作后的物品存量(某动作后用户的该道具还剩下多少个),取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">Count</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>动作涉及的物品数量(通过某动作用户获取或消耗该道具的数量),取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">Reason</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>道具流动一级原因由CP根据附录C(经验流动一级原因)填写定义标准,反馈到数据服务中心,为一整型数字,为购买道具、消耗道具的一级原因说明,可用于后续道具获取、消耗的原因分析</td> </tr> <tr> <td style="text-align: left;">SubReason</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>道具流动二级原因建议:由CP根据附录C(经验流动一级原因)填写定义标准,反馈到数据服务中心,能填则填</td> </tr> <tr> <td style="text-align: left;">AddOrReduce</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>增加 0/减少 1(注:用户获得道具填0,消耗掉游戏币填1</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_ITEM_FLOW_EVENT, new HashMap() { { put("iGoodsType", 10); put("iGoodsId", 5); put("AfterCount", 80 + 8); put("Count", 8); put("Reason", 3); put("SubReason", 33); put("AddOrReduce", 0); put("extStr1", ""); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>6. 道具购买流水事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>游戏内采用游戏币购买道具,调用该接口上报数据</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">道具购买流水事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_ITEM_MONEY_FLOW_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">iGoodsType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>道具类型 由CP根据附录B(道具类型/道具名称、道具购买/消耗途径)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">iGoodsId</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>道具ID 由CP根据附录B(道具类型/道具名称、道具购买/消耗途径)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">Count</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>数量(购买道具的数量),取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">iMoney</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>钱(购买道具花费的游戏币),取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">iMoneyType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>钱的类型MONEYTYPE (“99”代表人民币不可变动 ) 由CP根据附录G(货币类型、货币获取/消耗途径)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">Level</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>玩家等级 有则必须上报,没有就给0</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_ITEM_MONEY_FLOW_EVENT, new HashMap() { { put("iGoodsType", 10); put("iGoodsId", 5); put("Count", 3); put("iMoney", 10); put("Level", 10); put("iMoneyType", 20); put("extStr1", ""); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>7. 人物等级流水事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>玩家创建的角色等级有变动,调用该接口上报数据</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">人物等级流水事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_PLAYER_EXP_FLOW_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">ExpChange</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>经验变化,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">BeforeLevel</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>变动前等级,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">AfterLevel</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>变动后等级,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">Time</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>升级所用时间(秒),取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">Reason</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>经验流动一级原因由CP根据附录C(经验流动一级原因)填写定义标准,反馈到数据服务中心</td> </tr> <tr> <td style="text-align: left;">SubReason</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>验流动二级原因</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_PLAYER_EXP_FLOW_EVENT, new HashMap() { { put("ExpChange", 10); put("BeforeLevel", 1); put("AfterLevel", 3); put("Time", 88); put("Reason", 10); put("SubReason", 20); put("extStr1", ""); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>8. SNS流水事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>有社交因素的数据采集例如分享到SNS、微信、微博等,则需要调用该接口上报数</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">SNS流水事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_SNS_FLOW_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">RecNum</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>接收玩家个数,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">Count</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>发送的数量,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">SNSType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>交互一级类型 必填交互一级类型,由CP根据附录D(交互一级类型)填写定义标准,反馈到数据服务中心(注:比如0表示炫耀,1表示邀请之类的)</td> </tr> <tr> <td style="text-align: left;">SNSSubType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>交互二级类型(由CP根据附录D(交互一级类型)填写定义标准,反馈到数据服务中心)</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_SNS_FLOW_EVENT, new HashMap() { { put("RecNum", 3); put("Count", 2); put("SNSType", 8); put("SNSSubType", 88); put("extStr1", ""); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>9. 单局结束流水事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>对战类的休闲游戏需要统计某个房间或者某个单局pk结果,则需要调用该接口上报数据</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">单局结束流水事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_ROUND_FLOW_EVENT</td> <td style="text-align: left;"></td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">BattleID</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>本局id为打该局游戏时的序列号,一般都不会为空,为必填项。</td> </tr> <tr> <td style="text-align: left;">BattleType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>战斗类型对应BATTLETYPE注:由CP根据附录E(战斗类型、单局结果)填写定义标准,反馈到数据服务中心。</td> </tr> <tr> <td style="text-align: left;">RoundScore</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>本局分数(注:通过该局游戏玩家获取的分数值,没有则填0),取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">RoundTime</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>对局时长(秒)(注:用户玩该局游戏花了多少秒)</td> </tr> <tr> <td style="text-align: left;">Result</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>单局结果(注:由CP根据附录E(战斗类型、单局结果)填写定义标准,反馈到数据服务中心)</td> </tr> <tr> <td style="text-align: left;">Rank</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>排名(注:该局游戏后玩家最终排名),取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">Gold</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>金钱,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_ROUND_FLOW_EVENT, new HashMap() { { put("BattleID", 1); put("BattleType", 5); put("RoundScore", 8); put("RoundTime", 88); put("Result", 1); put("Rank", 20); put("Gold", 100); put("extStr1", ""); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>10. 角色数据流水事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>当有玩家的角色列表有角色增加、角色删除、角色更新等动作时,则需要调用该接口上报数据</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">角色数据流水事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_ROLE_FLOW_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">iRoleId</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>角色ID</td> </tr> <tr> <td style="text-align: left;">vRoleName</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>角色名称</td> </tr> <tr> <td style="text-align: left;">vRoleType</td> <td style="text-align: left;">int</td> <td style="text-align: left;">否</td> <td>角色类型(由CP根据附录F(角色类型、角色操作类型)填写定义标准,反馈到数据服务中心)</td> </tr> <tr> <td style="text-align: left;">vRoleSex</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>角色性别</td> </tr> <tr> <td style="text-align: left;">vRoleLevel</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>角色等级,取值为&gt;=0的数字</td> </tr> <tr> <td style="text-align: left;">VPERATIONTYPE</td> <td style="text-align: left;">int</td> <td style="text-align: left;">是</td> <td>角色操作类型(由CP根据附录F(角色类型、角色操作类型)填写定义标准,反馈到数据服务中心)</td> </tr> <tr> <td style="text-align: left;">extStr1</td> <td style="text-align: left;">String</td> <td style="text-align: left;">否</td> <td>扩展字段</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_ROLE_FLOW_EVENT, new HashMap() { { put("iRoleId", "10"); put("vRoleName", "死亡骑士"); put("vRoleType", 8); put("vRoleSex", "man"); put("vRoleLevel", 1); put("VPERATIONTYPE", 1); put("extStr1", ""); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>11. 登录事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>如果你当前的App没有接入乐逗的登录或者不准备接入登录,当用户登出成功时,则需要开发者调用该接口上报数据,这样用户数据统计才会准确。 如果你当前的App已经接入了或者准备接入乐逗登录,该接口可以不用调用。</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">登录事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_LOGIN_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a></p> <p><strong>参数 map 说明:</strong></p> <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;">playerId</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>用户ID</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_LOGIN_EVENT, new HashMap() { { put("playerId", "123456789"); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>12. 登出事件上报</h3> <p><strong>接入场景描述:</strong></p> <p>如果你当前的App没有接入乐逗的登录或者不准备接入登录,当用户登出成功时,则需要开发者调用该接口上报数据,这样用户数据统计才会准确。 如果你当前的App已经接入了或者准备接入乐逗登录,该接口可以不用调用。</p> <p><strong>功能说明:</strong></p> <table> <thead> <tr> <th style="text-align: left;">功能名称</th> <th style="text-align: left;">调用类型</th> <th style="text-align: left;">功能标识</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">登出事件上报</td> <td style="text-align: left;">异步调用</td> <td style="text-align: left;">DlogPath.ROUTE_DLOG_LOGOUT_EVENT</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <p><strong>回调声明:</strong></p> <p>请参考 <a href="#jump_callback">函数说明</a> </p> <p><strong>参数 map 说明:</strong></p> <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;">playerId</td> <td style="text-align: left;">String</td> <td style="text-align: left;">是</td> <td>用户ID</td> </tr> </tbody> </table> <p><strong>示例:</strong></p> <pre><code class="language-java">MSLDSDK.action(activity, DlogPath.ROUTE_DLOG_LOGOUT_EVENT, new HashMap() { { put("playerId", "123456789"); } }, new MSLDCallback() { @Override public void onSuccess(String msg, Object data) {} @Override public void onFail(int code, String msg, Object errorData) {} })</code></pre> <h3>附录A.(货币获取/消耗途径)</h3> <p><strong>表1:货币获取/消耗途径</strong></p> <table> <thead> <tr> <th style="text-align: left;">道具获取/消耗途径</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">充值</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">打怪</td> <td style="text-align: left;">2</td> </tr> <tr> <td style="text-align: left;">抽卡</td> <td style="text-align: left;">3</td> </tr> <tr> <td style="text-align: left;">系统赠送</td> <td style="text-align: left;">4</td> </tr> <tr> <td style="text-align: left;">好友赠送</td> <td style="text-align: left;">5</td> </tr> </tbody> </table> <h3>附录B.(道具类型/道具名称、道具购买/消耗途径)</h3> <p><strong>表1:道具类型/道具名称</strong></p> <table> <thead> <tr> <th style="text-align: left;">道具类型id</th> <th style="text-align: left;">道具类型名称</th> <th style="text-align: left;">道具id</th> <th>道具名称</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">1</td> <td style="text-align: left;">宠物</td> <td style="text-align: left;">10001</td> <td>小绵羊</td> </tr> <tr> <td style="text-align: left;">2</td> <td style="text-align: left;">角色</td> <td style="text-align: left;">20001</td> <td>孙悟空</td> </tr> <tr> <td style="text-align: left;">1</td> <td style="text-align: left;">宠物</td> <td style="text-align: left;">10002</td> <td>小甜心</td> </tr> <tr> <td style="text-align: left;">2</td> <td style="text-align: left;">角色</td> <td style="text-align: left;">20001</td> <td>猪八戒</td> </tr> </tbody> </table> <p><strong>表2:道具购买/消耗途径</strong></p> <table> <thead> <tr> <th style="text-align: left;">数字代号</th> <th style="text-align: left;">购买道具</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">购买道具</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">合成武器</td> <td style="text-align: left;">2</td> </tr> <tr> <td style="text-align: left;">出售道具</td> <td style="text-align: left;">3</td> </tr> </tbody> </table> <h3>附录C.(经验流动一级原因)</h3> <p><strong>表1:经验流动一级原因</strong></p> <table> <thead> <tr> <th style="text-align: left;">经验流动一级原因</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">打怪</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">通关</td> <td style="text-align: left;">2</td> </tr> </tbody> </table> <h3>附录D.(交互一级类型)</h3> <p><strong>表1:交互一级类型</strong></p> <table> <thead> <tr> <th style="text-align: left;">交互一级类型</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">炫耀</td> <td style="text-align: left;">0</td> </tr> <tr> <td style="text-align: left;">邀请</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">送心</td> <td style="text-align: left;">2</td> </tr> <tr> <td style="text-align: left;">收取心</td> <td style="text-align: left;">3</td> </tr> <tr> <td style="text-align: left;">发邮件</td> <td style="text-align: left;">4</td> </tr> <tr> <td style="text-align: left;">收邮件</td> <td style="text-align: left;">5</td> </tr> <tr> <td style="text-align: left;">分享</td> <td style="text-align: left;">6</td> </tr> <tr> <td style="text-align: left;">其他原因</td> <td style="text-align: left;">7</td> </tr> </tbody> </table> <h3>附录E.(战斗类型、单局结果)</h3> <p><strong>表1:战斗类型(BattleType)</strong></p> <table> <thead> <tr> <th style="text-align: left;">战斗类型</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">单人游戏</td> <td style="text-align: left;">0</td> </tr> <tr> <td style="text-align: left;">对战游戏</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">其他对局</td> <td style="text-align: left;">2</td> </tr> </tbody> </table> <p><strong>表2:单局结果(Result)</strong></p> <table> <thead> <tr> <th style="text-align: left;">单局结果</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">胜利</td> <td style="text-align: left;">0</td> </tr> <tr> <td style="text-align: left;">失败</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">平局</td> <td style="text-align: left;">2</td> </tr> <tr> <td style="text-align: left;">其他</td> <td style="text-align: left;">3</td> </tr> </tbody> </table> <h3>附录F.(角色类型、角色操作类型)</h3> <p><strong>表1:角色操作类型(VPERATIONTYPE)</strong></p> <table> <thead> <tr> <th style="text-align: left;">角色操作类型</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">新增角色</td> <td style="text-align: left;">0</td> </tr> <tr> <td style="text-align: left;">删除角色</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">更新角色</td> <td style="text-align: left;">2</td> </tr> </tbody> </table> <p><strong>表2:角色类型(vRoleType)</strong></p> <table> <thead> <tr> <th style="text-align: left;">角色类型</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">0</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;"></td> <td style="text-align: left;">2</td> </tr> </tbody> </table> <h3>附录G.(货币类型、货币获取/消耗途径)</h3> <p><strong>表1:货币类型</strong></p> <table> <thead> <tr> <th style="text-align: left;">货币类型</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">人民币</td> <td style="text-align: left;">0</td> </tr> <tr> <td style="text-align: left;">钻石</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">金币</td> <td style="text-align: left;">2</td> </tr> <tr> <td style="text-align: left;">银币</td> <td style="text-align: left;">3</td> </tr> <tr> <td style="text-align: left;">元宝</td> <td style="text-align: left;">4</td> </tr> <tr> <td style="text-align: left;">金锭</td> <td style="text-align: left;">5</td> </tr> <tr> <td style="text-align: left;">人民币</td> <td style="text-align: left;">99</td> </tr> </tbody> </table> <p><strong>表2:货币获取/消耗途径</strong></p> <table> <thead> <tr> <th style="text-align: left;">货币获取/消耗途径</th> <th style="text-align: left;">数字代号</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">充值</td> <td style="text-align: left;">1</td> </tr> <tr> <td style="text-align: left;">打怪</td> <td style="text-align: left;">2</td> </tr> <tr> <td style="text-align: left;">抽卡</td> <td style="text-align: left;">3</td> </tr> <tr> <td style="text-align: left;">系统赠送</td> <td style="text-align: left;">4</td> </tr> <tr> <td style="text-align: left;">好友赠送</td> <td style="text-align: left;">5</td> </tr> </tbody> </table>

页面列表

ITEM_HTML