Level Events
Overview
Tracking linear progression systems aims to help understand how players flow through the game and engage with the next stage of content.
Linear systems are defined by players being able to progress through only a single order of system stages; players cannot begin stages out of the set order.
👉 |
For example, if a game is designed to progress players through levels 1, 2, 3, 4, 5…100, the player cannot begin level 5 without performing some action on level 4 (completing, failing, abandoning). Generally, there should be no variance in the order of player progression through linear systems. |
Note that linear systems are not defined by the ability or restriction of replaying previous stages or skipping over stages as long as the order of future stages remains unchanged.
👉 |
For example, suppose a player chooses to replay previous stages’ content multiple times. In that case, it does not invalidate the linear model because the following stages must still begin in a single, specific order. ❌ → Level 1, Level 2, Level 3, Level 5 |
Available Events
level_start
: the start of a levellevel_step
: player progressing/stepping through the steps of a levellevel_complete
: the completion of a levellevel_fail
: player failing the levellevel_abandoned
: player leaving a level before failing or completing. This suggests that the player has to restart the level from scratch next time, and the current progress in this level is forfeited
Critical Parameters
-
Required
level_num
: the level number
-
Optional
mission_type
: the type of the mission/level/game mode/progression system- It’s an optional parameter, but it’s useful to include when the game has multiple linear progression systems
mission_name
: the name of the mission/levellevel_attempt
: the Nth time the player attempts the level. Increment the number by one every time the player restarts the level. In other words, we use thelevel_start
event in combination with this parameter to differentiate whether the level is the first attempt or retrylevel_collection1
: A collection of Game Levels. The second-order grouping (if applicable)level_collection2
: A collection of lower-level collections. The third-order grouping (if applicable)reward
: If a player succeeds in completing a level, they can be rewarded. Use the reward object to record all items/virtual currencies rewarded to the player. Note that this parameter is available in thelevel_complete
eventuser_score
: the final score of the level
đź’ˇ
If applicable, using the Optional parameters is recommended. The Optional parameters provide a much deeper context to the event, supporting data analysis effort.
Examples
- The Superhero League
- The game design meets the criteria of a linear progression where players have to progress through levels linearly, and they cannot begin the next level without performing some action on the last level (completing or skipping)
- The game’s progression system can be grouped by:
- Heros - each hero has a different power, hence play mechanic
- Chapters - each Hero has two Chapters of content for players to go through
- Levels - each Chapter has N Levels
- Main loop
- Players choose a Hero Chapter to engage with
- There’s no fail state in the game, and players can retry the same level multiple times without any cost
- Players can choose to skip a Level
- The next Level unlocks when the player earns at least one star in the last level or when they choose to skip the level
![](/docs/2_Features/Analytics/Planning/LevelEvents/IMG_4579.png)
![](/docs/2_Features/Analytics/Planning/LevelEvents/IMG_4581.png)
- Example of Event trigger timing and the usage of critical parameters
level_start
: when a fresh level attempt startsmission_type
= “Level”mission_name
= “Super Psychic”level_collection1
= “Chapter 1”level_num
= 47level_attempt
= 1 [1st attempt]
level_abandoned
: when the player leaves the current level progress by going back to the main screenmission_type
= “Level”mission_name
= “Super Psychic”level_collection1
= “Chapter 1”level_num
= 47level_attempt
= 1 [1st attempt]
level_start
: when the player restarts/re-attempts the same levelmission_type
= “Level”mission_name
= “Super Psychic”level_collection1
= “Chapter 1”level_num
= 47level_attempt
= 2 [2nd attempt]
level_complete
: when the player successfully passes the level by earning 1 star-
mission_type
= “Level” -
mission_name
= “Super Psychic” -
level_collection1
= “Chapter 1” -
level_num
= 47 -
level_attempt
= 2 -
user_score
= 1 -
reward
={ "rewardName": "level_complete_reward", "rewardProducts": { "items": [ { "itemAmount": 1, "itemName": "sniper", "itemType": "booster" } ], "realCurrency": null, "virtualCurrencies": [ { "virtualCurrencyAmount": 150, "virtualCurrencyName": "coins", "virtualCurrencyType": "coins" } ] } }
-
Implementation
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 Level Progression Dashboard or the Level Funnels - Studio Management dashboard should populate.
Dashboard & Analysis
Analyses
- General Level/Progression feature engagement performance
- Level Completion/Conversion funnel identifies level pinch point
- Level Completion time to fine-tune level difficulty settings
- Level distribution by tenure helps understand how fast players are consuming the content after install
- Economy sink/source analyses - whether the players are getting too many resources from completing/engaging with the levels
Metrics
Avg Level Attempt per User
Avg Level Score
Avg Level Fail per User
Level Success Rate
Level Fail Rate
Avg Level Complete Time in App