Skip to content

subscription_purchase

This is an event that occurs when the subscription for a subscription product is renewed, and can be used to generate metrics such as subscription sales, PU, number of sales, purchase quantity, ARPU, and ARPPU.


Attribute name Data type Description
dateTime TIMESTAMP Indicates the date and time when the event occurred. It is recorded based on the time of event occurrence, and can be used as a basis for period unit (day/week/month/hour/minute) aggregation and date range searches. (Example: 2023-05-09 19:30:35)
eventName STRING Indicates a name that identifies the event. Since all events are loaded together in one source log, this value identifies which event it is and can be used as a standard for searching data on an event-by-event basis. (Example: app_login)
userId STRING Indicates the user identifier based on the account that triggered the event. It is recorded based on the unique user ID in the game, and can be used to count the number of unique users such as AU by deduplicating the number.
identifierProvider STRING Indicates the user identifier issuance system, and "hive" is fixed.
deviceId STRING Indicates the user identifier based on the terminal that generated the event. Each time an app is installed, it is recorded based on the instance value issued for each device, and can be used to count the number of unique devices (the number of terms and conditions agreed, etc.) by deduplicating the number. (Example: 33333333)
appIdGroup STRING Indicates the project where the event occurred. Hive is recorded based on the GAMEID value registered in the console app center, and can be used to compare indicators by dividing them by project when viewing multiple projects together. (Example: com.sample.analytics)
appId STRING Indicates the unique ID of the app where the event occurred. Hive is recorded based on APPID registered in the console app center, and can be used to distinguish indicators for each app. (Example: com.sample.analytics.google.global.android.common)
country STRING Indicates the country of the user identified at the time the event occurred. ISO 3166-1 alpha-2 It is recorded in uppercase format and can be used to compare the number of users, sales, retention, etc. by country. (Example: KR, US)
serverId STRING Indicates the game server the user connected to when the event occurred. It is recorded based on the server identifier sent by the game, and can be used to compare the number of users, sales, and retention by server. (Example: KR, GLOBAL)
model STRING Indicates the model name of the user terminal at the time the event occurred. It is recorded based on the terminal model value sent by the client, and can be used to compare indicators by device model. (Example: iPhone 12 Pro, SHW-M250S)
appVer STRING Indicates the game app version at the time the event occurred. It is recorded based on app version information, and can be used with the os attribute to compare users by app version. (e.g. 4.3.3, 1.6.5)
market STRING Indicates the market where the user installed the game when the event occurred. It is recorded based on the market value where the app is installed or serviced, and can be used to compare indicators by market. (Example: GO(Google Play), AP(Apple App Store), HS(direct distribution))
osVer STRING Indicates the OS version of the user terminal at the time the event occurred. It is recorded based on the terminal's operating system version value, and OS can be used to compare indicators by version. (Example: 9.2, 16.3.1)
lang STRING Indicates the language value at the time the event occurred. It is recorded based on the game or device language value (ISO 639 alpha-2 lowercase), and can be used to compare indicators by language. (Example: ko, en)
os STRING Indicates the operating system of the user terminal at the time the event occurred. It is recorded based on the platform value sent by the client, and can be used to compare indicators by OS. (Example: A(Android), I(iOS))
clientIp STRING Indicates IP of the user terminal where the event occurred. It is recorded based on the masked value of the last section of IP, and can be used to query data such as the number of terminals for a specific IP band. (Example: 127.0.0.x)
sdkVer STRING Indicates the Hive SDK version at the time the event occurred. It is recorded based on the Hive SDK version value applied to the client, and can be used to compare the data collection status by SDK version. (Example: 4.16.2.2)
productPrice INT(FLOAT) Indicates the payment amount based on one product. It is recorded based on the product price value delivered by the client at the time of payment (auxiliary to productId), and can be used to analyze product price and payment size through sum/average aggregation. (Example: 1.99)
currency STRING Indicates the payment currency unit at the time of purchase. It is recorded based on the payment currency value and can be used to distinguish sales by currency. (Example: KRW, USD, JPY)
quantity INT(INTEGER) Indicates the quantity of the product purchased by the user. It is recorded based on the quantity sent when processing a payment request or purchase, and can be used to calculate product sales quantity and average purchase quantity per user. (Example: 1, 20)
transactionId STRING Indicates a unique number that identifies the payment. General payments and refunds are recorded based on the receipt ID issued by the market, and subscriptions are recorded based on the identifier value issued per subscription. This can be used to count the number of payments or connect purchases and refund/cancellation events by removing duplicates. (Example: GPA.1234-5678-9101-12345)
productId STRING Indicates ID of the purchased product. Hive is recorded based on the unique product ID value registered in billing, and can be used to compare sales and number of purchases by product. (Example: com.sample.analytics.dia1000)
productName STRING Indicates the name of the purchased product. Hive It is recorded based on the unique product name value registered in billing, and can be used to compare sales by product name. (Example: Diamond 100)
level INT(INTEGER) Indicates the level value at the time the event occurred. Depending on the event, the level of the account, character, etc. at that time is recorded, and can be used to calculate the average level and final reached level by aggregating the average or maximum value. (Example: 43)
characterId STRING Indicates the character ID at the time of purchase. It is recorded based on the character ID value provided in the game information (game_info) of the purchase event, and can be used to compare payment indicators for each character.
characterTypeId STRING Indicates the character type ID at the time of purchase. It is recorded based on the character type value provided in the game information of the purchase event, and can be used to compare payment indicators by character type.
characterLevel STRING Indicates the character level at the time of purchase. It is recorded based on the character level value provided in the game information of the purchase event, and can be used to calculate the average character level of the paying user by averaging the aggregate.
isEmulator STRING Indicates whether the client was running on the emulator when the event occurred. It is recorded based on the value of whether the emulator is running or not provided in the game information, and can be used to compare indicators by emulator use. (Example: 1 (emulator), 0 (actual device))
subStartDateTime STRING Indicates the subscription renewal start date and time. It is recorded based on the subscription renewal start time for the relevant period (receipt verification request date and time for Google and Amazon), and can be used to analyze the subscription period and renewal cycle. (Example: 2026-07-21 15:16:17)
subEndDateTime STRING Indicates the subscription renewal end date and time. It is recorded based on the subscription renewal end time for the relevant period, and can be used to analyze the subscription period and renewal cycle. (Example: 2026-07-20 15:16:17)
itemSendOk STRING Indicates whether the in-game item was actually delivered after payment. It is recorded based on the value of whether or not the item has been received, and can be used to analyze success or failure of item delivery. (e.g. Y(delivered), N(not delivered), "" (unknown))
osVersionFixed STRING normalized version string x.x.x since 19.05.16
subPaymentState INT(INTEGER) Indicates subscription payment status (Google Subscription Payment v1). It is recorded based on the payment status value of Google Subscription v1, and can be used to distinguish indicators by subscription payment status. (Example: 0 (waiting for payment), 1 (payment completed), 2 (free trial))
subPaymentStateV2 STRING Indicates the subscription payment status (all except Google subscription payment v1). It is recorded based on the subscription payment status value of Google Subscription v2, Galaxy Store, Huawei, etc., and can be used to distinguish indicators by subscription status. (Example: SUBSCRIPTION_STATE_ACTIVE, SUBSCRIPTION_STATE_CANCELED)
serviceMarket STRING Indicates the service market where the purchase was made. It is automatically entered based on the market value registered in the App Center, and can be used to compare sales by market. (e.g. Google, Apple)