Skip to main content

Progression Dashboard

Track player progression, level completion, and achievement unlocks.


Overview

The Progression Dashboard provides insights into how players move through your game:

  • Level Funnels -- Completion rates by level/stage
  • Drop-off Points -- Where players stop progressing
  • Difficulty Analysis -- Attempts and failure rates per level
  • Player Velocity -- How fast different player segments progress
  • Achievement Distribution -- Unlock rates across your player base

Required Events

EventSDK MethodAuto-TrackedPriority
progressionTrackProgression()NoRequired
level_upTrackLevelUp()NoRecommended
achievementTrackAchievement()NoRecommended

Event Implementation

Progression Event

The progression event is the most detailed tracking method for player advancement. Use it for level starts, completions, and failures to build full-funnel visibility.

using GameRebellionSdk.Unity;

// Level start
GameRebellion.TrackProgression(new GrProgressionEvent
{
Type = "level",
Status = "start",
Progression01 = "world_1",
Progression02 = "level_5",
Difficulty = "normal"
});

// Level complete
GameRebellion.TrackProgression(new GrProgressionEvent
{
Type = "level",
Status = "complete",
Progression01 = "world_1",
Progression02 = "level_5",
Score = 15000,
CompletionTime = 245.0,
Difficulty = "normal",
AttemptNumber = 2,
ObjectivesCompleted = 3,
ObjectivesTotal = 3,
EnemiesDefeated = 12,
CurrencyEarned = 500,
CurrencyType = "gold",
ExperienceGained = 200
});

// Level fail
GameRebellion.TrackProgression(new GrProgressionEvent
{
Type = "level",
Status = "fail",
Progression01 = "world_1",
Progression02 = "level_5",
Difficulty = "hard",
AttemptNumber = 3,
DeathsCount = 5,
HealthRemaining = 0,
CompletionPercentage = 72.5
});

// Boss fight
GameRebellion.TrackProgression(new GrProgressionEvent
{
Type = "boss",
Status = "complete",
Progression01 = "world_1",
Progression02 = "boss_dragon",
Score = 25000,
LivesUsed = 2,
LivesRemaining = 1,
NewRecord = true
});

// Tutorial completion
GameRebellion.TrackProgression(new GrProgressionEvent
{
Type = "tutorial",
Status = "complete",
Progression01 = "onboarding",
CompletionTime = 180.0
});

GrProgressionEvent Fields

FieldTypeRequiredDescription
TypestringYesProgression category: "level", "boss", "tutorial", "quest".
StatusstringYes"start", "complete", or "fail".
Progression01stringNoTop-level grouping (e.g., world or chapter).
Progression02stringNoMid-level grouping (e.g., level or stage).
Progression03stringNoFine-grained grouping (e.g., sub-level or wave).
DifficultystringNoDifficulty setting.
AttemptNumberdouble?NoHow many times the player has tried this.
Scoredouble?NoScore achieved.
CompletionTimedouble?NoTime to complete in seconds.
CompletionPercentagedouble?NoHow far the player got (0-100) on failure.
ObjectivesCompleteddouble?NoNumber of objectives completed.
ObjectivesTotaldouble?NoTotal objectives available.
LivesUseddouble?NoLives consumed during the attempt.
LivesRemainingdouble?NoLives left after the attempt.
HealthRemainingdouble?NoRemaining health on completion/failure.
NewRecordbool?NoWhether this was a personal best.
EnemiesDefeateddouble?NoEnemy kill count.
ItemsCollecteddouble?NoItems picked up.
DistanceTraveleddouble?NoDistance covered.
DeathsCountdouble?NoNumber of deaths.
CurrencyEarneddouble?NoIn-game currency earned.
CurrencyTypestringNoType of currency earned (e.g., "gold", "gems").
ExperienceGaineddouble?NoXP gained.
LevelUpTriggeredbool?NoWhether this progression triggered a level up.

Level Up Event

Track when a player reaches a new character or account level.

// Player reaches level 5
GameRebellion.TrackLevelUp(new GrLevelUpEvent
{
Level = 5
});

// Player reaches max level
GameRebellion.TrackLevelUp(new GrLevelUpEvent
{
Level = 100
});

GrLevelUpEvent Fields

FieldTypeRequiredDescription
LeveldoubleNoThe new level reached.

Achievement Event

Track when a player unlocks an achievement.

// First boss defeated
GameRebellion.TrackAchievement(new GrAchievementEvent
{
Id = "dragon_slayer"
});

// Speed run achievement
GameRebellion.TrackAchievement(new GrAchievementEvent
{
Id = "speed_demon_level_1"
});

GrAchievementEvent Fields

FieldTypeRequiredDescription
IdstringYesUnique achievement identifier.

Metrics Unlocked

MetricDescriptionEvent Source
Level Completion Rate% of players completing each levelprogression (start + complete)
Level Drop-offWhere players stop progressingprogression (start without complete)
Avg Attempts per LevelDifficulty indicatorprogression (AttemptNumber)
Player VelocityProgression speed by segmentprogression (CompletionTime)
Achievement Unlock Rate% of players unlocking each achievementachievement
Level DistributionPlayer level distributionlevel_up

Best Practices

  • Track both start and complete. Sending Status = "start" and Status = "complete" (or "fail") gives you funnel data. Without start events, you cannot calculate completion rates.
  • Use the 3-tier progression hierarchy. Progression01 > Progression02 > Progression03 maps naturally to World > Level > Wave or Chapter > Stage > Checkpoint.
  • Include attempt count. AttemptNumber reveals difficulty spikes and helps identify levels that need balancing.
  • Track tutorial completion. Use Type = "tutorial" with Status = "complete" to measure your onboarding funnel.

Implementation Checklist

  • TrackProgression() with Status = "start" at level/stage beginning
  • TrackProgression() with Status = "complete" or "fail" at level/stage end
  • TrackLevelUp() called on character/account level changes
  • TrackAchievement() called for achievement unlocks
  • Tutorial completion tracked via TrackProgression()