数据中台
登录后进入后台
数
数据中台
首页
⛶ 您好,admin
数
数据中台
事件数
0
所选时间范围
活跃用户
0
去重用户
新增用户
0
首次出现用户
会话数
0
session_start
总收益
0
客户端上报金额
每日数据
抖音游戏
微信游戏
关卡数据
游戏用户
用户留存
实时日志
游戏SDK

一、/api/events 通用埋点接口

// 上报单条游戏事件 /api/events 请求方式 POST 请求头:{ "Content-Type": "application/json", "X-API-Key": "ingest-secret" // 配置 ANALYTICS_INGEST_API_KEY 后必填 } 请求参数:{ event_name: "level_start", // 事件名,必填 platform: "douyin", // 平台:douyin 或 wechat,建议必填 game_id: "game-001", // 后台游戏ID或小游戏appid,建议必填 user_id: "", // 用户ID,user_id / anonymous_id / openid 至少传一个 anonymous_id: "device-001", // 匿名用户ID openid: "", // 平台openid channel: "organic", // 渠道,可选 version: "1.0.0", // 游戏版本,可选 session_id: "session-001", // 会话ID,可选 event_time: 1716268800000, // 事件时间,可传毫秒时间戳、秒时间戳或RFC3339字符串 level_id: "1", // 关卡ID,可选 duration_ms: 12000, // 时长,毫秒,可选 revenue: 0.01, // 收益金额,可选 currency: "CNY", // 币种,可选 properties: { // 自定义字段,最多保留32个 prop_name: "revive", result: "win" } } 返回参数:{ accepted: 1, // 成功接收数量 rejected: 0 // 被丢弃数量 }

二、/api/events 批量上报接口

// 批量上报方式一:直接传数组 请求方式 POST 请求参数:[ { event_name: "session_start", platform: "douyin", game_id: "game-001", anonymous_id: "device-001" }, { event_name: "level_start", platform: "douyin", game_id: "game-001", anonymous_id: "device-001", level_id: "1" } ] 返回参数:{ accepted: 2, rejected: 0 } // 批量上报方式二:events 包裹,单次最多500条 请求参数:{ events: [ { event_name: "level_win", platform: "wechat", game_id: "wx-game-001", openid: "openid-001", level_id: "1", duration_ms: 18000 } ] } 返回参数:{ accepted: 1, rejected: 0 }

三、事件字段说明

// 推荐事件名 session_start // 启动游戏,统计会话 level_start // 进入关卡,统计关卡开始 level_win // 关卡成功,统计通关 level_fail // 关卡失败,统计失败 level_complete // 关卡结束,可在 properties.result 里传 win / fail ad_reward // 激励视频广告 ad_interstitial // 插屏广告 iap_pay // 内购付费 // 关卡统计依赖字段 { event_name: "level_win", platform: "douyin", game_id: "game-001", anonymous_id: "device-001", level_id: "10", duration_ms: 25000, properties: { result: "win" } } // 收益统计依赖字段 { event_name: "ad_reward", platform: "wechat", game_id: "wx-game-001", openid: "openid-001", level_id: "10", revenue: 0.02, currency: "CNY", properties: { ad_type: "reward", ad_unit_id: "ad-unit-001" } }

四、后台查询接口

// 后台查询接口都走 GET,请求头需要 X-API-Key 请求头:{ "X-API-Key": "admin-secret" // 配置 ANALYTICS_ADMIN_API_KEY 后必填 } GET /api/summary?days=14&platform=douyin // 数据概览 GET /api/users?days=14&platform=douyin // 游戏用户 GET /api/levels?days=14&platform=douyin // 关卡数据 GET /api/retention?days=14&platform=douyin // 用户留存 GET /api/recent?limit=80&platform=douyin // 实时日志 platform 可选值: douyin // 抖音小游戏 wechat // 微信小游戏 不传 platform 时返回全部平台数据

五、SDK示例文件

// 示例文件 examples/minigame-client.js // 抖音小游戏推荐使用 /api/login_conversion + /api/game_track // 微信小游戏当前推荐使用 /api/events,并固定 platform: "wechat" 初始化时需要配置: { baseURL: "https://game.zhiling2026.com", appid: "小游戏appid", loginConversion: true }
抖音SDK

一、https://game.zhiling2026.com/api/login

// 登录 /api/login 请求方式 POST 请求参数:{ appid: "", // 游戏的appid clickId: "", // 抖音SDK获取的广告点击ID,非必须 project_id: "", // 抖音SDK广告项目ID,非必须 promotion_id: "", // 抖音SDK广告计划ID,非必须 code: "", // tt.login 获取的 code anonymousCode: "" // tt.login 获取的 anonymousCode } 返回参数:{ openid: "", // 用户openid blackUser: false, // true 时,激励和插屏广告都要先请求 /api/getAd dataPoint: "1", // 是否开启埋点,1 开启,0 关闭 game_id: "", // 后台游戏ID click_id: "", // 广告点击ID,埋点接口需要 new_date: "", // 用户首次进入日期,埋点接口需要 interstitial_level: 0 // 插屏从第几关开始显示,0 表示按游戏自身逻辑 }
二、获取 project_id / promotion_id / clickId
getAdParams() { if (!window.tt) return {}; try { const options = window.tt.getLaunchOptionsSync(); if (!options || !options.query || !options.query.ad_params) return {}; const adParams = JSON.parse(decodeURIComponent(options.query.ad_params)); const logExtra = adParams && adParams.log_extra ? adParams.log_extra : {}; return { clickId: logExtra.clickid || "", project_id: logExtra.project_id || "", promotion_id: logExtra.promotion_id || "" }; } catch (e) { console.warn("广告参数解析失败:", e); return {}; } }

二、https://game.zhiling2026.com/api/login_conversion

// 巨量激活登录 /api/login_conversion 请求方式 POST // 用这个接口时,前端不用再单独回调巨量激活接口 请求参数:{ appid: "", // 游戏的appid clickId: "", // 抖音SDK获取的广告点击ID,非必须 project_id: "", // 抖音SDK广告项目ID,非必须 promotion_id: "", // 抖音SDK广告计划ID,非必须 code: "", // tt.login 获取的 code anonymousCode: "" // tt.login 获取的 anonymousCode } 返回参数:{ openid: "", // 用户openid blackUser: false, // true 时,广告调用前请求 /api/getAd dataPoint: "1", // 是否开启埋点,1 开启,0 关闭 game_id: "", // 后台游戏ID click_id: "", // 广告点击ID,埋点接口需要 new_date: "", // 用户首次进入日期,埋点接口需要 interstitial_level: 0 // 插屏从第几关开始显示,0 表示按游戏自身逻辑 }

三、https://game.zhiling2026.com/api/getAd

// 广告权限 /api/getAd 请求方式 POST // 登录接口返回 blackUser=true 时,激励视频和插屏广告都要调用该接口 请求参数:{ openid: "", // 用户openid,登录接口返回 appid: "", // 游戏appid game_id: "" // 后台游戏ID,登录接口返回 } 返回参数:{ openAd: true // true 正常调用广告;false 不调用广告,直接给奖励,不能影响玩家正常游戏 }

四、关卡数据接口

一、https://game.zhiling2026.com/api/saveLevelInfo
// 存储关卡数据 /api/saveLevelInfo 请求方式 POST 请求参数:{ appid: "", // 游戏appid openid: "", // 用户openid userJson: {} // JSON对象,存档内容 } 返回参数:{ data: {} }
二、https://game.zhiling2026.com/api/getLevelInfo
// 获取关卡数据 /api/getLevelInfo 请求方式 POST 请求参数:{ appid: "", // 游戏appid openid: "" // 用户openid } 返回参数:{ data: { openid: "", // 用户openid userJson: "" // JSON字符串,客户端需要 JSON.parse() } }

五、https://game.zhiling2026.com/api/game_track

// event: enterLv,进入关卡 请求方式 POST 请求参数:{ event: "enterLv", data: { level_id: 1, // 关卡 appid: "", // 游戏appid openid: "", // 用户openid game_id: "", // 后台游戏ID,登录接口返回 click_id: "", // 广告点击ID,登录接口返回 new_date: "" // 用户首次进入日期,登录接口返回 } } 返回参数:{ data: { accepted: true } } // event: gameOver,游戏结束 请求方式 POST 请求参数:{ event: "gameOver", data: { level_id: 1, // 关卡 lvtime: 12.5, // 关卡耗时,秒 ovew_type: 1, // 1 过关,2 失败 shengyunum: "100%", // 完成多少 appid: "", openid: "", game_id: "", click_id: "", new_date: "" } } 返回参数:{ data: { accepted: true } } // event: levelAdnum,道具广告 请求方式 POST 请求参数:{ event: "levelAdnum", data: { level_id: 1, prop_name: "revive", // 道具名称 appid: "", openid: "", game_id: "", click_id: "", new_date: "" } } 返回参数:{ data: { accepted: true } } // event: generalEvent,通用事件 请求方式 POST 请求参数:{ event: "generalEvent", data: { general_data: "button_click", // 通用事件名 appid: "", openid: "", game_id: "", click_id: "", new_date: "" } } 返回参数:{ data: { accepted: true } } // 后台落库事件映射 enterLv -> level_start gameOver + ovew_type=1 -> level_win gameOver + ovew_type=2 -> level_fail levelAdnum -> prop_ad generalEvent -> general_event

六、https://game.zhiling2026.com/api/feedEntry

// 推荐直流配置 /api/feedEntry 请求方式 GET 开发平台配置: Domain: game.zhiling2026.com/ Path: api/feedEntry 请求参数:{ appid: "" // 可选,传入后按后台对应游戏配置返回 } 返回参数:{ code: 0, data: { enabled: true, // 是否开启推荐直流 scene: "feedEntry" } }
微信SDK

一、https://game.zhiling2026.com/api/events

// 微信小游戏通用埋点 /api/events 请求方式 POST 请求头:{ "Content-Type": "application/json", "X-API-Key": "ingest-secret" // 配置 ANALYTICS_INGEST_API_KEY 后必填 } 请求参数:{ event_name: "level_start", // 事件名,必填 platform: "wechat", // 微信小游戏固定传 wechat game_id: "wx-game-001", // 微信小游戏appid或后台游戏ID openid: "", // 已接微信登录时传 openid anonymous_id: "device-001", // 未接微信登录时传匿名ID level_id: "1", // 关卡ID,可选 duration_ms: 0, // 时长,毫秒,可选 revenue: 0, // 收益,可选 currency: "CNY", // 币种,可选 properties: {} // 自定义字段 } 返回参数:{ accepted: 1, rejected: 0 }

二、微信启动和登录字段

// 微信登录 /api/wechat/login 请求方式 POST // 服务端使用后台配置的 AppSecret 调微信官方 code2Session,session_key 不返回客户端 // 登录 请求参数:{ appid: "wx-game-001", code: "wx.login 返回的 code" } 返回参数:{ openid: "", unionid: "", game_id: "" } // 启动游戏 请求参数:{ event_name: "session_start", platform: "wechat", game_id: "wx-game-001", anonymous_id: "device-001", // 登录失败或未登录时可用匿名ID兜底 openid: "", // /api/wechat/login 返回的 openid channel: "organic", version: "1.0.0", session_id: "session-001", event_time: 1716268800000 } 返回参数:{ accepted: 1, rejected: 0 }

三、微信关卡数据接口

// 进入关卡 请求参数:{ event_name: "level_start", platform: "wechat", game_id: "wx-game-001", openid: "openid-001", level_id: "1" } 返回参数:{ accepted: 1, rejected: 0 } // 关卡成功 请求参数:{ event_name: "level_win", platform: "wechat", game_id: "wx-game-001", openid: "openid-001", level_id: "1", duration_ms: 18000, properties: { result: "win" } } 返回参数:{ accepted: 1, rejected: 0 } // 关卡失败 请求参数:{ event_name: "level_fail", platform: "wechat", game_id: "wx-game-001", openid: "openid-001", level_id: "1", duration_ms: 14000, properties: { result: "fail", reason: "timeout" } } 返回参数:{ accepted: 1, rejected: 0 }

四、微信广告收益接口

// 激励视频广告 请求参数:{ event_name: "ad_reward", platform: "wechat", game_id: "wx-game-001", openid: "openid-001", level_id: "1", revenue: 0.02, currency: "CNY", properties: { ad_type: "reward", ad_unit_id: "ad-unit-001", reward_name: "revive" } } 返回参数:{ accepted: 1, rejected: 0 } // 插屏广告 请求参数:{ event_name: "ad_interstitial", platform: "wechat", game_id: "wx-game-001", openid: "openid-001", level_id: "3", revenue: 0.01, currency: "CNY", properties: { ad_type: "interstitial", ad_unit_id: "ad-unit-002" } } 返回参数:{ accepted: 1, rejected: 0 }

五、微信后台查询接口

// 微信后台页面使用这些接口读取数据,请求方式 GET 请求头:{ "X-API-Key": "admin-secret" // 配置 ANALYTICS_ADMIN_API_KEY 后必填 } GET /api/summary?days=14&platform=wechat // 微信数据概览 GET /api/users?days=14&platform=wechat // 微信游戏用户 GET /api/levels?days=14&platform=wechat // 微信关卡数据 GET /api/retention?days=14&platform=wechat // 微信用户留存 GET /api/recent?limit=80&platform=wechat // 微信实时日志 后台菜单对应: 微信游戏用户 -> /api/users?platform=wechat 微信关卡数据 -> /api/levels?platform=wechat 微信埋点分析 -> /api/summary?platform=wechat 微信用户留存 -> /api/retention?platform=wechat
我的信息
当前后台:数据中台
查询鉴权:X-API-Key
存储后端:启动日志会显示 storage backend
新增抖音游戏