Skip to content

product_purchase

An event that occurs when receipt verification for a product is completed. You can use it to create metrics such as in-app revenue, PU, the number of sales, purchase quantity, ARPU, and ARPPU.


Attribute name Data type Description
dateTime TIMESTAMP Indicates the date and time when the event occurred. Recorded based on the event time, and can be used as the basis for aggregation by period unit (day/week/month/hour/minute) and date range queries. (Example: 2023-05-09 19:30:35)
eventName STRING Indicates the name that identifies the event. Because all events are loaded together into a single source log, this value identifies which event it is, and it can be used as the basis for querying data by event. (Example: app_login)
userId STRING Indicates the account-based identifier of the user who triggered the event. Recorded based on the user's unique ID in the app, and can be used to count unique users, such as AU, with a distinct count aggregation.
identifierProvider STRING Indicates the system that issued the user identifier. The value is always "hive".
deviceId STRING Indicates the device-based identifier of the user who triggered the event. Recorded based on the instance value issued for each device every time the app is installed, and can be used to count unique devices (such as the number of terms agreements) with a distinct count aggregation. (Example: 33333333)
appIdGroup STRING Indicates the project where the event occurred. Recorded based on the GAMEID value registered in Hive Console > Project Settings > App ID, and can be used to compare metrics by project when you query multiple projects together. (Example: com.sample.analytics)
appId STRING Indicates the unique ID of the app where the event occurred. Recorded based on the APPID registered in Hive Console > Project Settings > App ID, and can be used to distinguish metrics by app. (Example: com.sample.analytics.google.global.android.common)
country STRING Indicates the user's country identified when the event occurred. Recorded in ISO 3166-1 alpha-2 uppercase format, and can be used to compare the number of users, revenue, retention, and so on by country. (Example: KR, US)
serverId STRING Indicates the app server the user was connected to when the event occurred. Recorded based on the server identifier sent by the app, and can be used to compare the number of users, revenue, and retention by server. (Example: KR, GLOBAL)
osVer STRING Indicates the OS version of the user's device when the event occurred. Recorded based on the device's operating system version, and can be used to compare metrics by OS version. (Example: 9.2, 16.3.1)
model STRING Indicates the model name of the user's device when the event occurred. Recorded based on the device model value sent by the client, and can be used to compare metrics by device model. (Example: iPhone 12 Pro, SHW-M250S)
lang STRING Indicates the language value when the event occurred. Recorded based on the app or device language (ISO 639 alpha-2, lowercase), and can be used to compare metrics by language. (Example: ko, en)
os STRING Indicates the operating system of the user's device when the event occurred. Recorded based on the platform value sent by the client, and can be used to compare metrics by OS. (Example: A (Android), I (iOS))
appVer STRING Indicates the app version when the event occurred. Recorded based on the app version information, and can be used with the os attribute to compare users by app version. (Example: 4.3.3, 1.6.5)
market STRING Indicates the market where the user installed the app when the event occurred. Recorded based on the market where the app is installed or serviced, and can be used to compare metrics by market. (Example: GO (Google Play), AP (Apple App Store), HS (direct distribution))
clientIp STRING Indicates the IP of the user's device where the event occurred. Recorded with the last segment of the IP masked, and can be used to query data such as the number of devices by IP range. (Example: 127.0.0.x)
sdkVer STRING Indicates the Hive Axyl SDK version when the event occurred. Recorded based on the Hive Axyl SDK version applied to the client, and can be used to compare data collection status by SDK version. (Example: 1.0.0)
productPrice INT(FLOAT) Indicates the payment amount for a single product. Recorded based on the product price sent by the client at the time of payment (supplementing productId), and can be used to analyze product prices and payment volume with sum and average aggregations. (Example: 1.99)
currency STRING Indicates the payment currency at the time of purchase. Recorded based on the payment currency value, and can be used to separate revenue by currency. (Example: KRW, USD, JPY)
quantity INT(INTEGER) Indicates the quantity of products the user purchased. Recorded based on the quantity sent in the payment request or during purchase processing, and can be used to calculate the number of products sold and the average purchase quantity per user. (Example: 1, 20)
transactionId STRING Indicates the unique number that identifies a payment. Recorded based on the receipt ID issued by the market for regular payments and refunds, and on the identifier issued per subscription for subscriptions, and can be used to count payments with a distinct count aggregation or to link purchases with refund and cancellation events. (Example: GPA.1234-5678-9101-12345)
productName STRING Indicates the name of the purchased product. Recorded based on the unique product name registered in Hive Billing, and can be used to compare revenue by product name. (Example: Diamond 100)
productId STRING Indicates the ID of the purchased product. Recorded based on the unique product ID registered in Hive Billing, and can be used to compare revenue and the number of purchases by product. (Example: com.sample.analytics.dia1000)
level INT(INTEGER) Indicates the level value when the event occurred. Depending on the event, the level at that time, such as the account or character level, is recorded, and it can be used to calculate the average level and the final level reached with an average or maximum aggregation. (Example: 43)
characterId STRING Indicates the character ID at the time of purchase. Recorded based on the character ID sent in the app information (game_info) of the purchase event, and can be used to compare payment metrics by character.
characterLevel STRING Indicates the character level at the time of purchase. Recorded based on the character level sent in the app information of the purchase event, and can be used to calculate the average character level of paying users with an average aggregation.
serverIdInt INT(INTEGER) Indicates the integer value of the ID of the app server accessed when the event occurred. Recorded based on the server identifier converted to a number, and can be used to compare metrics by server. (Example: 1008)
osVersionFixed STRING normalized version string x.x.x since 19.05.16
refundTransactionId STRING Indicates the receipt ID at the time of the refund when a repayment is made after a refund. Recorded based on the previous receipt ID in the repayment after a refund (null otherwise), and can be used to identify repayments by users who received refunds.
analyticsId STRING Indicates the unique identification key of the app installation that triggered the event. Recorded based on the 24-byte base64 value issued when the app is initialized, and can be used to count unique devices with a distinct count aggregation. (Example: EJFH9wsjEIn4Rf4321QrYA==)
paymentServiceType STRING Indicates the payment service type of the purchase. Recorded based on the service type value, such as in-app or web store, and can be used to compare revenue by service type. (Example: ingame, webstore)
serviceMarket STRING Indicates the service market where the purchase was made. Filled in automatically based on the market value registered in Project Settings > App ID, and can be used to compare revenue by market. (Example: Google, Apple)
userTotalPrice INT(FLOAT) Indicates the amount paid through a custom amount payment. Recorded based on the amount specified in the payment request for payments where isUserTotalPrice is Y, and can be used to analyze the volume and distribution of custom amount payments.
isuserTotalPrice STRING Indicates whether the PG payment was made through the custom amount payment feature. Recorded based on whether the payment was made with the amount specified in the payment request rather than a fixed product price, and can be used to analyze the number and ratio of custom amount payments. (Example: Y, N)
totalPrice INT(FLOAT) Indicates the total payment amount of the purchase. Recorded based on the total amount the user paid, and can be used to calculate the total payment amount with a sum aggregation.