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.

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 descriptor
      • productID: the IAP package (when relevant), otherwise this can mirror the name
      • 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 items
          • itemType: string for broad item category
          • itemName: 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 player
          • realCurrencyAmount: the amount of currency received
        • 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 received
          • virtualCurrencyType: 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 the productReceived 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
  • Example transaction from inapp_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

Explore

IAP Events

Dashboard