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. |