TLOG接口说明文档

目录

序言:

接入TLOG助力游戏生命周期管理
2017年7-9月对已接入TLOG的20款游戏进行了生命周期的流失及付费模型搭建预测,并进行了准召率验证,观察3个月情况显示:
流失模型:
用途:提前知晓用户流失迹象,提前通过活动提升用户留存,减缓用户流失节奏;
观察3个月结论:准确度均达80%以上
xuqiu_10_19_p1.jpg
付费模型:
用途:挖掘在游戏尚未付费用户中的高潜付费用户;
测试结论:高潜付费用户群体付费能力是普通用户的5倍。
xuqiu_10_19_p2.jpg

TLOG接口说明文档正文

一、目的

    应用宝现在已经搜集到的玩家数据有:登录和付费。
    这两个数据可以分析出用户是否活跃,是否大R,中R,小R,非R。
    为了做进一步的数据挖掘,应用宝需要知道一些玩家在游戏内的基本信息:
    等级,战力等状态信息,每天完成的关键任务等。
    但是,其他这些数据暂时都还没有,需要CP通过tlog的方式上报过来。
    游戏推送了数据后,通过应用宝的数据挖掘,对提高游戏的下载转化率、ARPU值,降低流失率都会有一定帮助,同时也会将分析出来的数据周期性反馈给CP。

二、接口详细说明

Tlog数据分为以下三大类。为了方便CP提供,数据做到尽量精简。
a)游戏通用数据-玩家角色类属性(必选)

序号 字段名 字段含义 是否必选
0 event_id 固定填1
1 event_time 上报时间,unix timestamp
2 appid 应用id,在open.qq.com上注册
3 openid QQ/微信登录返回的openid
4 zone_id 区服序号
5 zone_name 区服名
6 platform 1 Android;2 IOS
7 imei 设备号
8 level 角色等级
9 name 角色名
10 fight_value 角色战力(或者能表达强弱的一个值比如胜率)
11 profession 角色职业
12 pay_total 累计充值金额
13 coin_1 游戏内一级货币余额
14 coin_2 游戏内二级货币余额
15 vip_level vip等级

b)游戏定制数据-每天任务类属性(必选)

序号 字段名 字段含义 是否必选
0 event_id 固定填2
1 event_time 上报时间,unix timestamp
2 appid 应用id,在open.qq.com上注册
3 openid QQ/微信登录返回的openid
4 zone_id 区服序号
5 zone_name 区服名
6 platform 1 Android;2 IOS
7 imei 设备号
8 task_id 一些每天例行的重要任务(日常,副本等)
9 task_name 一些每天例行的重要任务
10 status 1成功2失败
11 task_detail 任务相关的扩展信息,是一个自定义的json map

建议上报时机:玩家完成这个任务时。
通过这个数据可以知道玩家每天游戏的完成度。
taskid完全由CP自定义,push数据过来后,给一份对应id的说明列表即可。
b)游戏定制数据-每天任务类属性(必选)

序号 字段名 字段含义 是否必选
0 event_id 固定填3
1 event_time 上报时间,unix timestamp
2 appid 应用id,在open.qq.com上注册
3 openid QQ/微信登录返回的openid
4 zone_id 区服序号
5 zone_name 区服名
6 platform 1 Android;2 IOS
7 imei 设备号
8 honor_id 获得游戏内某个荣誉的编号
9 honor_name 获得游戏内某个荣誉的名字。可能会有多套荣誉体系(排行榜多少名、xx勋章、称号等)
10 honor_detail 荣誉相关的扩展信息,是一个自定义的json map

建议上报时机:玩家获得这个荣誉时。
通过这个数据可以知道玩家在整个游戏历程中的位置。
honor_id完全由CP自定义,push数据过来后,给一份对应id的说明列表即可。

三、传输协议

   数据内容以JSON格式放在HTTP Body里传输,方法固定为 POST。
   域名地址为gamelog.3g.qq.com。
   测试环境的请求地址为/game/log/test,
   正式环境地址为/game/log。
   推送的数据统一使用UTF8字符集,JSON值类型统一使用string。
   注意,数据中不允许出现竖线”|”。
   接口在推送数据的同时,需要在HTTP头Authorization带上加密串。 
   Authorization = BASE64(HMAC_SHA1(json,secret)),其中json为HTTP包体里的JSON 内容,secret为游戏的接口密钥(注意,每款游戏接入前由应用宝提供)

请求样例:
POST /game/log/test HTTP/1.1
Host: gamelog.3g.qq.com
Accept: */*
Authorization: igotqpr8SjwcHgXKvZjZvargq0M=
Connection: keep-alive
User-Agent: python-requests/2.11.1
Accept-Encoding: gzip, deflate
Content-Length: 194(该长度不是写死的,根据具体body的大小设置)

{"pay_total": "9999", "event_id": "1", "zone_id": "11", "level": "10", "platform": "1", "fight_value": "9999", "openid": "1", "event_time": "1477395250", "vip_level": "3", "appid": "1101070777"}

应答样例:
HTTP/1.1 200 - ok
Content-Length: 242
Content-Type: text/json
Connection: keep-alive

{"msg":"success","ret":0}
下面是python实现的样例(协议和特定语言无关,任何语言都可以):
xuqiu_10_19_p5.jpg

四、接入步骤

1、 看完上面的说明后,向TLOG接口人申请游戏接入,拿到游戏对应的密钥。
2、 在测试环境上POST /game/log/test测试,验证接口。
3、 TLOG接口人确认测试OK后,切换为正式环境POST /game/log,游戏开始正式推送数据。

五、FAQ

a)发消息没反应
   检查一下DNS解析是否正确Ping gamelog.3g.qq.com
   xuqiu_10_19_p6.jpg
   检查一下端口是否开启telnet gamelog.3g.qq.com 80
b) 鉴权不通过
   {"msg":"http header 'Authorization' is empty or Unauthorized","ret":-110}
   首先检查一下是否带了'Authorization'头。
   其次'Authorization'的内容是hmac_sha1二进制结果的base64,不是二进制结果hex后再base64。当最后结果的长度大于32字节肯定就是这里有问题。
c) 参数校验不通过
   {"msg":"miss key attribute in json","ret":-103}
   先检查一下event_id是不是填对。不同的接口event_id值不同。
   再检查一下接口中必选项是否都有填。
   所有的key都是小写。
d) Php签名样例   base64_encode(hash_hmac("sha1", $json, $this->secret, true));
e) Java签名样例
xuqiu_10_19_p7.jpg
报错长度如下:
xuqiu_10_19_p8.jpg
原因:
xuqiu_10_19_p9.jpg

以上信息是否解决您的问题?

Copyright © 1998 - 2017 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部