Skip to content

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 send appId. appIdGroup is automatically generated.
  • If you don't know appId: Send appIdGroup directly.
  • If you send two values ​​at the same time, appIdGroup will be regenerated based on appId, so do not include appIdGroup when sending appId.
Precautions when transmitting required attributes

The event log is isolated into table rescue if any of the following conditions are true:

  • If neither appId nor appIdGroup is 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_verb format 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:

YYYY-MM-DDTHH:MM:SS[.sss]+HH:MM or YYYY-MM-DDTHH:MM:SSZ

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

  • eventTime is converted to UTC in the pipeline and stored in the table's dateTime column. The original value is preserved in attributes.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.eventAttributes in 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🇲🇲ss format) 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 appId or appIdGroup, otherwise it is isolated.
  • eventTime is 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, and hiveAttributes cannot 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.