Skip to content

product_purchase

This is an event that occurs when the product receipt verification is completed, and can be used to generate metrics such as in-app 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)
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)
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)
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))
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))
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)
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)
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)
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.
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.
serverIdInt INT(INTEGER) Indicates the integer value of the game server ID connected to when the event occurred. It is recorded based on the server identifier converted to numeric form, and can be used to compare indicators for each server. (Example: 1008)
osVersionFixed STRING normalized version string x.x.x since 19.05.16
refundTransactionId STRING Represents the receipt ID at the time of refund when repaying. It is recorded based on the previous receipt ID value at the time of refund repayment (otherwise null), and can be used to identify refund user repayments.
analyticsId STRING Indicates the unique identification key for each app installation that triggered the event. It is recorded based on the base64 format 24-byte value issued when the app is initialized, and can be used to count the number of unique devices by deduplicating the number. (Example: EJFH9wsjEIn4Rf4321QrYA==)
paymentServiceType STRING Indicates the payment service type of the purchase. It is recorded based on service type values ​​such as in-game/web store, and can be used to compare sales by service type. (Example: ingame, webstore)
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)
userTotalPrice INT(FLOAT) Indicates the amount paid via custom-amount payment. For payments where isUserTotalPrice is Y, it is recorded based on the amount specified when the payment was requested, and can be used to analyze the scale and distribution of custom-amount payments.
isuserTotalPrice STRING Indicates whether the PG payment was made through the custom amount payment feature. It is recorded based on whether the payment was made in the amount specified at the time of payment request, rather than the fixed product price, and can be used to analyze the number and ratio of user-defined amount payments. (Example: Y, N)
totalPrice INT(FLOAT) Indicates the total amount paid for the purchase. It is recorded based on the total amount paid by the user, and can be used to calculate the total payment amount by aggregating the total.