# Game analytics event checklist

Start with the three level events. Add the rest when they answer a specific question.

| Event | When to send it | Properties |
| --- | --- | --- |
| level_start | Once per attempt, including retries | level |
| level_complete | When an attempt ends in a win | level, duration in seconds, optional score |
| level_fail | When an attempt ends in a loss or explicit quit | level, duration in seconds, reason |
| resource_earned | When currency is granted | resource, amount, source |
| resource_spent | When currency is spent | resource, amount, item |
| ad_watched | Confirmed rewarded-ad completion | placement, reward |
| purchase_completed | After server-side receipt verification | item, revenue in major units, ISO currency |
| $exception | When an error is recorded | $exception_type, $exception_message, fatal |

## Validate your integration

- [ ] Initialize the SDK before tracking events.
- [ ] Verify an accepted startup event in Live events.
- [ ] Send one level_start and one result for each attempt. Reset timing on retries.
- [ ] Use the same level value and type across all three level events.
- [ ] Keep built-in event names exactly as documented. Names are case-sensitive.
- [ ] Use stable player IDs when identifying signed-in players.
- [ ] Set the app version on every release.
- [ ] Confirm that the Game report shows your level data.
- [ ] Test offline retry and lifecycle behavior on each target platform. Check queue limits.
- [ ] Do not send secrets or unnecessary personal information in properties.
- [ ] Test server-confirmed purchase events; keep revenue out of client-trusted calculations.
- [ ] Document the errors your reporter captures. Logged errors do not cover every native crash.

## Choose the next question

- Progression: compare equally mature cohorts through an ordered funnel.
- Difficulty: inspect level_fail by reason and app_version; verify a hypothesis before changing the game.
- Economy: sum resource_earned and resource_spent amounts by resource.
- Rewarded ads: also track ad_offer_shown to compare completions with offers by placement.
- Revenue: compare confirmed purchases, revenue and revenue per player.

Setup: https://vexil.io/blog/unity-game-analytics or https://vexil.io/blog/godot-game-analytics
Event guide: https://vexil.io/blog/game-events-to-track
Game demo: https://anyanalytics.org/demo?view=game
Start free: https://anyanalytics.org/sign-up
