Skip to content

Event Design and Transmission Guide

What Is Event Taxonomy?

Event Taxonomy is a classification system that organizes collected events and attributes into a consistent structure with naming rules.

If the many actions that occur in a game, such as login, purchase, and leveling up, are collected without any rules, different teams may send the same data under different names, or it may become difficult to understand what each piece of data means during analysis. Event Taxonomy prevents this confusion and helps make collected data immediately usable for analysis.


Why Is It Needed?

Problem With Taxonomy Applied
The same event is sent under different names by different teams Data can be unified under a consistent name
It is unclear which attributes are included in which events The attribute structure becomes clear, making the analysis scope easy to understand
New events are defined arbitrarily without a standard They can be expanded consistently according to existing rules
Data quality issues are discovered too late Schema-based prevalidation becomes possible

Structure

Analytics event taxonomy consists of two layers: Event and Attribute.

Event
├── Platform Attribute   ← Automatically collected with SDK integration only
└── Event Attribute      ← Sent directly with the event

What Is an Event?

An event is a unit that records a specific action performed by a user in the game as data. It contains "when, who, and what happened" and becomes the most basic unit of analysis.

  • Example: A user purchased an item -> item_purchase event occurs
  • Example: A user cleared a specific stage -> stage_clear event occurs
  • Example: A user logged into the app -> login event occurs

What Is an Attribute?

An attribute is detailed information recorded together when an event occurs. With only the event, you can know only "what happened", but attributes let you understand "under what conditions and with what values" it happened.

  • Example: Attributes of the item_purchase event -> item ID, payment amount, currency unit
  • Example: Attributes of the stage_clear event -> stage number, clear time, used character

Attributes are divided into two types depending on who collects them.

  • Platform Attribute: Attributes automatically collected by Hive through SDK integration only, without additional configuration. Includes country, OS, app version, server ID, etc.
  • Event Attribute: Attributes sent directly with the event. You define and send the items needed for analysis.

Sending Custom Events

Custom events defined directly in the game can be used in Analytics for analysis if they are sent according to the collection schema below.

Actual data transmission uses Hive SDK Client Log Transmission. The source code required for transmission can be automatically generated by language in the [Source Generation] tab of Event.

Before sending events, if you define the event name and attributes in Event, it is convenient for sharing and management within the team. However, even if you send data without prior definition, Analytics automatically recognizes the received data and reflects it in the event list within up to 1 hour.

Note

Automatically recognized events are displayed with system as the creator in the event list, and you can further manage them by entering descriptions and attribute information in the event screen.

Analytics Collection Schema

This is the default schema used when sending custom events. All events must be sent in the format below.

Field Required Description
identifierProvider Required Specifies the user identifier issuance system. If Hive SDK is integrated, enter hive.
userId Required User identifier based on account. If no value exists, null is allowed.
deviceId Required User identifier based on device. If no value exists, null is allowed.
appId Required Enter the app ID registered in Hive Console > App Center.
dateTime Required The date and time when the event occurred.
timezone Required The timezone at the time the event occurred.
category Required The category value that determines the table where the data is collected. Custom events must always be sent fixed as raw_event_log. If a different value is entered, the event data will not be collected into the correct table.
eventName Required The event name that classifies the event.
eventAttribute Required The bundle of attributes sent with the event. The items must be defined, and null is allowed if no value exists.
hiveAttribute Required The bundle of platform attributes provided by the Hive provisioning server. Currently, developers must set and send the values directly. The items must be defined, and null is allowed if no value exists.
Warning

Be careful not to let both userId and deviceId be null if possible. If both values are missing, the user cannot be identified, which may make cohort-based user analysis difficult.

Event Name Naming Rules

It is recommended that event names used in eventName follow the rules below.

  • Recommended characters: English letters (a-z, A-Z, case-sensitive), numbers (0-9), underscore (_), hyphen (-)
  • Separator: Separate words with underscore (_) rather than spaces
  • Form: A noun_verb structure that clearly describes the event is recommended
  • Examples: item_purchase, level_up, tutorial_complete, stage_start
Warning

Event names that do not follow the rules above may have limitations when used in analysis.

Example Structure of hiveAttribute / eventAttribute

hiveAttribute and eventAttribute are each sent as JSON objects.

hiveAttribute - Platform attributes provided by the Hive provisioning server. Market, server ID, and similar values belong here. Currently, developers must set and send the values directly. This will be changed to an automatic collection method in the future.

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

eventAttribute - Attributes sent directly with the event. These contain detailed information needed to analyze the event.

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

Regardless of transmission format, attribute values are recognized as strings by default in Analytics. For attributes that need to be aggregated as numeric or date types, change the attribute's data type in the [Attribute] tab of the Event screen.

Attribute Naming Rules

It is recommended that the key names of eventAttribute and hiveAttribute follow the rules below.

  • Recommended characters: English letters (a-z, A-Z, case-sensitive), numbers (0-9), underscore (_), hyphen (-)
  • Separator: Separate words with underscore (_) rather than spaces
  • Examples: item_id, contents-type, stage_level
Warning

Attribute keys that do not follow the rules above may have limitations when used in analysis.

Attribute Key Conversion Rules

When attributes are sent, the system automatically converts some key names according to the rules below. Be careful, because the actual key names queried during analysis may differ.

-Hive Suffix (hiveAttribute)

-Hive is automatically appended to the end of all keys in hiveAttribute.

Sent Key Key Displayed in Analytics
country country-Hive
market market-Hive

-Event Suffix (eventAttribute)

-Event is automatically appended only when a key in eventAttribute overlaps with one of the following 8 common fields:

  • timezone, dateTime, identifierProvider, userId, deviceId, appId, category, eventName
Sent Key Common Field Conflict Key Exposed in Analytics
category O category-Event
level X level (no conversion)
Warning

For both hiveAttribute and eventAttribute, data is stored based on the key name after conversion. During analysis, you must query attributes using the converted names (-Hive, -Event).


Below are examples of events that are highly useful in Analytics. If you send each event according to eventName and eventAttribute, you can analyze them immediately using all Analytics features such as chart, funnel, and retention.

Level Up

eventName Description
account_level_up Account level up
character_level_up Character level up
guild_level_up Guild level up
skill_level_up Skill level up

eventAttribute (common):

Attribute Description Example
levelPrev Level before level up 10
level Level after level up 11

Currency

eventName Description
asset_earn Currency acquired
asset_spend Currency spent

eventAttribute (common):

Attribute Description Example
assetName Currency name diamond, gold
actionName Reason for change inapp_purchase, quest_reward
amountPrev Currency amount before change 500
amountVar Amount of change 100
amountCurr Currency amount after change 600
isPaid Whether the currency is paid Y, N

Content

eventName Description
contents_start Content accepted/started
contents_success Content completed
contents_fail Content failed
contents_cancel Content canceled

eventAttribute (common):

Attribute Description Example
modeTypeName Content type raid, quest
userLevel User level 50
playTimeSec Play time (seconds) 120
Tip

If you build a funnel with the flow contents_start -> contents_success / contents_fail / contents_cancel, you can analyze completion rates and drop-off points by content type.

In-App Store

eventName Description
store_view View product detail in store
store_purchase_click Click purchase for store product

eventAttribute (common):

Attribute Description Example
productLocation Product exposure location package, main_shop
productType Product type pay, free, advertisement
Tip

You can analyze product-specific click conversion rates with a store_view -> store_purchase_click funnel.

Mate

eventName Description
mate_earn Mate acquired
mate_spend Mate spent/sold/deleted

eventAttribute (common):

Attribute Description Example
mateId Mate ID pet_001
mateGrade Mate grade rare, epic
mateChangeFlag Change path gacha, purchase, upgrade, sell
mateChangeAmount Amount of change 1

Social Activities

eventName Description
party_action Party activity (invite, join, leave)
friend_action Friend activity (add, remove)
guild_action Guild activity (join, leave, expel)

  • Event - Register and manage events and attributes
  • Metric - Save frequently used event aggregation settings as metrics