发送事件属性¶
概述¶
游戏事件日志由必需的属性和用户定义的属性组成。 如果链接Hive SDK v4,将添加自动收集的属性,无需单独传输。
必需属性¶
传输游戏事件日志时**必须包含该属性**。
必需的属性命名约定
必需的属性名称必须以 驼峰式 (camelCase) 或 小写 (lowercase) 格式发送。 如果您像 user_id 那样将其发送到蛇箱 (snake_case),它将无法正确处理,并且将被隔离到 rescue 表中。
| 属性名称 | 描述 | 数据类型 | 示例 |
|---|---|---|---|
userId | 基于帐户的用户标识符 | STRING | 100001 |
deviceId | 基于终端的用户标识符 | STRING | 100000 |
identifierProvider | 用户标识符发布系统。已修复 hive | STRING | hive |
appId | Hive 控制台 > Project ID 已在应用中心注册 | STRING | com.com2us.game.ios |
appIdGroup | Hive 控制台 > Game 应用中心下发 ID. appId 传输时自动生成 | STRING | com.com2us.game |
eventTime | 事件发生的时间。 RFC 3339 国际标准(包括时区) | STRING | 2026-07-20T14:01:01+09:00 |
eventName | 对事件进行分类的事件名称 | STRING | asset_drop |
appId / appIdGroup 传输规则
发送事件时,必须包含 appId 或 appIdGroup。
- 如果您知道
appId:只需发送appId。appIdGroup是自动生成的。 - 如果您不知道
appId:直接发送appIdGroup。 - 如果同时发送两个值,
appIdGroup会根据appId重新生成,所以发送appId时不要包含appIdGroup。
传输所需属性时的注意事项
如果满足以下任一条件,则事件日志**隔离到表 rescue**:
- 如果
appId和appIdGroup均不存在 - 如果任何剩余的必需属性(
userId、identifierProvider、deviceId、eventTime、eventName)丢失或具有空值。 - 即使该值未知,也不要留空,而是填写一个随机值,例如
"0"或"unknown"并发送。
eventName 命名约定¶
建议用于eventName的事件名称按照以下规则编写。
- 推荐字符:英文字母(a–z、A–Z,区分大小写)、数字 (0–9)、下划线 (
_) - 分隔符:单词之间用下划线 (
_) 分隔,而不是空格。 - 格式:建议使用能够清楚说明事件的英文
noun_verb格式。 - 示例:
item_purchase、level_up、tutorial_complete、stage_start
Warning
不符合上述规则的事件名称在分析中的使用可能会受到限制。
eventTime 格式规则 (RFC 3339)¶
eventTime 遵循格式 RFC 3339 并且必须包含时区信息。
形式:
可接受的示例:
2026-07-20T14:01:01+09:00(KST,韩国标准时间)
2026-07-20T05:01:01Z (UTC)
2026-07-20T14:01:01.123+09:00(包括毫秒)
2026-07-20T23:01:01-05:00(美国东部时间)
不允许的示例:
eventTime¶
eventTime会在管道中**转换为 UTC**,并存储在表的dateTime列中。原始值会原样保留在attributes.eventAttributes.eventTime中。
传输eventTime时的注意事项
eventTime 仅接受基于当前时间的**过去 31 天到未来 31 天**范围内的值。超出此范围,事件日志将隔离到表 rescue。
用户定义的属性¶
游戏中想要传输的信息由属性名称和属性值组成,并与所需的属性一起直接传输。
属性名称规则¶
| 规则 | 描述 | 示例 |
|---|---|---|
| 起始信 | 必须以 小写或大写字母 开头 | level、Stage |
| 区分大小写 | 自定义属性区分大小写 | market != Market != MARket |
| 允许的特殊字符 | 仅允许使用下划线 (_) 作为特殊字符 | item_name |
不能使用的属性名称(保留字)¶
发送自定义属性时的注意事项
如果您使用下面的保留字作为属性名称,它们将被**隔离到 rescue 表中**。无论情况如何,这都同样适用。
| 保留字 | 备注 |
|---|---|
attributes | 不论大小写(例如 Attributes、ATTRIBUTES) |
eventAttributes | 大小写无关 |
hiveAttributes | 大小写无关 |
属性取值规则¶
属性值格式注意事项
只能传输两种类型的属性值:数字类型**和**字符类型。 当以 JSON 对象、JSON 数组或 JSON 类型字符串的形式传输时,它是**隔离到 rescue 表中**。
| 数据类型 | 描述 | 示例 |
|---|---|---|
| 数字 | 整数或小数。发送时不带引号 | "level": 10、"exp": 1.5 |
| 字符类型 | 发送之前请务必将其用双引号 ("") 括起来 | "character_name": "AA" |
如果属性值的形式为对象JSON、数组JSON或JSON形式的字符串,则**隔离到表rescue**。
// JSON 对象(不允许)
"info": {"key": "value"}
// JSON 数组(不允许)
"items": [1, 2, 3]
// 形式为 JSON 的字符串(不允许)
"data": "{\"key\": \"value\"}"
相同属性名的重复传输¶
如果传输两个或多个相同的属性名称,则随机选择属性值并且**仅存储一个属性值**。
Hive SDK v4 自动收集的属性¶
仅当客户端将事件日志发送到 Hive SDK v4 时自动收集。
- 如果用户直接发送具有相同属性名称的值,则存储**用户发送的值**,而不是SDK自动收集的值。
- 以下属性存储在表中的
attributes.eventAttributes中。
Hive SDK v4 如果您使用事件日志传输功能,SDK 是直接从客户端设备收集和传输的属性。
必需的属性¶
必需属性中,SDK和v4是自动收集的属性。 (不包括 eventName)
| 属性名称 | 描述 | 示例 |
|---|---|---|
userId | 基于帐户的用户标识符。链接 Hive SDK 时,AuthV4.getPlayerInfo() 的 playerId 值 | 100001 |
deviceId | 基于终端的用户标识符。链接 Hive SDK 时,AuthV4.getPlayerInfo() 的 did 值 | 100000 |
identifierProvider | 用户标识符发布系统。目前仅支持 Hive 和 SDK 集成,因此 hive 已修复 | hive |
appId | Hive 控制台 > Project ID 已在应用中心注册 | com.com2us.game.ios |
appIdGroup | Hive 控制台 > Game 应用中心下发 ID. appId 传输时自动生成 | com.com2us.game |
eventTime | 事件发生的时间。 RFC 3339 国际标准(包括时区) | 2026-07-20T14:01:01+09:00 |
用户/帐户识别信息¶
| 属性名称 | 描述 | 域 | 示例 |
|---|---|---|---|
vid | 为每个项目(游戏)颁发的唯一用户帐户标识符(与userId相同)。登录完成后有效。 | Hive 平台(身份验证) | 136910540 |
uid | 这是注册 Hive 会员时颁发的唯一帐户标识符,是优于 vid 的概念。 | Hive 平台(会员) | 223786026 |
did | 安装应用程序时为每个设备颁发的唯一标识符(与 deviceId 相同)。重新安装应用程序后,将发出一张新卡。 | Hive 平台(配置) | 938743951 |
vid_type | vid的发行方案和账户类型。 | Hive 平台(应用中心) | v4 |
analytics_id | UUID.,由客户端创建并保留用于设备跟踪,一直保留到应用删除,并与 MMP 跟踪器共享相同的值。 | Hive 平台(配置) | 1qIXG3uDT4WzhV1e46GIYQ== |
时间/身份信息¶
| 属性名称 | 描述 | 域 | 示例 |
|---|---|---|---|
dateTime | 这是传输事件日志时生成的事件的日期和时间。 (yyyy-MM-dd HH | Hive SDK (核心) | 2026-01-01 00:00:00 |
guid | UUID(连字符已删除)每次传输事件日志时生成。用于事件日志的唯一标识和重复数据删除。 | Hive SDK (核心) | ecbfbd7fcdc340e1b8a433999c5290c1 |
is_hive_time | 标记事件日志中的时间戳是否Hive与服务器时间同步。 (Y/N) | Hive SDK (核心) | Y |
timezone | dateTime 该值所基于的时区偏移信息。 | Hive SDK (核心) | GMT+09:00 |
is_url_encode | 传输事件日志时是否应用URL编码的标志。 (Y 已修复) | Hive SDK (核心) | Y |
设备信息¶
| 属性名称 | 描述 | 域 | 示例 |
|---|---|---|---|
model | 设备的硬件型号标识符。 | 设备 | iPhone17,3 |
os | 这是设备的操作系统识别码。 (iOS: I, Android: A) | 设备 | I |
os_version | 您设备的操作系统版本。 | 设备 | 26.5.2 |
cpu | 设备的CPU架构。 | 设备 | arm64 |
language | 用户在设备上设置的首选语言和区域设置代码。 | 设备 | ko-KR |
device_country | 基于设备区域设置的国家/地区代码。 | 设备 | KR |
hive_country | 由 Hive 服务器根据 IP 连接确定的国家/地区代码。使用VPN时,可能与设备设置不同,无法判断时记录为UNKNOWN。 | Hive 平台(核心) | KR |
SDK/应用程序构建信息¶
| 属性名称 | 描述 | 域 | 示例 |
|---|---|---|---|
app_version | 这是应用程序的内部构建版本。 | Hive SDK (构建) | 1.0.32 |
app_version_display | 这是商店中显示的应用程序发布版本。 | Hive SDK (构建) | 1.0.32 |
sdk_version | 应用于当前项目的 Hive 和 SDK 版本。 | Hive SDK (构建) | 4.26.4.0 |
interface_version | 当前应用的SDK接口版本。 | Hive SDK (构建) | 4.26.4.0 |
build_time | 应用了 Hive 和 SDK 的构建时间戳。 | Hive SDK (构建) | 202605281104 |
SDK 设置信息¶
| 属性名称 | 描述 | 域 | 示例 |
|---|---|---|---|
server_id | 客户端设置的游戏服务器标识符为API。 | Hive SDK (设置) | kr |
game_language | 标准游戏内语言代码设置为 API。如果未设置,它将被设备语言替换。 | Hive SDK (设置) | ko |
channel | 基于配置文件的平台通道分隔符。 | Hive SDK (设置) | HIVE |
market | 这是发布应用程序的市场代码。 (Apple: AP, Google: GO) | Hive SDK (设置) | AP |
company | 标识为应用程序提供服务的发布者或公司的字符串。 | Hive 平台(应用中心) | hive |
companyIndex | 为应用程序提供服务的发布商或公司的索引。 | Hive 平台(应用中心) | 3 |
age_gate_u13 | 13 岁以下人士的年龄限制 (COPPA)。 SDK 在初始化之前,可能是null。 | Hive SDK (设置) | false |
接收服务器信息¶
| 属性名称 | 描述 | 域 | 示例 |
|---|---|---|---|
clientIp | 从接收服务器中提取发送事件日志 IP. 的客户端的实际连接,并在保存时屏蔽最后一个八位字节。 | 接收服务器 (WAS) | 123.123.123.0 |
注意事项 & Tips¶
- 必需的属性名称必须以驼峰大小写或小写形式发送,如果以蛇形大小写 (
user_id) 发送,它们将被隔离到 rescue 表中。 - 必须包含
appId或appIdGroup,否则将被隔离。 eventTime只能采用 RFC 3339 格式(包括时区),并且如果基于当前时间超过过去或未来 31 天,则会被隔离。attributes、eventAttributes和hiveAttributes不能用作用户定义的属性名称(不区分大小写)。- 属性值仅允许数字和字符类型,JSON对象、数组、JSON形式的字符串被隔离。
- 有关如何检查和重新发送隔离日志的信息,请参阅数据隔离。