~~Title:Cobub Razor API 手册 - 开源移动应用运营平台 - 移动统计、移动推送解决方案 - Cobub 移动开发者中心~~ {{description>Cobub Razor API 手册}} {{keywords>Cobub Razor,开源移动应用分析,移动分析,移动应用分析,API手册}} ====== Cobub Razor API 手册 ====== ====== 1 API列表 ====== ^接口名 ^描述^ |login 用户登陆验证 |getproductlist |获取可访问的应用列表| |getversionlist |获取所有版本列表| |getchannellist |获取所有渠道列表| |getbasicdata |获取基础数据| |getbasicdatabychannel |获取基础数据(按渠道划分)| |getbasicdatabyversion |获取基础数据(按版本划分)| |getactiveratio |获取最近一周/月的活跃率| |getchannelactiveratio |获取各版本本周/本月的活跃用户数和活跃率| |getfrequency |获取使用频率数据| |getusingtime |获取使用时长数据| |getdatabyhour |获取小时的数据| |getpagedata |获取页面访问数据| |getcountry |获取地域分析数据(国家)| |getregion |获取地域分析数据(省份)| |getretention |获取用户留存数据| |getdevicebrand |获取终端名称数据| |getdeviceosversion |获取终端操作系统版本数据| |getdeviceresolution |获取终端分辨率数据| |getdevicecarrier |获取终端运营商数据| |getdevicenetwork |获取终端联网方式数据| |geteventdata |获取事件数据| |geteventdetail |获取单一事件详细数据| |getconversionlist |获取转化率列表| |getconversiondetail |获取转化率详细信息| |geterrorbyversion |获取错误信息(按版本)| |geterrordetailbyversion |获取错误详细信息(按版本)| |geterrordetaillistbyversion |获取错误详细列表(按版本)| |geterrordistributionbyversion |获取错误在操作系统和设备的分布情况(按版本)| |geterrorbyosversion |获取错误信息(按操作系统版本)| |geterrordetailbyosversion |获取错误详细信息(按操作系统版本)| |geterrordetaillistbyosversion |获取错误详细列表(按操作系统版本)| |geterrordistributionbyversion |获取错误在版本和设备的分布情况(按操作系统版本)| |geterrorbydevice |获取错误信息(按设备)| |geterrordetailbydevice |获取错误详细信息(按设备)| |geterrordetaillistbydevice |获取错误详细列表(按设备)| |geterrordistributionbydevice |获取错误在版本和操作系统版本的分布情况(按设备)| OpenAPI接口调用通过JSON格式的HTTP协议,请确保将JSON内容放到HTTP的BODY中,并以content=为后缀。如下: **POST Body:** content={“user”:”userA”,”password”:”pwd”} ===== 1.1 用户验证 ===== login ==== 1.1.1 功能说明 ==== 用户登录验证。 ==== 1.1.2 调用说明 ==== === 1.1.2.1 请求方式 === post === 1.1.2.2 请求地址 === PREURL/api/login (PEURL为所安装的Cobub Razor网址前缀,如http://localhost/web/index.php,下同 1.1.3 参数 ^字段名称 ^数据类型 ^描述 ^是否必须^ |username |String |cobub账号用户名 |是| |password |String |经md5加密后的密码 |是| 发送数据JSON实例: { “username”:”admin”, “password”:”765E5A00B76FF4ECA098BB” } 1.1.4 返回结果 ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |String |标识,>0成功,<0失败 |是| |msg |String |提示信息 |是| |sessionkey |String |API调用时参数项 |是| 返回数据JSON实例: 成功: { “flag”:”1″, “msg”:”用户验证成功”, “sessionkey”:”A7E76DD709C0B1A” } 失败: { “flag”:”-1″, “msg”:”用户名不存在” } 错误类型: ^Flag ^Msg ^说明^ |-1 |username not exists |用户名不存在| |-2 |invalid password |密码错误| |-3 |too many login attempts |错误登录次数过多| |-4 |DB Error|数据库错误| ===== 1.2 获取可访问的应用列表 ===== getproductlist ==== 1.2.1 功能说明 ==== 获取所有的应用列表。 ==== 1.2.2 调用说明 ==== === 1.2.2.1 请求方式 === post === 1.2.2.2 请求地址 === PREURL/api/getproductlist ==== 1.2.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| 发送数据JSON实例: { “sessionkey”: “765E5A00B76FF4ECA098BB” } ==== 1.2.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |String |标识,>0成功,且为queryresult的size,<0失败, |是| |msg |String |提示信息 |是| |sessionkey |String |API调用时参数项 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryresult”: [ { "platform": "iOS", "productid": "1", "productname": "name1" }, { "platform": "Android", "productid": "2", "productname": "name2" } ] } 错误返回: { “flag”:”-1″, “msg”:”用户名不存在” } 错误类型定义: ^Flag ^Msg ^说明^ |-1 |JSON format is not correct |JSON数据格式错误| |-2 |Sessionkey is invalide |Sessionkey无效| |-3 |DB Error |数据库错误| |-4 |Network error |网络错误| ===== 1.3 获取所有版本列表 ===== getversionlist ==== 1.3.1 功能说明 ==== 根据productid获取该product的所有版本信息。 ==== 1.3.2 调用说明 ==== === 1.3.2.1 请求方式 === post === 1.3.2.2 请求地址 === PREURL/api/getversionlis ==== 1.3.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key|是| |productid |String |productid |是| 发送数据JSON实例: { “sessionkey”: “765E5A00B76FF4ECA098BB”, “productid”:”1″ } ==== 1.3.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须 |flag |String |标识,>0成功,且为queryresult的size,<0失败,=0表示0个版本,没有queryresult |是| |msg |String |提示信息 |是| |queryresult |JSONArray |Version列表 |否| |version|String |version名称|是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "version": "0.1" }, { "version": "0.2" } ] } 错误返回: { “flag”:”-1″, “msg”:”格式不正确” } 错误类型定义: ^Flag ^Msg ^说明^ |-1 |JSON format is not correct |JSON数据格式错误| |-2 |Sessionkey is invalide |Sessionkey无效| |-3 |DB Error |数据库错误| |-4 |Network error |网络错误| ===== 1.4 获取所有渠道列表 ===== getchannellist ==== 1.4.1 功能说明 ==== 根据productid获取该product的所有渠道信息。 ==== 1.4.2 调用说明 ==== === 1.4.2.1 请求方式 === post === 1.4.2.2 请求地址 === PREURL/api/getchannellist ==== 1.4.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |productid |是| 发送数据JSON实例: { “sessionkey”: “765E5A00B76FF4ECA098BB”, “productid”:”1″ } ==== 1.4.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |String |标识,>0成功,且为queryresult的size,<0失败,=0表示0个版本,没有queryresult |是| |msg |String |提示信息 |是| |queryresult |JSONArray |Version列表 |否| |id |String |channel ID |是| |name |String |channel Name |是| 返回数据JSON实例: 成功返回1: { “flag”: “2″, “queryResult”: [ { "id": "1", "name":"机锋市场" }, { "id": "2", "name":"安卓市场" } ] } 成功返回2: { “flag”: “0″, “queryResult”:”” } 错误返回: { “flag”:”-1″, “msg”:”格式不正确” } 错误类型定义: ^Flag ^Msg ^说明 ^ |-1 |JSON format is not correct |JSON数据格式错误| |-2 |Sessionkey is invalide |Sessionkey无效 | |-3 |DB Error |数据库错误| |-4 |Network error |网络错误| ===== 1.5 获取基础数据 ===== getbasicdata ==== 1.5.1 功能说明 ==== 根据productid获取某时间段内该product的启动次数、活跃用户、新用户、平均使用时长、升级用户、累计用户。 ==== 1.5.2 调用说明 ==== === 1.5.2.1 请求方式 === post === 1.5.2.2 请求地址 === PREURL/api/getbasicdata ==== 1.5.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”: “765E5A00B76FF4ECA098BB”, “productid”:”1″, “startdate”:”2013-1-1″, “enddate”:”2013-1-2″ } ==== 1.5.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须 ^ |flag |int |标识,>0成功,且为queryresult的size,<0失败,=0表示0个版本,没有queryresult |是| |msg |String |提示信息 |是| |queryresult |JSONArray |Version列表 |否| |date |String |日期 |是| |sessions |String |启动次数 |是| |activeusers |String |活跃用户数 |是| |newusers |String |新增用户数 |是| |usingtime |String |使用时长 |是| |allusers |String |累计用户数 |是| |upgradeusers |String |升级用户数 |是| 返回数据JSON实例: 成功返回: { “flag”: 2, “queryResult”: [ { "date":"2013-1-1", "sessions": 10, "activeusers": 10, "newusers": 10, "usingtime": 10, "allusers": 10, "upgradeusers": 10 }, { "date":"2013-1-2", "sessions": 10, "activeusers": 10, "newusers": 10, "usingtime": 10, "allusers": 10, "upgradeusers": 10 } ] } 错误返回: { “flag”:”-1″, “msg”:”格式不正确” } 错误类型定义: ^Flag ^Msg ^说明^ |-1 |JSON format is not correct |JSON数据格式错误| |-2 |Sessionkey is invalide |Sessionkey无效| |-3 |DB Error |数据库错误| ===== 1.6 获取基础数据(按渠道划分) ===== getbasicdatabychannel ==== 1.6.1 功能说明 ==== 根据productid在指定时间段下所有渠道下的启动次数、活跃用户数、新用户数、平均使用时长、累计用户数、累计启动次数。 ==== 1.6.2 调用说明 ==== === 1.6.2.1 请求方式 === post === 1.6.2.2 请求地址 === PREURL/api/getbasicdatabychannel ==== 1.6.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “enddate”: “2013-4-2″, “productid”: “123″, “startdate”: “2013-4-1 } ==== 1.6.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须 ^ |flag |int |标识,>0成功,且为queryResult的size<0失败 |是| |queryResult |JSONArray |详细信息,queryresult为JSONArray对象flag对应值:大于等于0为queryresult数组的长度,包括channelid的数组 |是| |datevalue |String |日期 |是| |sessions |String |启动次数 |是| |activeusers |String |活跃用户数 |是| |newusers |String |新用户数 |是| |usingtime |String |使用时长 |是| |allusers |String |累计用户数 |是| |upgradeusers |String |升级用户数 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "1": [ { "datevalue": "20120101", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" }, { "datevalue": "20120102", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" } ], “2″: [ { "datevalue": "20120101", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" }, { "datevalue": "20120102", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" } ] } ] } ===== 1.7 获取基础数据(按版本划分) ===== getbasicdatabyversion ==== 1.7.1 功能说明 ==== 根据productid在指定时间段下所有版本下的启动次数、活跃用户数、新用户数、平均使用时长、累计用户数、累计启动次数。 ==== 1.7.2 调用说明 ==== === 1.7.2.1 请求方式 === post === 1.7.2.2 请求地址 === PREURL/api/getbasicdatabyversion ==== 1.7.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.7.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,且为queryResult的size<0失败 |是| |queryResult |JSONArray |详细信息,queryresult为JSONArray对象flag对应值:大于等于0为queryresult数组的长度,包括version的数组 |是| |datevalue |String |日期 |是| |activeusers |String |活跃用户数 |是| |newusers |String |新用户数 |是| |sessions |String |启动次数 |是| |upgradeusers |String |升级用户数 |是| |allusers |String |累计用户数 |是| |allsessions |String |累计启动次数 |是| |usingtime |String |使用时长 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "0.1": [ { "datevalue": "20120101", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" }, { "datevalue": "20120102", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" } ], “0.2″: [ { "datevalue": "20120101", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" }, { "datevalue": "20120102", "activeusers": "10", "newusers": "0", "sessions": "10", "upgradeusers": "10", "allusers": "10", "allsessions": "10", "usingtime": "10" } ] } ] } ===== 1.8 获取最近一周/月的活跃率 ===== getactiveratio ==== 1.8.1 功能说明 ==== 根据productid获取最近一周/月的活跃用户数和活跃率。 ==== 1.8.2 调用说明 ==== === 1.8.2.1 请求方式 === post === 1.8.2.2 请求地址 === PREURL/api/getactiveratio ==== 1.8.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″ } ==== 1.8.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |wusers |String |周活跃用户数 |是| |musers |String |月活跃用户数 |是| |wuserpercent |String |周活跃用户率 |是| |muserpercent |String |月活跃用户率 |是| 返回数据JSON实例: 成功返回: { “flag”: “1″, “wusers”: “100″, “musers”: “1029″, “wuserpercent”: “0.31″, “muserpercent”: “0.32″ } ===== 1.9 获取各版本本周/本月活跃率 ===== getchannelactiveratio ==== 1.9.1 功能说明 ==== 根据productid获取最近一周/月的活跃用户数和活跃率。 ==== 1.9.2 调用说明 ==== === 1.9.2.1 请求方式 === post === 1.9.2.2 请求地址 === PREURL/api/getchannelactiveratio ==== 1.9.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |int |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |type |String |week/month |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-1-1″, “enddate”: “2013-4-1″, “type”: “week”, } ==== 1.9.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须 ^ |flag |int |标识,>0成功,<0失败 |是| |datevalue |String |日期 |是| |activeusers |String |周活跃用户/月活跃用户数 | | |rate |String |周活跃率/月活跃率 |是| |channelid |String |渠道ID |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "1": [ { "datevalue": "2013-1-1", "activeusers": "100", "rate": 0.03 }, { "datevalue": "2013-1-8", "activeusers": "100", "rate": 0.02 }, { "datevalue": "2013-1-15", "activeusers": "100", "rate": 0.03 } ], “2″: [ { "datevalue": "2013-1-1", "activeusers": "100", "rate": 0.03 }, { "datevalue": "2013-1-8", "activeusers": "100", "rate": 0.03 }, { "datevalue": "2013-1-15", "activeusers": "100", "rate": 0.03 } ] } ] } ===== 1.10 获取使用频率数据 ===== getfrequency ==== 1.10.1 功能说明 ==== 根据productid获取时间段内的使用频率。 ==== 1.10.2 调用说明 ==== === 1.10.2.1 请求方式 === post === 1.10.2.2 请求地址 === PREURL/api/getfrequency ==== 1.10.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须 ^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.10.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |segment_sk |String |频率分布id |是| |segment_name |String |频率分布名称 |是| |access |String |访问次数 |是| |percentage |String |所占比例 |是| 返回数据JSON实例: 成功返回: { “flag”: 6, “queryResult”: [ { "segment_sk": "1", "segment_name": "1-2次", "access": 17, "percentage": 0.017 }, { "segment_sk": "2", "segment_name": "3-5次", "access": 25, "percentage": 0.025 }, { "segment_sk": "3", "segment_name": "6-9次", "access": 38, "percentage": 0.038 }, { "segment_sk": "4", "segment_name": "10-19次", "access": 109, "percentage": 0.109 }, { "segment_sk": "5", "segment_name": "20-49次", "access": 307, "percentage": 0.307 }, { "segment_sk": "6", "segment_name": "50次以上", "access": 504, "percentage": 0.504 } ] } ===== 1.11 获取使用时长数据 ===== getusingtime ==== 1.11.1 功能说明 ==== 根据productid获取时间段内的使用时长分布。 ==== 1.11.2 调用说明 ==== === 1.11.2.1 请求方式 === post === 1.11.2.2 请求地址 === PREURL/api/getusingtime ==== 1.11.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须 ^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.11.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |segment_sk |String |频率分布id |是| |segment_name |String |频率分布名称 |是| |numbers |String |使用次数 |是| |percentage |String |所占比例 |是| 返回数据JSON实例: 成功返回: { “flag”: 6, “queryResult”: [ { "segment_sk": 1, "segment_name": "0-3", "numbers": 3, "percentage": 0.03 }, { "segment_sk": 2, "segment_name": "3-10", "numbers": 11, "percentage": 0.01 }, { "segment_sk": 3, "segment_name": "10-30", "numbers": 40, "percentage": 0.04 }, { "segment_sk": 4, "segment_name": "30-60", "numbers": 110, "percentage": 0.13 }, { "segment_sk": 5, "segment_name": "60-180", "numbers": 379, "percentage": 0.46 }, { "segment_sk": 6, "segment_name": "180", "numbers": 279, "percentage": 0.33 } ] } ===== 1.12 获取小时的数据 ===== getdatabyhour ==== 1.12.1 功能说明 ==== 根据productid获取时间段内的24小时的使用分布情况。 ==== 1.12.2 调用说明 ==== === 1.12.2.1 请求方式 === post === 1.12.2.2 请求地址 === PREURL/api/getdatabyhour ==== 1.12.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.12.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |segment_sk |String |频率分布id |是| |segment_name |String |频率分布名称 |是| |numbers |String |使用次数 |是| |percentage |String |所占比例 |是| 返回数据JSON实例: 成功返回: { “flag”: 1, “activeuser”: { “1″: 30, “2″: 20, “3″: 33, “4″: 33, … “23″: 2 }, “newuser”: { “1″: 30, “2″: 20, “3″: 33, “4″: 33, … “23″: 2 }, “sessions”: { “1″: 30, “2″: 20, “3″: 33, “4″: 33, … “23″: 2 } } ===== 1.13 获取页面访问数据 ===== getpagedata ==== 1.13.1 功能说明 ==== 根据productid和version获取时间段内的页面访问详细。 ==== 1.13.2 调用说明 ==== === 1.13.2.1 请求方式 === post === 1.13.2.2 请求地址 === PREURL/api/getpagedata ==== 1.13.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |version |String |版本号,为空时指所有版本 |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “version”:”0.1″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, } ==== 1.13.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |activity |String |页面名称 |是| |exitcount |String |在activity退出次数 |是| |count |String |访问activity次数 |是| |duration |String |在activity中持续时长 |是| 返回数据JSON实例: 成功返回: { “flag”: 1, “queryResult”: [ { "activity": "MainActivity", "exitcount": 3, "count": 33, "duration": 233 }, { "activity": "AboutActivity", "exitcount": 3, "count": 33, "duration": 233 } ] } ===== 1.14 获取地域分析数据(国家) ===== getcountry ==== 1.14.1 功能说明 ==== 根据productid获取时间段内获取前N(由limit决定)国家的分布数据。 ==== 1.14.2 调用说明 ==== === 1.14.2.1 请求方式 === post === 1.14.2.2 请求地址 === PREURL/api/getcountry ==== 1.14.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |limit |String |Top N |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “limit”:”10″ } ==== 1.14.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |newusers |JSONArray |新增用户数 |是| |activeusers |JSONArray |活跃用户数 |是| |num |String |使用次数 |是| |country |String |国家名称 |是| |id |String |序号,倒排,num最大排在最前面 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "newusers": [ { "id": "1", "country": "Bangladesh", "num": 0 }, { "id": "2", "country": "China", "num": 0 }, { "id": "3", "country": "", "num": 0 } ], “activeusers”: [ { "id": "1", "country": "British", "num": 343 }, { "id": "2", "country": "China", "num": 22 }, { "id": "3", "country": "Bangladesh", "num": 1 } ] } ] } ===== 1.15 获取地域分析数据(省份) ===== getregion ==== 1.15.1 功能说明 ==== 根据productid和国家(country)获取时间段内获取前N(由limit决定)省市的分布数据。 ==== 1.15.2 调用说明 ==== === 1.15.2.1 请求方式 === post === 1.15.2.2 请求地址 === PREURL/api/getregion ==== 1.15.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |country |String |国家名称,需与getcountry输出的名称一致 |是| |limit |String |Top N |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “country”:”China”, “limit”:”10″ } ==== 1.15.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |newusers |JSONArray |新增用户数 |是| |activeusers |JSONArray |活跃用户数 |是| |num |String |使用次数 |是| |province |String |省市名称 |是| |id |String |序号,倒排,num最大排在最前面 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "newusers": [ { "id": "1", "province": "Jiangsu", "num": 0 }, { "id": "2", "province": "Beijing", "num": 0 }, { "id": "3", "province": "Sichuan", "num": 0 } ], “activeusers”: [ { "id": "1", "province": "Jiangsu", "num": 343 }, { "id": "2", "province": "Beijing", "num": 22 }, { "id": "3", "province": "Sichuan", "num": 1 } ] } ] } ===== 1.16 获取用户留存数据 ===== getretention ==== 1.16.1 功能说明 ==== 根据productid获取时间段内的用户留存。 ==== 1.16.2 调用说明 ==== === 1.16.2.1 请求方式 === post === 1.16.2.2 请求地址 === PREURL/api/getretention ==== 1.16.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |type |String |月:month或周:week |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “type”:”week” } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “type”:”month” } ==== 1.16.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |String | |是| |startdate |JSONArray |时间段开始日期 |是| |enddate |String |时间段结束日期 |是| |newusers |String |新用户数 |是| |1 |String |+1周/月 |是| |2 |String +2周/月 |是 | |3 |String |+3周/月 |是| |4 |String |+4周/月 |是| |5 |String |+5周/月 |是| |6 |String |+6周/月 |是| |7 |String |+7周/月 |是| |8 |String |+8周/月 |是| |id |String |序号 |是| 返回数据JSON实例: 成功返回: { “flag”: 2, “queryResult”: [ { "id":"1", "startdate": "2012-01-01", "enddate": "2012-01-01", "newusers": 232, "1": "1%", "2": "3%", "3": "34%", "4": "34%", "5": "34%", "6": "34%", "7": "34%", "8": "34%" }, { "id":"2", "startdate": "2012-01-01", "enddate": "2012-01-01", "newusers": 232, "1": "1%", "2": "3%", "3": "34%", "4": "34%", "5": "34%", "6": "34%", "7": "34%", "8": "34%" } ] } ===== 1.17 获取终端名称数据 ===== getdevicebrand ==== 1.17.1 功能说明 ==== 根据productid获取时间段内前N(由limit决定)位终端设备名称数据分布。 ==== 1.17.2 调用说明 ==== === 1.17.2.1 请求方式 === post === 1.17.2.2 请求地址 === PREURL/api/getdevicebrand ==== 1.17.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日日期 |是 |limit |String |Top N |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “limit”:”10″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.17.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |newusers |JSONArray |新用户数 |是| |activeusers |JSONArray |活跃用户数 |是| |num |String |使用次数 |是| |brand |String |设备名称 |是| |id |String |序号,倒排 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "newusers": [ { "id": "1", "name": "HTC Desire", "num": 100 }, { "id": "2", "name": "HTC WildFire", "num": 23 }, { "id": "3", "name": "Samsung T1000" "num": 32 } ], “activeusers”: [ { "id": "1", "name": "Samsung T100" "num": 343 }, { "id": "2", "name": "HTC G8" "num": 22 }, { "id": "3", "name": "HTC G10" "num": 1 } ] } ] } ===== 1.18 获取终端操作系统数据 ===== getdeviceosversion ==== 1.18.1 功能说明 ==== 根据productid获取时间段内前N(由limit决定)位终端操作系统数据分布。 ==== 1.18.2 调用说明 ==== === 1.18.2.1 请求方式 === post === 1.18.2.2 请求地址 === PREURL/api/getdeviceosversion ==== 1.18.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |limit |String |Top N,此项省缺为所有数据 |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “limit”:”10″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.18.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |newusers |JSONArray |新用户数 |是| |activeusers |JSONArray |活跃用户数 |是| |num |String |使用次数 |是| |osversion |String |设备操作系统 |是| |id |String |序号,倒排 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "newusers": [ { "id": "1", "osversion": "4.0", "num": 100 }, { "id": "2", "osversion": "4.1", "num": 23 }, { "id": "3", "osversion": "4.1.1", "num": 32 } ], “activeusers”: [ { "id": "1", "osversion": "4.1.1" "num": 343 }, { "id": "2", "osversion": "4.1", "num": 22 }, { "id": "3", "osversion": "4.0", "num": 1 } ] } ] } ===== 1.19 获取终端分辨率数据 ===== getdeviceresolution ==== 1.19.1 功能说明 ==== 根据productid获取时间段内前N(由limit决定)位终端操作系统分辨率数据分布。 ==== 1.19.2 调用说明 ==== === 1.19.2.1 请求方式 === post === 1.19.2.2 请求地址 === PREURL/api/getdeviceresolution ==== 1.19.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |limit |String |Top N,此项省缺为所有数据 |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “limit”:”10″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.19.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |newusers |JSONArray |新用户数 |是| |activeusers |JSONArray |活跃用户数 |是| |num |String |使用次数 |是| |resolution |String |操作系统分辨率 |是| |id|String |序号,倒排 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "newusers": [ { "id": "1", "resolution": "1280*800", "num": 100 }, { "id": "2", "resolution": "480*800", "num": 23 }, { "id": "3", "resolution": "480*820" "num": 32 } ], “activeusers”: [ { "id": "1", "resolution": "480*820" "num": 343 }, { "id": "2", "resolution": "960*1024" "num": 22 }, { "id": "3", "resolution": "320*480" "num": 1 } ] } ] } ===== 1.20 获取终端运营商数据 ===== getdevicecarrier ==== 1.20.1 功能说明 ==== 根据productid获取时间段内前N(由limit决定)位终端使用运营商数据分布。 ==== 1.20.2 调用说明 ==== === 1.20.2.1 请求方式 === post === 1.20.2.2 请求地址 === PREURL/api/getdevicecarrier ==== 1.20.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |limit |String |Top N,此项省缺为所有数据 |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “limit”:”10″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.20.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |newusers |JSONArray |新用户数 |是| |activeusers |JSONArray |活跃用户数 |是| |num |String |使用次数 |是| |carrier |String |运营商 |是| |id |String |序号,倒排 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "newusers": [ { "id": "1", "carrier": "中国移动", "num": 100 }, { "id": "2", "carrier": "中国联通", "num": 23 }, { "id": "3", "carrier": "中国电信" "num": 32 } ], “activeusers”: [ { "id": "1", "carrier": "中国电信" "num": 343 }, { "id": "2", "carrier": "中国联通" "num": 22 }, { "id": "3", "carrier": "中国移动" "num": 1 } ] } ] } ===== 1.21 获取终端联网方式数据 ===== getdevicenetwork ==== 1.21.1 功能说明 ==== 根据productid获取时间段内前N(由limit决定)位终端联网方式的数据分布。 ==== 1.21.2 调用说明 ==== === 1.21.2.1 请求方式 === post === 1.21.2.2 请求地址 === PREURL/api/getdevicenetwork ==== 1.21.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |limit |String |Top N,此项省缺为所有数据 |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “limit”:”10″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.21.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |newusers |JSONArray |新用户数 |是| |activeusers |JSONArray |活跃用户数 |是| |num |String |使用次数 |是| |network |String |联网方式 |是| |id |String |序号,倒排 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "newusers": [ { "id": "1", "network": "WIFI", "num": 100 }, { "id": "2", "network": "GPRS", "num": 23 }, { "id": "3", "network": "3G" "num": 32 } ], “activeusers”: [ { "id": "1", "network": "WIFI", "num": 343 }, { "id": "2", "network": "3G", "num": 22 }, { "id": "3", "network": "GPRS", "num": 1 } ] } ] } ===== 1.22 获取事件数据 ===== geteventdata ==== 1.22.1 功能说明 ==== 根据productid获取时间段内事件的详细数据。 ==== 1.22.2 调用说明 ==== === 1.22.2.1 请求方式 === post === 1.22.2.2 请求地址 === PREURL/api/geteventdata ==== 1.22.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |version |String |版本,省缺为所有版本 |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “version”:”1.0″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.22.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray |是| |eventid |JSONArray |事件ID |是| |eventname |JSONArray |事件名称 |是| |num |String |事件发生次数 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "eventid": "1", "eventname": "clickbutton", "num": 100 }, { "eventid": "2", "eventname": "payment", "num": 23 }, { "eventid": "3", "eventname": "help", "num": 23 } ] } ===== 1.23 获取单一事件详细数据 ===== geteventdetail ==== 1.23.1 功能说明 ==== 根据productid获取时间段内的某事件的数量等。 ==== 1.23.2 调用说明 ==== === 1.23.2.1 请求方式 === post === 1.23.2.2 请求地址 === PREURL/api/geteventdetail ==== 1.23.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |eventid |String |事件ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |version |String |版本,缺省为所有版本 |否| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “eventid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “version”:”1.0″ } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “eventid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.23.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |id |String |序号 |是| |datevalue |String |日期 |是| |num |String |事件发生次数 |是| 返回数据JSON实例: 成功返回: { “flag”: “3″, “queryResult”: [ { "id": "1", "datevalue": "2013-4-1", "num": 100 }, { "id": "2", "datevalue": "2013-4-2", "num": 100 }, { "id": "3", "datevalue": "2013-4-3", "num": 100 }, ] } ===== 1.24 获取转化率列表 ===== getconversionlist ==== 1.24.1 功能说明 ==== 根据productid获取某时间段内事件的转化率列表数据。 ==== 1.24.2 调用说明 ==== === 1.24.2.1 请求方式 === post === 1.24.2.2 请求地址 === PREURL/api/getconversionlist ==== 1.24.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, } ==== 1.24.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |targetid |String |目标ID |是| |targetname |String |目标名称 |是| |price |String |目标价值 |是| |startevent |String |起始事件 |是| |endevent |String |结束时间 |是| |conversion |String |转化率 |是| 返回数据JSON实例: 成功返回: { “flag”: “3″, “queryResult”: [ { "targetid": "1", "targetname": "1", "price": "2013-4-1", "startevent": "menu_exit", "endevent": "menu_login", "conversion": 0.87 }, { "targetid": "2", "targetname": "1", "price": "2013-4-1", "startevent": "menu_exit", "endevent": "click", "conversion": 0.87 }, { "targetid": "3", "targetname": "1", "price": "2013-4-1", "startevent": "menu_exit", "endevent": "click", "conversion": 0.87 } ] } ===== 1.25 获取转化率详细信息 ===== getconversiondetail ==== 1.25.1 功能说明 ==== 根据productid获取某时间段内转化率的详细信息数据。 ==== 1.25.2 调用说明 ==== === 1.25.2.1 请求方式 === post === 1.25.2.2 请求地址 === PREURL/api/getconversiondetail ==== 1.25.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后返回的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |targetid |String |目标ID |是| |version |String |版本,缺省为所有版本 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “targetid”: “1″, } 或 { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “targetid”: “1″, “version”: “0.1″, } ==== 1.25.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |id |String |序号 |是| |eventid |String |目标ID |是| |eventname |String |目标名称 |是| |num |String |目标价值 |是| |conversion |String |转化率 |是| 返回数据JSON实例: 成功返回: { “flag”: “3″, “queryResult”: [ { "id":"1", "eventid": "click", "eventname": "click事件", "num": "100", "conversion": 0.87 }, { "id":"2", "eventid": "exit", "eventname": "退出", "num": "20", "conversion": 0.87 }, { "id":"3", "eventid": "quit", "eventname": "退出", "num": "23", "conversion": 0.87 }, ] } ===== 1.26 获取错误信息(按版本) ===== geterrorbyversion ==== 1.26.1 功能说明 ==== 根据productid获取时间段内的各版本的错误数量等。 ==== 1.26.2 调用说明 ==== === 1.26.2.1 调用方式 === post === 1.26.2.2 调用地址 === PREURL/api/geterrorbyversion ==== 1.26.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.26.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |version |String | 日期 |是| |num |String |错误数量 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "version":"0.1", "num": "100" }, { "version":"0.2", "num": "100" } ] } ===== 1.27 获取错误详细信息(按版本) ===== geterrordetailbyversion ==== 1.27.1 功能说明 ==== 根据productid获取时间段内的各版本的错误详细数据量等。 ==== 1.27.2 调用说明 ==== === 1.27.2.1 调用方式 === post === 1.27.2.2 调用地址 === PREURL/api/geterrordetailbyversion ==== 1.27.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.27.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |errorid |String | 错误ID |是| |errortitle |String |错误名称 |是| |version |String |版本 |是| |lastdate |String |最近发生日期 |是| |num |String |错误数量 |是| |isfix |String |是否修复 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "errorid":"1", "errortitle":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "version":"0.1", "lastdate":"2013-3-1", "num": "10", "isfix": "true", }, { "errorid":"2", "errortitle":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "version":"0.3", "lastdate":"2013-3-1", "num": "103", "isfix": "false", }, ] } ===== 1.28 获取错误详细列表(按版本) ===== geterrordetaillistbyversion ==== 1.28.1 功能说明 ==== 根据productid获取时间段内的各版本的某一类型错误的所有错误记录。 ==== 1.28.2 调用说明 ==== === 1.28.2.1 调用方式 === post === 1.28.2.2 调用地址 === PREURL/api/geterrordetailbyversion ==== 1.28.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| |erroridentifier |String |MD5加密后 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “erroridentifier”:”AB876C09F98″ } ==== 1.28.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int | 标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |datetime |String | 最近发生日日期 |是| |osversion |String |版本 |是| |device |String |设备 |是| |stacktrace |String |错误详细 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "stacktrace":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "osversion":"5.0", "datetime":"2013-3-1 23:00:00", "device": "HTC Desire" }, { "stacktrace":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "osversion":"5.1", "datetime":"2013-3-1 22:22:00", "device": "HTC Desire" } ] } ===== 1.29 获取错误在操作系统和设备的分布情况(按版本) ===== geterrordistributionbyversion ==== 1.29.1 功能说明 ==== 根据productid获取时间段内的各版本的某一类型错误的所有错误记录。 ==== 1.29.2 调用说明 ==== === 1.29.2.1 调用方式 === post === 1.29.2.2 调用地址 === PREURL/api/geterrordistributionbyversion ==== 1.29.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| |erroridentifier |String |MD5加密后 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “erroridentifier”:”AB876C09F98″ } ==== 1.29.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int | 标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |osversiondis |JSONArray | |是| |devicedis |JSONArray | |是| |osversion |String |操作系统版本 |是 |device |String |设备 |是| |num |String |错误数量 |是| 返回数据JSON实例: 成功返回: { “flag”: “1″, “queryResult”: [ { "osversiondis": [ { "osversion": "5.0", "num": "98" }, { "osversion": "5.0", "num": "98" } ], “devicedis”: [ { "device": "HTC Desire", "num": "32" }, { "device": "HTC Desire", "num": "32" } ] } ] } ===== 1.30 获取错误信息(按操作系统版本) ===== geterrorbyosversion ==== 1.30.1 功能说明 ==== 根据productid获取时间段内的各操作系统版本的错误数量等。 ==== 1.30.2 调用说明 ==== === 1.30.2.1 调用方式 === post === 1.30.2.2 调用地址 === PREURL/api/geterrorbyosversion ==== 1.30.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.30.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int | 标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |osversion |String |操作系统版本 |是| |num |String |错误数量 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "osversion":"4.0", "num": "100" }, { "osversion":"5.0", "num": "100" } ] } ===== 1.31 获取错误详细信息(按操作系统版本) ===== geterrordetailbyosversion ==== 1.31.1 功能说 ==== 明 根据productid获取时间段内的各操作系统版本的错误详细数量等。 ==== 1.31.2 调用说明 ==== === 1.31.2.1 调用方式 === post === 1.31.2.2 调用地址 === PREURL/api/geterrordetailbyosversion ==== 1.31.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key|是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.31.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |errorid |String |错误ID |是| |errortitle |String |错误标题 |是| |osversion |String |操作系统版本 |是| |lastdate |String |最近发生日期 |是| |num |String |错误数量 |是| |isfix |String |是否修复 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "errorid":"1", "errortitle":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "osversion":"5.0", "lastdate":"2013-3-1", "num": "10", "isfix": "true", }, { "errorid":"2", "errortitle":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "osversion":"5.1", "lastdate":"2013-3-1", "num": "103", "isfix": "false", } ] } ===== 1.32 获取错误详细列表(按操作系统版本) ===== geterrordetaillistbyosversion ==== 1.32.1 功能说明 ==== 根据productid获取时间段内的各版本的某一类型错误的所有错误记录。 ==== 1.32.2 调用说明 ==== === 1.32.2.1 调用方式 === post === 1.32.2.2 调用地址 === PREURL/api/geterrordetaillistbyosversion ==== 1.32.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| |erroridentifier |String |MD5加密后 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “erroridentifier”:”AB876C09F98″ } ==== 1.32.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray |是| |datetime |String |最近发生日期 |是| |version |String |版本 |是| |device |String|设备 |是| |stacktrace |String |错误详细 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "stacktrace":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "version":"0.1", "datetime":"2013-3-1 23:00:00", "device": "HTC Desire" }, { "stacktrace":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "version":"0.1", "datetime":"2013-3-1 22:22:00", "device": "HTC Desire" } ] } ===== 1.33 获取错误在版本和设备的分布情况(按操作系统版本) ===== geterrordistributionbyversion ==== 1.33.1 功能说明 ==== 根据productid获取时间段内的各操作系统版本的某一类型错误的所有错误记录。 ==== 1.33.2 调用说明 ==== === 1.33.2.1 调用方式 === post === 1.33.2.2 调用地址 === PREURL/api/geterrordistributionbyversion ==== 1.33.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| |erroridentifier |String |MD5加密后 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “erroridentifier”:”AB876C09F98″ } ==== 1.33.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |versiondis |JSONArray| |是| |devicedis |JSONArray | |是| |version |String |版本 |是| |device |String |设备 |是| |num |String |错误数量 | | 返回数据JSON实例: 成功返回: { “flag”: “1″, “queryResult”: [ { "versiondis": [ { "version": "0.1", "num": "98" }, { "version": "0.2", "num": "98" } ], “devicedis”: [ { "device": "HTC Desire", "num": "32" }, { "device": "HTC Desire", "num": "32" } ] } ] } ===== 1.34 获取错误信息(按设备) ===== geterrorbydevice ==== 1.34.1 功能说明 ==== 根据productid获取时间段内的各版本的错误数量等。 ==== 1.34.2 调用说明 ==== === 1.34.2.1 调用方 === 式 post === 1.34.2.2 调用地址 === PREURL/api/geterrorbydevice ==== 1.34.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.34.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int | 标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |device |String |设备名称 |是| |num |String |错误数量 | | 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "device":"HTC Desire", "num": "100" }, { "device":"Samsung T9100", "num": "100" } ] } ===== 1.35 获取错误详细信息(按设备) ===== geterrordetailbydevice ==== 1.35.1 功能说明 ==== 根据productid获取时间段内的各版本的错误详细数量等。 ==== 1.35.2 调用说明 ==== === 1.35.2.1 调用方式 === post === 1.35.2.2 调用地址 === PREURL/api/geterrordetailbydevice ==== 1.35.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String |开始日期 |是| |enddate |String |结束日期 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″ } ==== 1.35.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray| |是| |errorid |String |错误ID |是| |errortitle |String |错误标题 |是| |device |String |设备名称 |是| |lastdate |String |最近发生日期 |是| |num |String |错误数量 |是| |isfix |String |是否修复 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "errorid":"1", "errortitle":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "device":"HTC Desire", "lastdate":"2013-3-1", "num": "10", "isfix": "true" }, { "errorid":"2", "errortitle":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "device":"Samsung T9100", "lastdate":"2013-3-1", "isfix": "false" }, ] } ===== 1.36 获取错误详细列表(按设备) ===== geterrordetaillistbydevice ==== 1.36.1 功能说明 ==== 根据productid获取时间段内的各版本的某一类型错误的所有错误记录。 ==== 1.36.2 调用说明 ==== === 1.36.2.1 调用方式 === post === 1.36.2.2 调用地址 === PREURL/api/geterrordetaillistbydevice ==== 1.36.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| |erroridentifier |String |MD5加密后 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “erroridentifier”:”AB876C09F98″ } ==== 1.36.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int | 标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |datetime |String |最近发生日期 |是| |version |String |版本 |是| |osversion |String |操作系统版本 |是| |stacktrace |String |错误详细 |是| 返回数据JSON实例: 成功返回: { “flag”: “2″, “queryResult”: [ { "stacktrace":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "version":"0.1", "datetime":"2013-3-1 23:00:00", "osversion": "5.0" }, { "stacktrace":"java.lang.IllegalArgumentException: Activity#onCreateDialog did not create a dialog for id 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)", "version":"0.1", "datetime":"2013-3-1 22:22:00", "osversion": "5.1" } ] } ===== 1.37 获取错误在版本和操作系版本的分布情况(按设备) ===== geterrordistributionbydevice ==== 1.37.1 功能说明 ==== 根据productid获取时间段内的各版本和各操作系统版本的某一类型错误的所有错误记录数。 ==== 1.37.2 调用说明 ==== === 1.37.2.1 调用方式 === post === 1.37.2.2 调用地址 === PREURL/api/geterrordistributionbydevice ==== 1.37.3 参数 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |sessionkey |String |登录成功后的验证key |是| |productid |String |产品ID |是| |startdate |String | 开始日期 |是| |enddate |String |结束日期 |是| |erroridentifier |String |MD5加密后 |是| 发送数据JSON实例: { “sessionkey”:”1341423432423″, “productid”: “1″, “startdate”: “2013-4-1″, “enddate”: “2013-4-2″, “erroridentifier”:”AB876C09F98″ } ==== 1.37.4 返回结果 ==== ^字段名称 ^数据类型 ^描述 ^是否必须^ |flag |int |标识,>0成功,<0失败 |是| |queryResult |JSONArray | |是| |versiondistribution |JSONArray | |是| |osversiondistribution |JSONArray | |是| |version |String |版本 |是| |osversion |String |操作系统版本 |是| |num |错误数量 | |是| 返回数据JSON实例: 成功返回: { “flag”: “1″, “queryResult”: [ { "versiondistribution": [ { "version": "0.1", "num": "98" }, { "version": "0.2", "num": "98" } ], “osversiondistribution”: [ { "osversion": "5.0", "num": "32" }, { "osversion": "5.1", "num": "32" } ] } ] }