用户行为上报
游戏方可以在用户启动游戏、创建或登录游戏角色等时候上报行为信息,在游戏过程中上报心跳信息。
备注
上报信息用于记录用户游戏登录天数、玩游戏的时长、创角等数据,供平台产运人员进行数据分析,运营活动等。
启动游戏上报
SDK 方法名称
XL_PlayGame
或 XL_PlayGameW
(宽字符接口)
调用示例
// 以下代码依赖 Windows API
#include <windows.h>
// 玩游戏上报接口导出为 XL_PlayGame
if (HMODULE hModule = GetModuleHandle(_T("XLGameLauncher.dll")))
{
int(WINAPI * XL_PlayGame)(LPCSTR, LPCSTR, LPCSTR);
(PVOID &)XL_PlayGame = GetProcAddress(hModule, "XL_PlayGame");
if (XL_PlayGame)
{
XL_PlayGame(gameId, serverId, userId);
// 如 XL_PlayGame("123", "123", "123");
}
}
// 玩游戏上报宽字符接口导出为 XL_PlayGameW
if (HMODULE hModule = GetModuleHandle(_T("XLGameLauncher.dll")))
{
int(WINAPI * XL_PlayGame)(LPCWSTR, LPCWSTR, LPCWSTR);
(PVOID &)XL_PlayGame = GetProcAddress(hModule, "XL_PlayGameW");
if (XL_PlayGame)
{
XL_PlayGame(gameId, serverId, userId);
// 如 XL_PlayGame(L"123", L"123", L"123");
}
}
信息
- 打开游戏客户端需要上报一次。
- serverId 区服标识,可以为空,传 "" 或者 NULL,都表示没有 serverId
调用参数说明
参数 | 类型 | 说明 |
---|---|---|
gameId | string | 平台的游戏 ID |
serverId | string | 游戏的区服 ID |
userId | string | 平台的用户 ID |
心跳上报
SDK 方法名称
XL_Heartbeat
或 XL_HeartbeatW
(宽字符接口)
调用示例
// 以下代码依赖 Windows API
#include <windows.h>
// 心跳上报接口导出为 XL_Heartbeat
if (HMODULE hModule = GetModuleHandle(_T("XLGameLauncher.dll")))
{
int(WINAPI * XL_Heartbeat)(LPCSTR, LPCSTR);
(PVOID &)XL_Heartbeat = GetProcAddress(hModule, "XL_Heartbeat");
if (XL_Heartbeat)
{
XL_Heartbeat(gameId, userId);
// 如 XL_Heartbeat("123", "123");
}
}
// 心跳上报宽字符接口导出为 XL_HeartbeatW
if (HMODULE hModule = GetModuleHandle(_T("XLGameLauncher.dll")))
{
int(WINAPI * XL_Heartbeat)(LPCWSTR, LPCWSTR);
(PVOID &)XL_Heartbeat = GetProcAddress(hModule, "XL_HeartbeatW");
if (XL_Heartbeat)
{
XL_Heartbeat(gameId, userId);
// 如 XL_Heartbeat(L"123", L"123");
}
}
信息
游戏方需自行实现定时上报,即定时执行心跳上报方法,建议上报间隔为 10s 。
调用参数说明
参数 | 类型 | 说明 |
---|---|---|
gameId | string | 平台的游戏 ID |
userId | string | 平台的用户 ID |
具体游戏行为上报
SDK 方法名称
XL_Report
或 XL_ReportW
(宽字符接口)
调用示例
// 以下代码依赖 Windows API
#include <windows.h>
// 游戏行为上报接口导出为 XL_Report
if (HMODULE hModule = GetModuleHandle(_T("XLGameLauncher.dll")))
{
int(WINAPI * XL_Report)(LPCSTR, LPCSTR,int, LPCSTR);
(PVOID &)XL_Report = GetProcAddress(hModule, "XL_Report");
if (XL_Report)
{
XL_Report(gameId, userId, actionType, params);
// 如 XL_Report("123", "123", 4, "")
}
}
// 游戏行为上报宽字符接口导出为 XL_ReportW
if (HMODULE hModule = GetModuleHandle(_T("XLGameLauncher.dll")))
{
int(WINAPI * XL_Report)(LPCWSTR, LPCWSTR,int, LPCWSTR);
(PVOID &)XL_Report = GetProcAddress(hModule, "XL_ReportW");
if (XL_Report)
{
XL_Report(gameId, userId, actionType, params);
// 如 XL_Report(L"123", L"123", 4, L"")
}
}
调用参数说明
参数 | 类型 | 说明 |
---|---|---|
gameId | string | 平台的游戏 ID |
serverId | string | 游戏的区服 ID |
actionType | int | 上报行为的类型 |
params | string | 上报参数,是 JSON 字符串 |
上报行为的类型 actionType
参数 | 类型 | 说明 | 上报时机 |
---|---|---|---|
0 | int | 未知 | |
1 | int | 创建角色 | 当用户创建角色完成时 |
2 | int | 登录角色 | 当用户登录角色完成时 |
3 | int | 启动下载器 | 当用户启动下载器时 |
4 | int | 启动游戏 | 当用户启动游戏时 |
上报参数 actionType
在必传参数的基础上可以扩展传递的参数。
事件 | 参数 | 类型 | 说明 |
---|---|---|---|
创建角色 | roleId | string | 角色标识,游戏方自己定义,可以是角色 ID |
roleName | string | 角色名称 | |
serverId | string | 区服标识,有则填写,否则为空 | |
serverName | string | 区服名称,有则填写,否则为空 | |
登录角色 | roleId | string | 角色标识,游戏方自己定义,可以是角色 ID |
roleName | string | 角色名称 | |
serverId | string | 区服标识,有则填写,否则为空 | |
serverName | string | 区服名称,有则填写,否则为空 | |
启动下载器 | 无 | ||
启动游戏 | 无 |
信息
上报参数 params 需要转换为 json 字符串,然后传递给 XL_Report。
如 "{\"roleId\":\"12312312\",\"roleName\":\"测试角色\"}"