Event attribute transmission¶
Overview¶
Game event logs consist of required attributes and user-defined attributes. If you link Hive SDK v4, automatically collected attributes will be added without separate transmission.
Required-attribute¶
This attribute must be included when transmitting game event logs.
Required attribute naming convention
Required attribute names must be sent in camel case (camelCase) or lowercase (lowercase). If you send it to the snake case (snake_case) like user_id, it will not be processed properly and will be isolated into the rescue table.
| Attribute name | Description | data type | Example |
|---|---|---|---|
userId | Account-based user identifier | STRING | 100001 |
deviceId | Terminal-based user identifier | STRING | 100000 |
identifierProvider | User identifier issuance system. Fixed hive | STRING | hive |
appId | Hive Console > Project ID registered in App Center | STRING | com.com2us.game.ios |
appIdGroup | Hive Console > Game issued by App Center ID. appId Automatically generated upon transmission | STRING | com.com2us.game |
eventTime | Time of event occurrence. RFC 3339 International Standard (including time zone) | STRING | 2026-07-20T14:01:01+09:00 |
eventName | Event name that classifies events | STRING | asset_drop |
appId / appIdGroup transport rule
When sending an event, you must include either appId or appIdGroup.
- If you know
appId: Just sendappId.appIdGroupis automatically generated. - If you don't know
appId: SendappIdGroupdirectly. - If you send two values at the same time,
appIdGroupwill be regenerated based onappId, so do not includeappIdGroupwhen sendingappId.
Precautions when transmitting required attributes
The event log is isolated into table rescue if any of the following conditions are true:
- If neither
appIdnorappIdGroupis present - If any of the remaining required attributes (
userId,identifierProvider,deviceId,eventTime,eventName) is missing or has an empty value. - Even if the value is unknown, do not leave it empty, but fill in a random value such as
"0"or"unknown"and send it.
eventName naming convention¶
It is recommended that the event name used for eventName be written according to the rules below.
- Recommended characters: English letters (a–z, A–Z, case sensitive), numbers (0–9), underscore (
_) - Separator: Words are separated by underscores (
_) rather than spaces. - Format:
noun_verbformat is recommended as it clearly describes the event. - Example:
item_purchase,level_up,tutorial_complete,stage_start
Warning
Event names that do not comply with the above rules may have limitations in their use in analysis.
eventTime format rule (RFC 3339)¶
eventTime follows the format RFC 3339 and must include time zone information.
form:
Acceptable examples:
2026-07-20T14:01:01+09:00 (KST, Korea Standard Time)
2026-07-20T05:01:01Z (UTC)
2026-07-20T14:01:01.123+09:00 (including milliseconds)
2026-07-20T23:01:01-05:00 (US Eastern Time)
Examples not allowed:
2026-07-20 14:01:01 (No time zone → quarantine)
2026-07-20 (No time → Quarantine)
1719835261 (Unix timestamp → quarantine)
14:01:01 (no date → quarantine)
eventTime¶
eventTimeis converted to UTC in the pipeline and stored in the table'sdateTimecolumn. The original value is preserved inattributes.eventAttributes.eventTime.
Precautions when transmitting eventTime
eventTime only accepts values within the range 31 days in the past to 31 days in the future based on the current time. Outside this range, the event log is isolated into table rescue.
user-defined attribute¶
The information you want to transmit in the game consists of attribute names and attribute values and is transmitted directly along with the required attributes.
Attribute name rules¶
| Rules | Description | Example |
|---|---|---|
| start letter | Must start with lowercase or uppercase letter | level, Stage |
| Case sensitive | Custom attributes are case sensitive | market != Market != MARket |
| Allowed special characters | Only underscores (_) are allowed as special characters | item_name |
Attribute names that cannot be used (reserved words)¶
Precautions when sending custom attributes
If you use the reserved words below as attribute names, they will be isolated into the rescue table. The same applies regardless of case.
| Reserved word | Remarks |
|---|---|
attributes | Regardless of case (e.g. Attributes, ATTRIBUTES) |
eventAttributes | case irrelevant |
hiveAttributes | case irrelevant |
Attribute value rules¶
Attribute value format precautions
Only two types of attribute values can be transmitted: numeric type and character type. When transmitted in the form of a JSON object, JSON array, or JSON type string, it is isolated into the rescue table.
| data type | Description | Example |
|---|---|---|
| numeric | Integer or decimal. Send without quotes | "level": 10, "exp": 1.5 |
| character type | Be sure to enclose it in double quotation marks ("") before sending | "character_name": "AA" |
If the attribute value is in the form of an object JSON, an array JSON, or a string in the form of JSON, it is isolated into a table rescue.
// JSON object (not allowed)
"info": {"key": "value"}
// JSON array (not allowed)
"items": [1, 2, 3]
// String of the form JSON (not allowed)
"data": "{\"key\": \"value\"}"
Duplicate transmission of the same attribute name¶
If two or more identical attribute names are transmitted, the attribute value is randomly selected and only one attribute value is stored.
Hive SDK v4 Auto-collected attributes¶
Automatically collected only when a client sends event logs to Hive SDK v4.
- If the user directly sends a value with the same attribute name, the value sent by the user is stored instead of the value automatically collected by SDK.
- The attributes below are stored in
attributes.eventAttributesin the table.
If you use the Hive SDK v4 event log transmission feature, these are attributes that the SDK collects and transmits directly from the client device.
Required attributes¶
Among Required attributes, these are attributes that Hive SDK v4 automatically collects. (Excluding eventName)
| Attribute name | Description | Example |
|---|---|---|
userId | Account-based user identifier. When linking Hive SDK, the playerId value of AuthV4.getPlayerInfo() | 100001 |
deviceId | Terminal-based user identifier. When linking Hive SDK, the did value of AuthV4.getPlayerInfo() | 100000 |
identifierProvider | User identifier issuance system. Currently, only Hive and SDK integration is supported, so hive is fixed | hive |
appId | Hive Console > Project ID registered in App Center | com.com2us.game.ios |
appIdGroup | Hive Console > Game issued by App Center ID. appId Automatically generated upon transmission | com.com2us.game |
eventTime | Time of event occurrence. RFC 3339 International Standard (including time zone) | 2026-07-20T14:01:01+09:00 |
User/Account Identification Information¶
| Attribute name | Description | domain | Example |
|---|---|---|---|
vid | Unique user account identifier issued for each project (game) (same as userId). Valid after completing login. | Hive Platform (Authentication) | 136910540 |
uid | This is a unique account identifier issued when signing up for Hive membership, and is a superior concept to vid. | Hive Platform (Membership) | 223786026 |
did | Unique identifier issued for each device when installing the app (same as deviceId). A new card will be issued when the app is reinstalled. | Hive Platform (Provisioning) | 938743951 |
vid_type | Issuance scheme and account type of vid. | Hive Platform (App Center) | v4 |
analytics_id | UUID., created and persisted by the client for device tracking, persists until app deletion, and shares the same value as the MMP tracker. | Hive platform (provisioning) | 1qIXG3uDT4WzhV1e46GIYQ== |
Time/Identification Information¶
| Attribute name | Description | domain | Example |
|---|---|---|---|
dateTime | This is the date and time of the event generated when transmitting the event log. (yyyy-MM-dd HH | Hive SDK (core) | 2026-01-01 00:00:00 |
guid | UUID (hyphen removed) generated each time an event log is transmitted. Used for unique identification and deduplication of event logs. | Hive SDK (core) | ecbfbd7fcdc340e1b8a433999c5290c1 |
is_hive_time | Flag whether the timestamp in the event log is Hive synchronized with the server time. (Y/N) | Hive SDK (core) | Y |
timezone | dateTime Time zone offset information on which the value is based. | Hive SDK (core) | GMT+09:00 |
is_url_encode | Flag indicating whether to apply URL encoding when transmitting event logs. (Y fixed) | Hive SDK (core) | Y |
Device information¶
| Attribute name | Description | domain | Example |
|---|---|---|---|
model | The device's hardware model identifier. | Device | iPhone17,3 |
os | This is the device's operating system identification code. (iOS: I, Android: A) | Device | I |
os_version | The operating system version of your device. | Device | 26.5.2 |
cpu | The CPU architecture of the device. | Device | arm64 |
language | The user's preferred language and locale code set on the device. | Device | ko-KR |
device_country | Country code based on device regional settings. | Device | KR |
hive_country | Country code determined by Hive server based on IP connection. When VPN is used, it may differ from the device settings, and if judgment is not possible, it is recorded as UNKNOWN. | Hive platform (core) | KR |
SDK/App build information¶
| Attribute name | Description | domain | Example |
|---|---|---|---|
app_version | This is the internal build version of the app. | Hive SDK (build) | 1.0.32 |
app_version_display | This is the app release version displayed on the store. | Hive SDK (build) | 1.0.32 |
sdk_version | The Hive and SDK versions applied to the current project. | Hive SDK (build) | 4.26.4.0 |
interface_version | The currently applied interface version of SDK. | Hive SDK (build) | 4.26.4.0 |
build_time | Build timestamps of Hive and SDK applied. | Hive SDK (build) | 202605281104 |
SDK Setting information¶
| Attribute name | Description | domain | Example |
|---|---|---|---|
server_id | Game server identifier set by the client to API. | Hive SDK (settings) | kr |
game_language | Standard in-game language code set to API. If not set, it will be replaced by the device language. | Hive SDK (settings) | ko |
channel | Platform channel separator based on configuration file. | Hive SDK (settings) | HIVE |
market | This is the market code where the app was released. (Apple: AP, Google: GO) | Hive SDK (settings) | AP |
company | A string that identifies the publisher or company serving the app. | Hive Platform (App Center) | hive |
companyIndex | An index of the publisher or company serving the app. | Hive Platform (App Center) | 3 |
age_gate_u13 | Age gate for those under 13 (COPPA). SDK Before initialization, it may be null. | Hive SDK (settings) | false |
Receiving server information¶
| Attribute name | Description | domain | Example |
|---|---|---|---|
clientIp | The actual connection of the client that sent the event log IP. is extracted from the receiving server, and the last octet is masked when saving. | receiving server (WAS) | 123.123.123.0 |
Precautions & Tips¶
- Required attribute names must be sent in camel case or lowercase, and if sent in snake case (
user_id), they will be isolated into the rescue table. - Must contain either
appIdorappIdGroup, otherwise it is isolated. eventTimeis only allowed in the RFC 3339 format (including time zone), and will be quarantined if it exceeds 31 days past or future based on the current time.attributes,eventAttributes, andhiveAttributescannot be used as user-defined attribute names (case is irrelevant).- Only numeric and character types are allowed as attribute values, and strings in the form of JSON objects, arrays, and JSON are isolated.
- For information on how to check and resend quarantined logs, see Data Isolation.
Related menu¶
- Event transmission — Guide to event/attribute concepts
- Event Template — List of default automatically collected events by category
- Event log transmission — Transmission method via Hive SDK v4, Hive Axyl, Fluentd, HTTP
- Event storage structure — table structure, attributes detailed attributes, data isolation