Economy Events
Overview
Use Economy events to track when the player spends currency (in-game or actual). This event type can be used to monitor the health of the in-game economy and the player’s interaction with in-app purchases.
Game economies vary greatly but generally conform to the following characteristics.
- Virtual Currency Systems - In-game currency (e.g., coins, gems, gold) can be earned through activity in the game and used to purchase in-game items or services. Virtual currency systems often have two or more types of currency - premium (hard) and basic (soft) currency.
- Real Currency Purchasing - Real-life currency (e.g., USD, Euros, Yen, RMB) can be used to purchase virtual currencies or in-game items or services, typically called in-app purchases.
- Currency Sources - Activities in the game that increase the virtual currency balance of the player. Sources may include rewards from completing playable content (level, mission), logging in consecutive days, fulfilling tasks, or special events (LiveOps).
- Currency Sinks - Activities in the game that decrease the virtual currency balance of the player. Sinks may include purchasing consumable or durable items, upgrading abilities, and score multiplier opportunities, etc.
Activities that impact the game economy are identifiable by the use of Product and Reward objects, which have structures that support adding Real Currency, Virtual Currency, and Item data. The Economy and InAppPurchase events are purpose-made to capture spending and receipt for direct transactions (i.e., in-game storefront), while multiple other events include an optional parameter for a Reward object. The collective tracking of all events with Product and Reward objects provides information on the state of the game economy.
💡 |
If the player gains something without spending real or virtual currency, use an event with a reward object instead of one of these events. See here for the available events
|
Available Events
IAP purchases
inapp_purchase
Other in-game purchases
economy
Critical Parameters
- Required
transaction
: dictionary containing relevant information about the transaction:name
: descriptive name about the event - this can be a friendly name for an IAP package or some other descriptorproductID
: the IAP package (when relevant), otherwise this can mirror thename
productReceived
: this is a dictionary of the products received by the player from the transaction-
items
: this is an array of items received. Each item received should be represented in this array with these keys:itemAmount
: integer representing the number of itemsitemType
: string for broad item categoryitemName
: string for more specific item name
-
realCurrency
: this is a dictionary of any actual currency the player earns.realCurrencyType
: the currency code (e.g., USD, GBP, HKD, etc). The value must use the ISO 4217 Currency Code for the location of the playerrealCurrencyAmount
: the amount of currency received
💡
Please note that for realCurrencyAmount
, the developer has to provide the currency’s actual face value. Lion Analytics then transforms this value into the minor units behind the scene. For example, for an IAP that costs $2.99 USD, the dev needs to providerealCurrencyType
= ‘USD’ andrealCurrencyAmount
= 2.99; And we should observe on our end (in Snowflake and Looker)realCurrencyType
= ‘USD’ andrealCurrencyAmount
= 299💡
We perform currency conversion in our data pipelines. The conversion relies on the values of realCurrencyType
andrealCurrencyAmount
-
virtualCurrencies
: this is an array of virtual currencies earned. Each currency earned should be represented in this array with these keys:virtualCurrencyAmount
: integer representing the currency receivedvirtualCurrencyType
: the broad type of currency earned (i.e.Soft
,Hard
)virtualCurrencyName
: the specific name for the currency earned (i.e.Coins
,Gems
)
-
productSpent
is a dictionary using the same format as theproductReceived
dictionary but for currencies or items spent by the player.transactionID
: the transaction ID from the App Store used for the purchase. Can be any value for a non-IAP event.type
: General category for the event in question
💡 |
While the transaction object supports real currency in both spent and received objects, no Lion Studios games currently allow the player to earn real currency.
|
- Example
transaction
frominapp_purchase
event:
{
"name": "specialOffer",
"productID": "com.nz.puzzlewar.special.3",
"productReceived": {
"items": [
{
"itemAmount": 43200,
"itemName": "booster_KeysSpeedUpx2",
"itemType": "booster"
},
{
"itemAmount": 43200,
"itemName": "booster_DoubleColor",
"itemType": "booster"
}
],
"realCurrency": null,
"virtualCurrencies": [
{
"virtualCurrencyAmount": 1500,
"virtualCurrencyName": "gold",
"virtualCurrencyType": "soft"
},
{
"virtualCurrencyAmount": 50,
"virtualCurrencyName": "gems",
"virtualCurrencyType": "hard"
}
]
},
"productSpent": {
"items": [],
"realCurrency": {
"realCurrencyAmount": 299,
"realCurrencyType": "USD"
},
"virtualCurrencies": []
},
"transactionID": "380001273305214",
"type": "iap"
}
Event Validation
-
If you do not have access to Looker, please use the LionAnalytics QA Tool following the instructions here: LionAnalytics QA Tool
-
If you have access to Looker, for each relevant event, check the following:
- The event name appears [ref]
- The critical parameters of the events are present [ref]
Dashboard & Analysis
Analyses
- General IAP performance
- First conversion timing (level, days since install, etc.) to help evaluate whether in-game pinch points are effective
- Daily IAP revenue broken down by packages (i.e., product ID)
- Player repeat purchase behavior
- Economy sink/source analyses
- where are player getting and spending resources
- whether the players are getting too many resources from certain in-game actions/features
Metrics
Number of purchases
Avg, Median days between purchases
Avg, Median Levels (linear games) to first IAP
Avg, Median Purchase amount