Practical guide · October 7, 2026
Unity Analytics and session replay: find where players leave and why
Your tutorial funnel shows a sharp drop at the first attack. Should you shorten the instructions, change the controls, or fix a progression bug? Start with the numbers, then watch gameplay clips to see what happened.
What analytics and session replay each tell you
Unity Analytics shows how players progress through your game. Session replay shows what happened during individual attempts. Use the funnel to find where players get stuck, then watch clips from that step to understand the problem.
| Question | Event analytics | Gameplay replay |
|---|---|---|
| Where is the problem? | Counts and completion rates across funnel steps. | What happened around a selected step. |
| What did players experience? | Recorded actions and their timing. | The visible instructions, interactions, and game responses. |
| Did a fix help? | Changes in outcomes for comparable groups. | Examples of remaining friction or changed behavior. |
A missing completion event tells you to look closer. It doesn't explain why the player stopped or whether they'll return. A replay can show a blocked interaction, but you'll still need to test your explanation.
1. Find the failed tutorial step
Imagine a tutorial that teaches movement, then an attack, then a short encounter. Send an event when each step starts or finishes. Send the completion event when the game confirms the action succeeded, rather than when the player taps the button.
tutorial_started1,000100% tutorial_movement_completed85085% tutorial_attack_started80080% tutorial_attack_completed48048% tutorial_completed45045%
Of 800 players who started the attack step, 480 completed it: a 60% step completion rate. The other 320 represent a 40% drop-off between those two steps in this example. The overall tutorial completion rate is 45%; it answers a different question.
Before changing the tutorial, verify that the completion event fires reliably. Check event order, duplicate emissions, build versions, and whether players had enough time to finish. A reporting error can look like a design problem.
Send matching events to both SDKs
Create the custom event definitions in Unity Analytics first. Initialize both SDKs and get any required player consent. Then call these methods when the attack step starts and when the game confirms it is complete:
using Playtrace;
using Unity.Services.Analytics;
public static class TutorialEvents
{
public static void AttackStarted()
{
AnalyticsService.Instance.RecordEvent("tutorial_attack_started");
PlaytraceEvents.Emit("tutorial_attack_started");
}
public static void AttackCompleted()
{
AnalyticsService.Instance.RecordEvent("tutorial_attack_completed");
PlaytraceEvents.Emit("tutorial_attack_completed");
}
}
This example uses Unity Analytics SDK 5.1 or later. The other funnel steps follow the same pattern. Keep Playtrace event names exact and case-sensitive. There is no automatic import of Unity Analytics events into Playtrace, and matching names do not automatically link users or sessions between the services.
For setup details, follow Unity's event recording documentation and the Playtrace event guide.
Create the ordered funnel
In Unity Analytics, open Funnels and add the five events in the order shown above. Use a consistent date range and build version; separate platforms where their controls differ. Compare the attack step's completion rate and time to completion. See Unity's funnel tutorial for the dashboard workflow.
2. Capture gameplay around the attack step
In your Playtrace project, create a Drop-off after event campaign. Ask one question: what happens when a player starts the attack step but does not complete it within a reasonable window?
| Setting | Example value | Purpose |
|---|---|---|
| Campaign type | Drop-off after event | Preserve attempts without the expected event. |
| Start event | tutorial_attack_started | Capture from the beginning of the attack step. |
| Occurrence | First in each session | Focus on the first attempt in each session. |
| Expected event | tutorial_attack_completed | Recognize a successfully completed step. |
| Time window | 1 minute | Allow enough time for a normal first attempt. |
| Backgrounding | Off for this initial investigation | Start by investigating incomplete attempts in the foreground. |
| Capture and quota | 480p, balanced, 10 FPS; 10 replays | Keep the first batch small enough to review. |
| Platform | Android for an Android tutorial | Match the build being investigated; use Editor for a local check. |
Adjust the one-minute window to the time players normally need. If it's too short, slower players may be counted as drop-offs before they finish. Start by reviewing ten replays for recurring problems; use analytics to measure how common those problems are.
Understand which recordings are preserved
- Completion within the window: the current SDK stops and discards the recording. The attempt does not qualify for this drop-off campaign and is not preserved as a processed replay.
- No completion by timeout: the recording qualifies for preservation. After successful upload and processing, it appears in the campaign's replay list.
- Backgrounding: enabling “count backgrounding as drop-off” makes the built-in
game_pausedevent stop the recording early. It is preserved only if the expected completion has not happened. With the setting off, backgrounding is not that early-stop trigger. Neither setting proves permanent churn or guarantees footage after a forced app termination.
Activate the campaign and test both a successful and an incomplete attempt before recording real players. Make sure the campaign has loaded before sending its start event. The setup checklist covers platform matching, event names, and replay availability.
3. Review clips with one specific question
Open the campaign's replays and ask: what happens after the attack prompt appears, before the player gets stuck? Use the same review checklist for every clip.
Instruction
Is the prompt readable? Does it explain the action the tutorial actually expects?
Interaction
What action does the player attempt? Does the visible game response match it?
Recovery
After a failed attempt, does the tutorial offer feedback or leave the player stuck?
Example finding: the prompt doesn't explain the required action
Suppose several clips show players tapping an attack control. The character swings, but the tutorial does not advance. The prompt says “Attack the enemy,” while the completion condition requires holding the control for a charged attack.
Observation: the character attacks, but the tutorial does not advance.
Hypothesis: players do not understand the charged-attack requirement.
Check the game logic and event emission too: the same footage could reveal a progression bug or a missing analytics event.
Note the replay timestamp, what the player did, and your explanation. Look for recurring patterns, then check the analytics to see how common the problem is across players.
4. Test a focused change
In this example, change the prompt to explain that the player needs to hold the attack button. Show the charge building while they hold it. Keep the event definitions unchanged so the funnel still measures the same outcome.
- Define the outcome: attack-step completion, measured as completions divided by starts. Track completion time and overall tutorial completion alongside it.
- Compare fairly: run an A/B test if possible. Otherwise, compare similar groups playing each build: use the same platforms, similar player acquisition sources, and the same amount of time to finish.
- Review fresh clips: check whether the original interaction problem remains and whether the change introduced new friction.
- Use both tools: check the completion rate in analytics, then watch new clips to see where players still struggle.
More tutorial completions don't necessarily mean more players return the next day. Measure retention separately. If you're comparing results before and after a change, remember that a different mix of players can also affect the numbers.
Keep the investigation focused
Focus the campaign on the tutorial step you're trying to improve. Set a recording duration and replay quota, choose a resolution that makes the prompt readable, and test the performance impact on supported devices. Pause the campaign when you have enough clips to choose what to change.
Get any required player consent before recording, and keep sensitive information out of the recorded game view. Explain what is recorded, how long clips are kept, and who can view them.
Begin with the Unity SDK installation guide, then use its campaign setup instructions. If you are still choosing a tool, see our Unity session replay tools comparison.
Common questions
Does Unity Analytics record gameplay video?
Unity Analytics uses events and funnels to measure player behavior. For the gameplay clips in this walkthrough, you also need Playtrace.
Do I need to replace Unity Analytics?
No. Keep Unity Analytics to measure progress and completion rates across players. Add targeted replay when you need to see what happened during a particular step.
Does Playtrace automatically import Unity Analytics events?
No. Instrument the relevant game transitions for both SDKs, as in the example above. Shared event names help keep the investigation consistent but do not automatically join player identities, sessions, or dashboards.
How many replays should I review?
Start with a small batch and look for recurring problems you can fix. Collect more if clips show different problems or you're missing a device group. Clip counts alone won't tell you how common a problem is; check the analytics too.
Does tutorial drop-off mean the player quit the game?
Not necessarily. It means the next step wasn't recorded within the time window you're measuring. The player may have been interrupted, finished later, or reached a step whose event wasn't sent correctly. Check whether they return before calling it churn.
Investigate one tutorial step.
Find an unexplained drop in your funnel, record a small batch of attempts at that step, and watch the clips before choosing a fix.