跳转至

事件设计与发送指南

什么是事件分类体系?

事件分类体系(Event Taxonomy)是将收集的事件和属性以一致的结构和命名规则系统化组织起来的分类体系

如果不加规则地收集游戏中发生的大量行为数据(登录、购买、升级等),团队之间可能会用不同的名称发送同一数据,或者在分析时难以理解某条数据具体意味着什么。事件分类体系可以避免这种混乱,并帮助收集到的数据直接用于分析。


为什么需要它?

问题场景 应用分类体系后
同一个事件由不同团队用不同名称发送 可以用统一名称整合数据
不清楚某个属性属于哪个事件 属性结构清晰,能快速掌握分析范围
新增事件时没有标准而随意定义 可按既有规则一致扩展
事后才发现数据质量问题 可按 schema 事先验证

结构

Analytics 的事件分类体系由 事件属性 两层构成。

事件 (Event)
├── 平台属性 (Platform Attribute)   ← 仅通过 SDK 集成自动收集
└── 事件属性 (Event Attribute)      ← 随事件直接发送

什么是事件?

事件是记录用户在游戏内执行的特定行为的数据单位。它包含“什么时候、谁、做了什么”,是分析的最基本单位。

  • 例:用户购买了道具 → 发生 item_purchase 事件
  • 例:用户通关了某一关卡 → 发生 stage_clear 事件
  • 例:用户登录了应用 → 发生 login 事件

什么是属性?

属性是在事件发生时一并记录的详细信息。仅靠事件只能知道“发生了什么”,而通过属性可以进一步了解“在什么条件下、以什么数值发生”。

  • 例:item_purchase 事件的属性 → 道具 ID、支付金额、货币单位
  • 例:stage_clear 事件的属性 → 关卡编号、通关时间、使用角色

按收集主体不同,属性分为两类。

  • 平台属性:无需额外设置,仅通过 SDK 集成即可由 Hive 默认收集的属性。包括国家、OS、应用版本、服务器 ID 等。
  • 事件属性:与事件一起直接发送的属性。可自行定义分析所需的项目并发送。

自定义事件发送

游戏中自行定义的事件(自定义事件)可按照以下收集 schema 发送,从而在 Analytics 中用于分析。

实际数据发送使用 Hive SDK 客户端日志发送 方法。所需源代码可在 事件[源生成] 选项卡 中按语言自动生成。

Analytics 收集 schema

这是发送自定义事件时使用的基础 schema。所有事件都必须按以下格式发送。

字段 数据类型 是否必填 说明
identifierProvider STRING 必填 指定用户标识符发放系统。若集成 Hive SDK,则输入 hive
userId STRING 必填 账号维度的用户标识符。若没有值,允许为 null
deviceId STRING 必填 设备维度的用户标识符。若没有值,允许为 null
appId STRING 必填 输入在 Hive 控制台 > App Center 中注册的应用 ID。
dateTime STRING 必填 事件发生的时间。
timezone STRING 必填 事件发生时的时区。
category STRING 必填 决定数据将收集到哪张表的分类值。自定义事件必须固定发送为 raw_event_log。如果输入其他值,对应事件数据不会被正确收集到目标表中。
eventName STRING 必填 对事件进行分类的事件名。
eventAttribute STRING 必填 与事件一起发送的属性集合。项目必须定义;若无值,允许为 null
hiveAttribute STRING 必填 由 Hive provisioning 服务器提供的平台属性集合。目前需要开发者手动设置值后发送。项目必须定义;若无值,允许为 null
Warning

请尽量避免让 userIddeviceId 都为 null。如果这两个值都没有,将无法识别用户,可能会导致基于队列的用户分析变得困难。

Warning

要在 Analytics 中使用收集到的事件数据进行分析,必须在 事件 中注册与 eventName 相同名称的事件。未经注册的事件均无法在 Analytics 中用于分析。

事件名命名规则

建议按以下规则编写 eventName 中使用的事件名。

  • 推荐字符:英文字母(a–z, A–Z,区分大小写)、数字(0–9)、下划线(_)
  • 分隔符:单词之间不要使用空格,而使用下划线(_)分隔
  • 形式:建议采用能清楚说明事件的 名词_动词 形式
  • 示例item_purchase, level_up, tutorial_complete, stage_start
Warning

不遵守上述规则的事件名,在用于分析时可能会受到限制。

hiveAttribute / eventAttribute 结构示例

hiveAttributeeventAttribute 分别以 JSON 对象形式发送。

hiveAttribute — 由 Hive provisioning 服务器提供的平台属性。包括市场、服务器 ID 等,目前需要开发者手动设置值后发送。后续将改为自动收集方式。

{
  "market": "GO",
  "serverId": "Asia"
}

eventAttribute — 与事件一起直接发送的属性。包含分析该事件所需的详细信息。

{
  "level": "100",
  "contentsType": "dungeon"
}
Note

无论发送形式如何,属性值在 Analytics 中默认都被识别为字符串类型。若需要按数字或日期类型汇总的属性,请在 事件页面 的 [属性] 选项卡中修改该属性的数据类型。

属性命名规则

建议按以下规则编写 eventAttributehiveAttribute 的键名。

  • 推荐字符:英文字母(a–z, A–Z,区分大小写)、数字(0–9)、下划线(_)
  • 分隔符:单词之间不要使用空格,而使用下划线(_)分隔
  • 示例item_id, contentsType, stage_level
Warning

不遵守上述规则的属性键,在用于分析时可能会受到限制。

属性键转换规则

发送属性后,系统会按照以下规则自动转换部分键名。请注意,分析时实际查询到的键名可能会不同。

_Hive 后缀(hiveAttribute)

hiveAttribute所有 键末尾都会自动添加 _Hive

传输键 Analytics 中显示的键
country country_Hive
market market_Hive

_Event 后缀(eventAttribute)

仅当 eventAttribute 中的键与下面 8 个共通字段中的任意名称重名时,才会自动添加 _Event

  • timezone, dateTime, identifierProvider, userId, deviceId, appId, category, eventName
传输键 共通字段是否冲突 Analytics 暴露的键
category O category_Event
level X level(无转换)
Warning

hiveAttributeeventAttribute 都会以转换后的键名作为数据存储依据。分析时需要按转换后的名称(_Hive_Event)查询属性。


推荐事件

以下是 Analytics 中分析价值较高的事件示例。按 eventNameeventAttribute 发送这些事件后,就可以直接用图表·漏斗·留存等 Analytics 的全部功能进行分析。

升级

eventName 说明
account_level_up 账号升级
character_level_up 角色升级
guild_level_up 公会升级
skill_level_up 技能升级

eventAttribute(共通):

属性 说明 示例
levelPrev 升级前等级 10
level 升级后等级 11

货币

eventName 说明
asset_earn 获得货币
asset_spend 消耗货币

eventAttribute(共通):

属性 说明 示例
assetName 货币名称 diamond, gold
actionName 变动原因 inapp_purchase, quest_reward
amountPrev 变动前货币数量 500
amountVar 变动量 100
amountCurr 变动后货币数量 600
isPaid 是否为付费货币 Y, N

内容

eventName 说明
contents_start 接受·开始内容
contents_success 内容完成
contents_fail 内容失败
contents_cancel 内容取消

eventAttribute(共通):

属性 说明 示例
modeTypeName 内容类型 raid, quest
userLevel 用户等级 50
playTimeSec 游玩时间(秒) 120
Tip

如果以 contents_startcontents_success / contents_fail / contents_cancel 的流程构建漏斗,就可以分析各内容的完成率和流失区间。

应用内商店

eventName 说明
store_view 查看商店商品详情
store_purchase_click 点击购买商店商品

eventAttribute(共通):

属性 说明 示例
productLocation 商品展示位置 package, main_shop
productType 商品类型 pay, free, advertisement
Tip

可以通过 store_viewstore_purchase_click 漏斗分析各商品的点击转化率。

伙伴

eventName 说明
mate_earn 获得伙伴
mate_spend 消耗·出售·删除伙伴

eventAttribute(共通):

属性 说明 示例
mateId 伙伴 ID pet_001
mateGrade 伙伴等级 rare, epic
mateChangeFlag 变动路径 gacha, purchase, upgrade, sell
mateChangeAmount 变动量 1

社交活动

eventName 说明
party_action 队伍活动(邀请·加入·退出)
friend_action 好友活动(添加·删除)
guild_action 公会活动(加入·退出·踢出)

关联菜单

  • 事件 — 事件与属性注册·管理
  • 指标 — 将常用的事件汇总设置保存为指标