Skip to main content

埋点与数据分析

埋点记录角色生命周期、资源变化、养成、战斗和运营行为。本文合并数数表的 11 个工作表;事件目录是来源约定与当前静态实现的对照,不代表所有事件均已到达分析平台。玩家没有独立埋点页面。

身份与归因​

Project2 表中的 #account_id 明确填写角色 ID(文本),并不等同登录账号 ID;账号、设备、区服、渠道等另作公共或用户属性。访客 #distinct_id 使用 SDK 或业务设备访客 ID,角色尚未创建时角色 ID 留空,不能用 0 冒充真实角色。自定义访客 ID 应在首次上报前设置。

阶段角色/账号字段访客及设备
激活、SDK 初始化角色和登录账号尚无则留空访客 ID、设备 ID
注册登录账号角色仍为空,记录登录账号自定义属性同一访客/设备
创建角色、开始战斗#account_id=角色 ID,另记所属登录账号同时携带访客/设备
同账号创建第二角色新角色有独立数数用户,账号属性仍相同事件仍带访客;不能期待已有访客自动再绑定第二用户
卸载重装后登录未登录阶段归新访客,登录后归已有角色/账号所对应用户新访客 ID 不抹掉旧账号的历史归因

来源还说明无账号游戏只用访客,单账号单角色可用登录账号作 #account_id;这是 SDK 适用场景说明,不是让 Project2 运行时切换身份模式。首次建立绑定要让两个 ID 同时出现在一条事件中;两端都能获得时均携带,不能假定客户端先于服务端上报。单独的账号事件和单独的访客事件不会因时间相邻就自动绑定。

身份绑定成功与失败的五种事件顺序

图中先访客后双 ID、先账号后双 ID可绑定的前提是另一 ID 尚未单独建立不同用户;首条即双 ID也可直接绑定。若两个单 ID 已分别先建不同用户,之后第三条补发双 ID仍不会合并或补救绑定,先后顺序反过来也一样。同账号多角色统计“用户数”可为 2、登录账号数为 1,应通过账号自定义属性分析而非改写角色身份。

公共属性与类型​

字段来源类型/含义
#account_id文本;角色 ID
#country文本;国家
#device_type / #device_model文本;设备类别/型号
#ram数值;内存
#zone_offset数值;时区偏移
current_server_id公共表写文本;多数事件表写数值,存在未解决冲突

用户属性表仅明确 #account_id 采用 user_setOnce、含义为角色 ID;不能把旧功能页建议的注册时间、累计付费等扩写成来源已经定义的用户字段。

属性首次入库类型决定后续类型。事件/字段名为字母、数字、下划线,长度最多 50,来源约定不区分大小写,只有预置字段以 # 开头。角色等不作运算的大整数 ID 使用文本。类型错误可通过改元数据(原值可能变 null)、虚拟属性转换或新字段迁移处理,不能假装只改客户端类型就自动修复历史数据。

类型来源约束
数值-9E15 至 9E15;来源写入截断至小数后16位、分析展示4位、分组展示四舍五入6位,平台实际限制应接入时核对
文本默认 2 KB,适合无数值意义 ID
时间yyyy-MM-dd HH:mm:ss 或带 .SSS;日期用当天零点表达
布尔true/false
列表元素转文本
对象/对象组子属性各自遵守类型规则;可表示英雄属性及完整出战阵容

客户端公共属性会缓存;同名 setSuperProperties 覆盖旧值,单事件属性优先于同名公共属性。变化值应使用动态公共属性,退出账号时除 logout 外清理账号相关属性,避免下一角色继承。服务端手动带齐所需属性;数数不会把客户端设备属性自动补到服务端事件。

完整业务事件目录​

除 InitGame 表只列角色、国家与步骤外,下表各事件均列有 #account_id、#country、current_server_id。表中“数”代表数值,“文”代表文本;字段名称保留来源,冲突单列,不在整理时暗改上线 schema。

事件触发时机专用属性与含义
role_register角色注册无额外;此行服务器 ID 写文本
role_login角色登录last_logout_time 时间;continuous_login_day 数连续天;total_login_day 数累计天
role_logout角色离线last_login_time 时间
item_change物品数量变化item_id 数;change_way 数途径大类;change_before/change_num/change_after 数;change_type 文获得/消耗
AFK_reward领取挂机收益AFK_time 数,从累计开始至领奖的分钟数
task任务完成task_id/task_group 数;完成不同于领取奖励
task_daily日活跃增加daily_activity 数
task_week周活跃增加来源也叫 daily_activity 数,未裁定是否改名
hero_level英雄升级hero_id/hero_level 数
ad广告看完ad_type 数,区分商店/体力等;看完不同于奖励到账
mission每波怪开始mission_id/round/monster_count/card_count/skill_count 数;怪数为场上剩余,卡与大招为本局到此刻累计释放次数
fief自运或抢夺领地物资到账fief_level 数为自己的领地等级;fief_item 数为所得物资道具 ID
lottery抽奖lottery_type 文区分装备/符文/普通/高级;lottery_count 数为消耗抽奖道具数量,不直接等于展示奖品格数
player_level玩家升级player_level/player_power 数,后者来源含义为主角攻击力
activity_mission达到冲刺要求activity_mission_id 数为要求通关的关卡,不是领奖动作
InitGame每个加载步骤达到时step 文,覆盖启动 App 至第一关场景加载完成的细分步骤
card_level卡牌升级card_id/card_step 数,后者为阶级;非英雄元素卡现已无等级合成,不能继续把该事件要求套到被删除行为
mission_result胜利、失败或手动退出结算mission_id/round/wall_hp/monster_count/card_count/skill_count 数;mission_result 文区分三种结果;记录结算当时墙血/剩余怪及累计释放
auto_battle开启或关闭自动战斗mission_id 数;auto_battle 文,记录开/关

原 Markdown 另提出活动曝光/进入/奖励/过期、公告展示/点击/关闭/平台分发、跑马灯打断/过滤、广告请求/失败/奖励到账和 GM/运营操作采集。这些没有本表对应的正式事件名、字段、唯一业务 ID 与上报归属,仍为待定分析需求,不补造新事件。物品经济日志应能还原前值、变化量、后值、道具和来源,业务成功由权威结果决定,点击不能替代发奖。

时间与采集归属​

客户端适合设备信息及不经服务端的操作;服务端适合权威经济、发奖和业务状态。服务端事件 #time 取实际发生时间,#ip 取客户端 IP;取不到设备属性且分析不需要时可省略,需要时由客户端通信获得。多地区按当地时间加时区表达,取不到客户端时区则明确使用服务器时区。

初始化后、上报前校准时间戳;校准不改变时区。来源称客户端入库窗口为过去 10 天到未来 3 天,此为接入材料记载,不能代替当前平台配置。数据可能跨端乱序,保留实际事件时间;本机改钟不应成为权威业务发生时间。

来源建议服务端 SDK 配合 LogBus,纯 batch 在长时间断网下可能丢数据;DataX 适合历史异构补录但非实时常驻,已有 Filebeat/Logstash 可接入。此处说明采集选型原意,不要求本任务新增数据平台或本地验证流程。App ID、接收地址和真实凭据不进入产品文档;平台日志/debug 能帮助定位类型与身份问题,但未在本轮执行。

当前实现与未决项​

后端最新源码已见 ThinkingLog 及 AFK_reward、英雄成长、抽奖、资源变化等调用;前端已有 mission、mission_result、auto_battle,战斗结算字段包括墙血、波次、场上怪、卡和大招累计数。SingularAnalyticsReporter 与 SdkService.TrackAnalyticsEvent 也存在,不能把所有调用都描述为直接数数 SDK。调用存在不证明平台收到、去重正确或所有 19 类事件齐全。

仍需明确:服务器 ID 类型、周活跃字段名、AFK_reward/InitGame 大小写规范、完整双端归属和重复上报策略,以及 player_power 是攻击还是总战力。新增活动/付费需求尚未给定正式 schema。旧文档声称抽奖和战斗缺整张事件表已过时,上表已接收其实际来源。

依据​

飞书《数数埋点》NydKbSPLOoft2Nx1X3Rca3DxnLg 全 11 表及身份顺序图;旧 analytics-tracking;frontend 7f0636… 和 backend 88b24ab… 静态调用。平台接入材料的限制以来源陈述保留,未将其当作本次互联网最新产品说明。