7. 数据上报

接口说明

接口参数及签名算法同接口规范

接口地址:{address}/gdr/api/{appId}/event

国内环境{address}

海外环境{address}

  • 全部AppId: https://sgw.xiuzhenme.com

7.1 聊天信息(必接)

  • action为 g{appId}chat 如g20chat

请求data

字段名类型描述
userIdString发行用户Id
appIdlong游戏id
channelIdint渠道id
serverIdString区服id
serverNameString区服名称
roleIdString角色id
roleNameString角色名称
levelint当前等级
chatChannelint聊天频道;0-世界,1-帮派,2-同省,3-跨服,4-私聊,5-其他
contentString聊天内容
targetRoleIdString目标角色id(私聊有)
sendTimelong发送时间,时间戳,单位秒

请求示例

{"data":"{\"userId\":\"1\",\"appId\":20,\"channelId\":20001,\"serverId\":\"1001\",\"serverName\":\"Server A\",\"roleId\":\"1001\",\"roleName\":\"xx\",\"level\":50,\"chatChannel\":0,\"content\":\"chat\",\"targetRoleId\":\"target456\",\"sendTime\":1648795200}","sign":"this is sign string","action":"g20chat","ts":1234567890}

响应data

响应示例

{"msg":"success","code":1000}


7.2 统计数据(必接)

  • action为 g{appId}stat 如g20stat

请求data

字段名类型描述
statTypeint上报类型
1:创建角色
2:进入游戏
3:等级提升
4:退出游戏(可选)
6:充值到账(可选)
7:游戏内代币【代金券/通宝等】支付订单(必选)
appIdint应用Id
channelIdint渠道Id
userIdstring发行侧用户Id
serverIdstring服务器Id
serverNamestring服务器名
roleIdstring角色Id
roleNamestring角色名
roleLevelint角色等级
roleOnlineTimeint角色在线总时长,statType为2/statType为4时必传 ,默认值为 0 单位秒
rolePowerint角色战力,statType为3时必传 ,默认值为 0
couponPayAmountint代金券支付订单金额。statType为7时必传 , 单位分
cpOrderNostring代金券支付订单号。statType为7时必传
couponPayTimeint代金券支付时间。statType为7时必传,时间戳,单位秒
productIdstring代金券支付商品id:发行侧商品档位id。statType为7时必传
moneyint角色累计充值金额。单位分
vipstringvip等级
ipstringip
versionstring游戏版本
createTimeint创角时间
lastLoginTimeint角色最后登陆时间。时间戳,单位秒
firstPayTimeint首充时间。时间戳,单位秒
userCreateTimeint用户注册时间。时间戳,单位秒
userLastLoginTimeint用户最后登陆时间。时间戳,单位秒
lastServerIdstring用户最后登陆服务器Id

请求示例

{"data":"{\"statType\":1,\"appId\":20,\"channelId\":1,\"subChannelId\":\"subChannel123\",\"accountChannelId\":123,\"loginChannelId\":456,\"deviceId\":\"device123\",\"userId\":\"user123\",\"serverId\":\"server123\",\"serverName\":\"Server A\",\"roleId\":\"role789\",\"roleName\":\"xx\",\"roleLevel\":50,\"money\":10000,\"vip\":\"VIP1\",\"ip\":\"192.168.1.1\",\"version\":\"1.0.0\",\"createTime\":1648795200,\"lastLoginTime\":1648795300,\"firstPayTime\":1648795400,\"userCreateTime\":1648795500,\"userLastLoginTime\":1648795600,\"lastServerId\":\"server456\"}","sign":"this is sign string","action":"g20stat","ts":1234567890}

响应data

响应示例

{"msg":"success","code":1000}


7.3 作弊行为(可选)

  • action为 g{appId}cheating 如g20cheating

请求data

字段名类型描述
userIdstring发行侧用户Id
cheatingLevelint作弊等级(0、轻微, 1、一般 ,2、严重 ,3、非常严重, 4、致命 )
cheatingContentJSON对象作弊内容
serverIdstring服务器Id
serverNamestring服务器名
roleIdstring角色Id
roleNamestring角色名
createTimeint创角时间
lastLoginTimeint角色最后登陆时间
roleLevelint角色等级
roleMoneyint角色累计充值金额。单位分
userMoneyint账号充值金额
vipintvip等级
ipstringip

cheatingContent

字段名类型描述
infostring作弊详情
classifystring作弊分类
extJSON对象扩展字段

请求示例

{"data":"{\"userId\":\"user456\",\"cheatingLevel\":2,\"cheatingContent\":{\"info\":\"Using unauthorized tools\",\"classify\":\"Tool-assisted cheating\",\"ext\":{\"toolVersion\":\"v2.0\",\"toolName\":\"CheatMaster\"}},\"serverId\":\"server789\",\"serverName\":\"Server B\",\"roleId\":\"role987\",\"roleName\":\"Alice\",\"createTime\":1648796000,\"lastLoginTime\":1648796100,\"roleLevel\":30,\"roleMoney\":5000,\"userMoney\":20000,\"vip\":3,\"ip\":\"192.168.1.2\"}","sign":"this is sign string","action":"g20cheating","ts":1234567890}

响应data

响应示例

{"msg":"success","code":1000}


7.4 审核上报(可选)

  • action为 g{appId}audit 如g20audit
  • 当前只需要上报审核状态为 ‘违规’ 的 结果

请求data

字段名类型描述
appIdstring游戏ID
userIdstring发行侧用户ID
channelIdstring渠道ID
serverIdstring服务器ID
serverNamestring服务器名称
roleIdstring角色ID
roleNamestring角色名称
levelint当前等级
auditContentstring审核原文;非必传
auditTypeint审核类型
auditStatusint审核状态;0-正常,1-违规
auditResultstring审核结果;格式与auditType相关
eventTimeint事件发生时间,时间戳,单位秒

auditType审核类型 枚举值

namevalueauditResult
腾讯云实时语音审核1游戏多媒体引擎 回调说明-进阶功能开发指南-文档中心-腾讯云 (tencent.com)open in new window

请求示例

{"data":"{\"appId\":\"game123\",\"userId\":\"user456\",\"channelId\":\"channel789\",\"serverId\":\"server101112\",\"serverName\":\"ServerNameExample\",\"roleId\":\"role131415\",\"roleName\":\"RoleNameExample\",\"level\":25,\"auditContent\":\"这是一段语音聊天信息文字\",\"auditType\":1,\"auditStatus\":0,\"auditResult\":\"{}\",\"createTime\":1648796000}","sign":"this is sign string","action":"g20audit","ts":1234567890}

响应data

响应示例

{"msg":"success","code":1000}


7.5 事件上报(可选)

  • action为 track_game_event_all

请求data

字段名类型描述
#account_idstring账号ID
#distinct_idstring访客ID
#timestring事件时间
#uuidstring数据唯一ID
#typestring数据类型
#event_namestring事件名称
propertiesjson数据主体部分,properties是一个 JSON 对象,里面的数据以键值对的形式表示
  • 事件数据样例:
{
    "#account_id": "75d971505646b79731cddaf9",
    "#time": "2025-02-18 14:26:59.748",
    "#uuid": "6a0b7df7-14d9-57ca-5a87-3831a640057c",
    "#type": "track",
    "#event_name": "role_login",
    "properties": {
        "current_coin": 107598510,
        "expand": {
                "name": "何南兮"
        },
        "gangId": "646170825b21f9f5b7e40587",
        "role_level": 451,
        "#data_source": "Restful_API",
        "current_dungeon": 60007407
    }
}
  • 用户属性设置数据样例:
{
    "#account_id": "2a63a4dc17f9a815af956607",
    "#time": "2025-02-18 14:27:36.264",
    "#distinct_id": "f58742bd-e06e-42f3-bd0a-f252a777c2c0",
    "#uuid": "61b65f50-8eb3-492a-a750-b8d2bd4481cc",
    "#type": "user_set",
    "properties": {
        "uid": "onlysdk_24809419",
        "create_role_time": 1696769244000,
        "channel": "onlysdk",
        "sdk_userid": "",
        "sdk_channel": "",
        "server_id": 10851,
        "bundle": "com.biguo.xblr.huawei",
        "platform": "android"
    }
}

properties 的同层其他字段,组成了该条数据的基本信息,其中只包括以下几项:

  • 表示触发用户的账号 ID#account_id与访客 ID#distinct_id#account_id#distinct_id至少要传入一个,如果所有事件都是在用户登录状态下触发的,则只传入#account_id是可行的,如果有事件是在未登录状态(包括注册前)触发的,则建议将两个字段都填入
  • 表示触发时间#time,格式必须是精确到毫秒("yyyy-MM-dd HH:mm:ss.SSS")或秒("yyyy-MM-dd HH:mm:ss")的字符串
  • 表示数据类型(事件还是用户属性设置)的#type,详细规则见下述说明
  • 表示事件名称的#event_name(仅事件数据带有)
  • 表示数据唯一性的#uuid
  • 除以上几项外,其余以“#”开头的属性都需要放在properties的内层

#type决定了该条数据的类型,是用户的行为记录、还是修改用户属性的操作处理,每一条数据都需要配置#type字段#type的取值分为两类track代表这条数据是用户行为记录,以user_开头代表对用户属性进行操作,具体意义如下:

  1. track:向事件表传入一个事件,事件的上传都为 track
  2. user_set:对用户表进行操作,覆盖一个或多个用户属性,如果该属性已有值存在,覆盖先前值
  3. user_setOnce:对用户表进行操作,初始化一个或多个用户属性,如果该属性已有值存在,则忽略本次操作
  4. user_add:对用户表进行操作,为一个或多个数值型用户属性做累加计算
  5. user_unset:对用户表进行操作,清空该名用户的一个或多个用户属性的属性值
  6. user_del:对用户表进行操作,删除该名用户
  7. user_append:对用户表进行操作,为用户的列表类型属性值添加元素
  8. user_uniq_append: 对用户表进行操作,为用户的列表类型属性值添加元素,并会进行一次全列表去重(去重保证前后原有的元素顺序不变)

#type的取值为track时,即该条数据是行为记录时,必须配置事件的名称#event_name,必须以字母开头,只能包含:字母(区分大小写)、数字和下划线“_”,长度最大为 50 个字符。请注意配置时不要带有空格。如果该条数据是修改用户属性的操作,则不需要#event_name字段。

请求示例

{"data":"{\"#account_id\":\"75d971505646b79731cddaf9\",\"#time\":\"2025-02-18 14:26:59.748\",\"#uuid\":\"6a0b7df7-14d9-57ca-5a87-3831a640057c\",\"#type\":\"track\",\"#event_name\":\"role_login\",\"properties\":{\"current_coin\":107598510,\"expand\":{\"name\":\"何南兮\"},\"gangId\":\"646170825b21f9f5b7e40587\",\"role_level\":451,\"#data_source\":\"Restful_API\",\"current_dungeon\":60007407}}","sign":"this is sign string","action":"track_game_event_all","ts":1234567890}

响应data

响应示例

{"msg":"success","code":1000}


7.6 通知栏消息(可选)

action为 g{appId}notify 如g20notify

请求data

字段名类型描述
appIdint游戏ID
channelIdint渠道ID
userIdstring发行用户ID
serverIdstring区服ID
serverNamestring区服名称
roleIdstring角色ID
roleNamestring角色名称
levelint当前等级
notifyTypeint通知类型;1-活动提醒,2-收益提醒,3-占矿提醒
statusint开关状态;0-关闭,1-开启
evenTimelong发送时间,时间戳,单位秒

请求示例

{"data":"{\"appId\":10001,\"channelId\":1001,\"userId\":\"user456\",\"serverId\":\"server_001\",\"serverName\":\"Server A\",\"roleId\":\"role_123456\",\"roleName\":\"何南兮\",\"level\":67,\"notifyType\":1,\"status\":1,\"eventTime\":1648796000}","sign":"this is sign string","action":"set_push_notify_config","ts":1708241219748}

响应data

响应示例

{"msg":"success","code":1000}