Screen-level navigation is the backbone of mobile analytics. It tells you where users go, where they stall and where they give up. Yet manual screen tracking is easy to get wrong: a developer forgets one screen, a new flow ships without events, and your funnel quietly develops holes that nobody notices for weeks.
Mixpanel now offers autocapture of screen view and screen leave events across its React Native, Swift, Android and Flutter SDKs. After a one-time setup that hooks into your routing library, the events fire automatically as users move between screens. That removes a lot of repetitive instrumentation, but it also changes who is responsible for data quality: you are now trusting the integration to see every screen.
Why This Matters
Autocapture is convenient, and convenience hides problems. Without checks, you may find that screens are named after internal route paths that mean nothing to a product manager, that modals and bottom sheets never register as screens, or that screen leave events go missing when the app is killed in the background. Each of these distorts time on screen and funnel drop-off, and the numbers still look plausible.
Data Points to Track
Check that these properties are present and sensible on screen events, adding your own where autocapture does not provide them:
screen_name: a readable, stable name for each screenprevious_screen_name: where the user came fromscreen_view_timestampandscreen_leave_timestamp: to calculate time on screentime_on_screen_seconds: the gap between view and leaveleave_reason: navigated forward, went back, backgrounded or app closedapp_version: to compare coverage between releasesplatform: iOS, Android or cross-platform frameworknavigation_depth: how many screens deep the user isautocaptured: true or false, to separate automatic from manual events
Setup Steps
- List every screen in your app, including modals, tabs and bottom sheets, so you have a source of truth.
- Follow Mixpanel’s SDK documentation to enable screen autocapture for your platform, using your routing library hook.
- Trial it in a debug build and walk through every flow while watching the live events.
- Compare the screen names you receive with your list, and map unclear route names to readable ones.
- Add manual events for any screen the hook does not detect.
- Add
autocapturedas a property so you can audit coverage later. - Keep any existing manual screen events running in parallel for two weeks, and compare counts per screen.
- Retire the duplicates only once the counts match within normal variance.
Actionable Insights
Look for missing screens first. A screen on your list with zero events is a gap in coverage, not a screen nobody uses.
Treat time on screen carefully. If many screen leave events are missing, averages will be skewed. Check what share of views have a matching leave before you trust the duration.
Compare releases. A sudden fall in screen events after an upgrade usually means the routing hook broke, not that users stopped navigating.
Use readable names. Funnels and path analysis only help if everyone can read the screen names. Agree a naming convention and apply it.
Avoid double counting. If you leave manual and automatic events both running, filter on autocaptured so reports do not count each view twice.
Related Resources
Need help tracking this in your app?
Our team sets up analytics pipelines for mobile and web teams every day. Talk to us and get your first events flowing in under an hour.
Talk to an expert