基础游戏分析接入API手册
1.引言
1.1 概述
运营分析统计后台为游戏开发者提供统一服务端调用接口和客户端SKD接入,游戏开发商可以根据对应的数据接口来获得相应的请求参数。主要用于帮助手机游戏开发商、运营商采集并分析游戏数据,并以行业标准指标和模型来帮助开展深度的追踪分析服务。
1.2 适用对象及范围
适用于策划人员、系统设计人员、开发工程师和测试工程师。
1.3 管理后台配置内容
无
2. API方法介绍
服务端 请求url :
http://uapi.uzone8.com/gs/{type}/{method}/{appId}/{serverId}/{timestamp}/{key}
Type: 数据类型(例如:game、data...)
Method:调用方法名称(例如:login、role_consumption、recharge.... )
appId:游戏唯一标识
serverId:区服唯一标识
Timestamp:请求时间戳
Key:验证加密串
POST数据内容放入body内直接提交
注意:account 如果有UID的情况下使用渠道UID,如果没有的情况下使用渠道account,需保证与客户端发送的account同步
2.1基础游戏分析接口
2.1.1.游戏角色变化日志(type: game)
接口描述:
参考URL:http://uapi.uzone8.com/gs/game /role_change/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/game/role_change/8/1/1446726448/d9a2358e8bd2d052d06b4d224a78db86
触发时间:游戏角色等级/关卡/vip等级等发生变化后调用
请求方式:POST
请求参数:
参数类型 |
内容 |
urlencode(Json) |
{ "amount":"2", "data": [ { "opid":"10321", "account":"f77a522c-fa06-4933-9cd0-39dac0494", "role_id":"121101", "role_name":"战斗狂人", "change_type":"1", "change_befor":"7", "change_after":"8", "level":"8", "ip":"192.168.1.1", "remark":"", "timestamp":"1460343895" }, { "opid":"10421", "account":"d77a532c-ea07-2633-ce2d1-43dac8888", "role_id":"13981", "role_name":"羞涩小刀", "change_type":"2", "change_befor":"2", "change_after":"3", "level":"8", "ip":"192.168.1.1", "remark":"", "timestamp":"1460343810" }, …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
opid | 渠道ID | Int | 是 |
account | 账号ID(渠道uid,无渠道uid则渠道账号) | String | 是 |
role_id | 角色ID | Int | 是 |
role_name | 角色名称 | String | 是 |
change_type | 变化类型(1,等级,2,vip等级) | Int | 是 |
change_befor | 变化前 | String | 是 |
change_after | 变化后 | String | 是 |
level | 玩家当前等级 | Int | 是 |
ip | 玩家当前ip | String | 是 |
remark | 备注 | String | 否 |
timestamp | 玩家变化时间戳(单位秒) | Int | 是 |
2.1.2.玩家关卡驻留日志(type:data)
接口描述:
参考URL:
http://uapi.uzone8.com/gs/data /chapter/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/data/chapter/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd3d3a
方法名称: chapter(每次发一种关卡类型数据)
触发时间:每天(01:00-23:30)内发送一次
请求方式:POST
请求参数:
参数类型 |
内容 |
urlencode(Json) |
{ "amount":"2", "data": [{ "date":"2016-02-29", "chapter_details":{ "60001":"2312", "60002":"3210", ............. }", "chapter_type":1, "vip":"1", }] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
chapter_details | 关卡详情{"关卡1标识": "通关人数","关卡2标识": "通关人数".....} | Json | 是 |
chapter_type | 关卡类型(例如:1普通2精英等) | Int | 是 |
vip | vip等级(非vip则为0) | Int | 是 |
2.1.3.游戏商店消费日志(type: game)
接口描述:
参考URL:
http://uapi.uzone8.com/gs/game/role_store_consumption/{appId}/{serverId}/{timestamp}/{key}
DEMO:
http://uapi.uzone8.com/gs/game/role_store_consumption/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd3d3b
触发时间:游戏角色完成一次商店消费后(普通商店、声望兑换商店等..消费)
请求方式:POST
请求参数:
参数类型 |
内容 |
Urlencode(Json) |
{ "data": [ { "opid":"10321", "account": "f77a522c-fa06-4933-9cd0-39dac0494", "role_id":"121101", "role_name":"战斗狂人", "cons_fun_id":"201", "cons_fun_name":"普通商店", "cons_id":"1" , "cons_name":"金币", "cons_amount": "20", "goods_id":"2", "goods_name":"极品宝箱", "goods_amount":"1", "level":"20", "vip_level":"4", "remark":"", }, { "opid":"10421", "account":"d77a532c-ea07-2633-ce2d1-43dac8888", "role_id":"13981", "role_name":"羞涩小刀", "cons_fun_id":"201", "cons_fun_name":"普通商店", "cons_id":"1" , "cons_name":"金币", "cons_amount": "60", "goods_id":"3", "goods_name":"金色卡片", "goods_amount":"1", "level":"22", "vip_level":"4", "remark":"", "timestamp":"1460343849", }, …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
opid | 渠道ID | Int | 是 |
account | 账号ID(渠道uid,无渠道uid则渠道账号) | String | 是 |
role_id | 角色ID | Int | 是 |
role_name | 角色名称 | String | 是 |
cons_fun_id | 消费功能/模块id(例如1:普通商店,2:活动商店,3:声望兑换商店,7:宝石兑换店,8:宿命技能店:…) | Int | 是 |
cons_fun_name | 消费功能/模块名称(例如:普通商店、声望兑换商店...) | String | 是 |
cons_id | 消耗资源id" (例如:1.金币,2.金币代币,3.声望… 其他重要兑换资源) | Int | 是 |
cons_name | 消耗资源名称(例如:金币、金币代币、声望...其他重要兑换资源) | String | 是 |
cons_amount | 消耗数量 | Int | 是 |
goods_id | 产出物品id(例如:1、天赋石;2、极品宝箱;3飞龙在野战技) | Int | 是 |
goods_name | 产出物品名称(例如:天赋石、极品宝箱、飞龙在野战技) | String | 是 |
goods_amount | 产品物品数量 | Int | 是 |
level | 玩家当前当前等级 | Int | 是 |
vip_level | 玩家当前当前VIP等级 | Int | 是 |
remark | 备注 | String | 否 |
timestamp | 玩家消费时间戳(单位秒) | Int | 是 |
2.1.4.游戏功能消费日志(type: game)
接口描述:
参考URL:
http://uapi.uzone8.com/gs/game /role_fun_consumption/{appId}/{serverId}/{timestamp}/{key}
DEMO:
http://uapi.uzone8.com/gs/game/role_fun_consumption/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd3d3b
方法名称:role_fun_consumption
触发时间:游戏角色完成一次功能消费后(神兵培养、招募、摇钱树等..消费)
请求方式:POST
请求参数:
参数类型 |
内容 |
Urlencode(Json) |
{ "amount":"2", "data": [ { "opid":"10321", "account":"f77a522c-fa06-4933-9cd0-39dac0494", "role_id":"121101", "role_name":"战斗狂人", "vip_level":"4", "remark":"", "timestamp":"1460343887", }, { "opid":"10421", "account":"d77a532c-ea07-2633-ce2d1-43dac8888", "role_id":"13981", "role_name":"羞涩小刀", "cons_fun_id":"4", "cons_fun_name":"招募", "cons_id":"1", "cons_name":"金币", "cons_amount": "60", "cons_point_id":11", "cons_point_name":"稀有召唤", "point_amount":"1", "level":"25", "vip_level":"3", "remark":"", "timestamp":"1460343687", }, …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
opid | 渠道ID | Int | 是 |
account | 账号ID(渠道uid,无渠道uid则渠道账号) | String | 是 |
role_id | 角色ID | Int | 是 |
role_name | 角色名称 | String | 是 |
cons_fun_id | 消费功能/模块id(例如1:普通商店,2:活动商店,3:声望兑换商店,7:宝石兑换店,8:宿命技能店:…) | Int | 是 |
cons_fun_name | 消费功能/模块名称(例如:普通商店、声望兑换商店...) | String | 是 |
cons_id | 消耗资源id" (例如:1.金币,2.金币代币,3.声望… 其他重要兑换资源) | Int | 是 |
cons_name | 消耗资源名称(金币、金币代币、声望...其他重要兑换资源) | String | 是 |
cons_amount | 消耗数量 | Int | 是 |
cons_point_id | 消费点id(例如:1、10连召唤;2、稀有召唤;3、传奇之路刷新) | Int | 是 |
cons_point_name | 消费点名称(例如:10连召唤、稀有召唤、传奇之路刷新) | String | 是 |
point_amount | 消费次数 | Int | 是 |
level | 玩家当前当前等级 | Int | 是 |
vip_level | 玩家当前当前VIP等级 | Int | 是 |
remark | 备注 | String | 否 |
timestamp | 玩家消费时间戳(单位秒) | Int | 是 |
2.1.5.(玩家等级)金币/礼券留存日志(type:data)
接口描述:
参考URL:
http://uapi.uzone8.com/gs/data/level_ticket/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/data/level_ticket/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd123a
方法名称: level_ticket
触发时间:每天(01:00-23:30)内发送一次
请求方式:POST
请求参数:
参数类型 |
内容 |
urlencode(Json) |
{ "amount": "2", "data": [ { "date": "2016-02-29", "level":"1", "gold":"2541", "gift": "32141", "opid": "100321", }, { "date": "2016-02-29", "level":"2", "gold":"1241", "gift": "41141", "opid": "100321", }, …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
date | 驻留日期(格式:2016-02-29) | Date | 是 |
level | 驻留等级 | Int | 是 |
gold | 当前等级剩余金币 | Int | 是 |
gift | 当前等级剩余礼券 | Int | 是 |
opid | 渠道ID | Int | 是 |
2.1.6.(VIP等级)金币/礼券留存日志(type:data)
接口描述:
参考URL:http://uapi.uzone8.com/gs/data/vip_ticket/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/data/vip_ticket/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd123a
方法名称: vip_ticket
触发时间:每天(01:00-23:30)内发送一次
请求方式:POST
请求参数:
参数类型 |
内容 |
urlencode(Json) |
{ "amount": "2", "data": [ { "date":"2016-02-29", "vip_level":"1", "gold":"1507", "gift":"37151", "opid":"10301, }, { "date":"2016-02-29", "vip_level":"2", "gold":"2507", "gift":"38122", "opid":"10301, } …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
date | 驻留日期(格式:2016-02-29) | Date | 是 |
vip_level | 驻留VIP等级 | Int | 是 |
gold | 当前等级剩余金币 | Int | 是 |
gift | 当前等级剩余礼券 | Int | 是 |
opid | 渠道ID | Int | 是 |
2.1.7.自定义资源驻留日志(type: data)
接口描述:
参考URL:http://uapi.uzone8.com/gs/data/resources/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/data/resources/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd123a
方法名称:resources
触发时间:每天一次
参数类型 |
内容 |
urlencode(Json) |
{ "amount":"2", "data": [ { "date": "2016-02-29", "retained_id":"1", "point":"gk01", "type":"0", "amount": "2405" "vip": "0", }, { "date": "2016-02-29", "retained_id":"1", "point":"gk02", "type":"0", "amount": "1411" "vip": "1", } …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
date | 驻留日期(格式:2016-02-29) | Date | 是 |
retained_id | 驻留功能id(例如:1、关卡驻留;2金币驻留) | String | 是 |
point | 统计点(例如:等级1等级2;关卡gk01关卡gk02) | Int | 是 |
type | 统计点类型(预留字段可传空) | Int | 否 |
amount | 数量 | Int | 是 |
vip | vip等级(非vip则为0) | Int | 是 |
2.1.8.自定义游戏功能日志(type: game)
接口描述:
参考URL:http://uapi.uzone8.com/gs/game /function/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/game/function/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd123a
触发时间:游戏角色完成某功能完成后
请求方式:POST
请求参数:
参数类型 |
说明 |
urlencode(Json) |
{ "amount":"2", "data": [ { "opid":"10321", "account":"f77a522c-fa06-4933-9cd0-39dac0494", "role_id":"121101", "role_name":"战斗狂人", "level":"25", "ip":"192.168.1.1.1", "remark":"", "timestamp":"1460343887", }, { "opid":"10421", "account":"d77a532c-ea07-2633-ce2d1-43dac8888", "role_id":"13981", "role_name":"羞涩小刀", "fun_id":"2", "fun_name":"勇者副本", "fun_type_id":"2", "fun_type_name":"特殊关卡", "level":"15", "vip_level":"4", "ip":"192.168.1.1.1", "remark":"", "timestamp":"1460343888", }, …… ] } |
|
|
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
opid | 渠道ID | Int | 是 |
account | 账号ID(渠道uid,无渠道uid则渠道账号) | String | 是 |
role_id | 角色ID | Int | 是 |
role_name | 角色名称 | String | 是 |
fun_id | 功能ID | Int | 是 |
fun_name | 功能名称 | String | 是 |
fun_type_id | 功能类型ID | Int | 是 |
fun_type_name | 功能类型名称 | String | 是 |
level | 玩家当前等级 | Int | 是 |
vip_level | 玩家当前VIP等级 | Int | 是 |
ip | 玩家IP | String | 是 |
remark | 备注 | String | 否 |
timestamp | 玩家参与时间戳(单位秒) | Int | 是 |
2.1.9.游戏角色活动参与日志(type: game)
接口描述:
参考URL:http://uapi.uzone8.com/gs/game /active/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/game/active/8/2/1446726448/29e8bf8d66f2c0662650e4f6d5bd123a
触发时间:游戏角色参与活动后调用
请求方式:POST
请求参数:
参数类型 |
说明 |
urlencode(Json) |
{ "amount":"2", "data": [ { "opid":"10321", "account":"f77a522c-fa06-4933-9cd0-39dac0494", "role_id":"121101", "role_name":"战斗狂人", "active_id":"21", "level": "25", "ip": "192.168.1.1", "remark":"", "timestamp":"1460343847" }, { "opid":"10421", "account":"d77a532c-ea07-2633-ce2d1-43dac8888", "role_id":"13981", "role_name":"羞涩小刀", "active_id":"21", "level": "15", "ip": "192.168.1.1", "remark":"", "timestamp":"1460343847" }, …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
opid | 渠道ID | Int | 是 |
account | 账号ID(渠道uid,无渠道uid则渠道账号) | String | 是 |
role_id | 角色ID | Int | 是 |
role_name | 角色名称 | String | 是 |
active_id | 活动ID | Int | 是 |
level | 玩家当前等级 | Int | 是 |
ip | 玩家IP | String | 是 |
remark | 备注 | String | 否 |
timestamp | 玩家参与时间戳(单位秒) | Int | 是 |
2.2.0.游戏角色聊天日志(type: game)
接口描述:
参考URL:http://uapi.uzone8.com/gs/game/chat/{appId}/{serverId}/{timestamp}/{key}
DEMO:http://uapi.uzone8.com/gs/game/chat/10039/1/1528973081/iudsbf8d66f2c0662650e4f6d5bd123a
触发时间:记录玩家聊天信息,每5分钟调用一次
请求方式:POST
请求参数:
参数类型 |
说明 |
urlencode(Json) |
{ "amount":"2", "data": [ { "opid":"103988", "account":"f77a522c-fa06-4933-9cd0-39dac0494", "role_id":"1000032", "role_name":"聊天达人", "desc":"聊天内容~~~~~在这里", "level": "25", "ip": "192.168.1.1", "timestamp":"1528973280" }, { "opid":"103989", "account":"d77a532c-ea07-2633-ce2d1-43dac8888", "role_id":"1000088", "role_name":"灌水大王", "desc":"聊天内容在这里 ~~~", "level": "15", "ip": "192.168.1.1", "timestamp":"1528973352" }, …… ] } |
参数介绍
参数名称 | 介绍说明 | 参数类型 | 是否必填 |
amount | 本次请求记录总条数 | Int | 是 |
data | 本次请求的数据详情 | Json | 是 |
opid | 渠道ID | Int | 是 |
account | 账号ID(渠道uid,无渠道uid则渠道账号) | String | 是 |
role_id | 角色ID | Int | 是 |
role_name | 角色名称 | String | 是 |
desc | 聊天内容 | String | 是 |
level | 玩家当前等级 | Int | 是 |
ip | 玩家IP | String | 是 |
timestamp | 玩家参与时间戳(单位秒) | Int | 是 |
3. API接入使用规则
3.1 签名规则
参数的key值是由appId(游戏唯一标识)+ serverId(区服唯一标识)+timestamp(请求时间戳)+appkey(秘钥) 接后urlencode,再MD5生成
服务端:MD5(urlencode(appId+ serverId+timestamp+appkey))
例如 : MD5(urlencode(10+ 109 + 1446559558+5dc88420542eecc75c9c11ff0cc9fd8))
注意 : 1、“appId+ serverId+timestamp+appkey”中的 加号 为拼接符;
2、签名前需要先urlencode;
3、请严格按照以上拼接顺序;
4、md5 为32位小写
3.2 请求规则
服务端数据是以HTTP的post方式,请求接口URL发送数据;
数据放在HTTP的body中;
3.3 返回参数
返回格式:json
返回参数
参数名称 | 参数类型 | 说明 |
statusCode | Int |
错误码 200:成功 201:serverId无效 202:方法类型或方法名称为空 203:方法类型或方法名称无效 204:参数不完整 205: 签名错误 206:data数据非json格式 207:json数据参数错误 208: appID无效 999:其他错误 |