> ## Documentation Index
> Fetch the complete documentation index at: https://docs.userpilot.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Track Mobile Screens Manually

> Manually track mobile screens with the Userpilot SDK to record screen views, trigger experiences, and use screen data in analytics, reports, and segments.

Learn how to manually track screens in your mobile app using Userpilot’s SDK. Manual screen tracking helps you record screen views, trigger mobile experiences, and use screen data in analytics, reports, and segmentation.

## Overview

A **mobile screen** is the mobile equivalent of a page in a web app. For example, this could be a Home screen, Profile screen, Settings screen, Checkout screen, or Subscription screen.

In Userpilot, tracking screens is required to unlock core mobile engagement and analytics capabilities. When a user navigates to a tracked screen, Userpilot records the screen view, triggers any eligible in-app experiences, and attributes later events to the most recently tracked screen for better analytics context.

Manual screen tracking means your developers define exactly when a screen should be tracked and what name should be sent to Userpilot. This gives your team full control over screen naming, tracking logic, and consistency across platforms.

To set it up, choose the relevant mobile framework in this [article](https://docs.userpilot.com/developer/installation/mobile/overview) and follow the screen tracking instructions.

## Use cases

1. **Trigger experiences on specific screens:** Show mobile experiences only when users reach a specific screen, such as showing onboarding guidance on the Home screen or an upgrade prompt on the Subscription screen.
2. **Build better reports and segments:** Use screen views to understand where users go inside your mobile app, then create reports or segments based on those visits.
3. **Support cross-platform tracking consistency:** If your app is available on both iOS and Android, manual tracking helps you use the same screen names across both platforms.
4. **Control exactly when a screen is tracked:** Manual tracking gives your developers control over when the screen event is sent, which is useful for complex navigation flows or screens that should only be tracked after specific conditions are met.

## How to track mobile screens manually

After installing the **Userpilot mobile SDK**, you can access mobile screen tracking from the left navigation by going to [**Data → Mobile Screens**](https://run.userpilot.io/mobile-screens). From there, you will be able to view and manage the screens tracked from your mobile app.

<Frame>
  <img src="https://mintcdn.com/userpilot/vxyIYWWUbQTEuLsN/images/Screenshot-2026-05-10-at-12.59.44-1.png?fit=max&auto=format&n=vxyIYWWUbQTEuLsN&q=85&s=55b1af5ed2c14cf6da2dbcde9d483764" alt="Screenshot 2026 05 10 At 12 59 44 1" width="2672" height="1310" data-path="images/Screenshot-2026-05-10-at-12.59.44-1.png" />
</Frame>

Click the **Create screen** at the top-right side of the page. Then, fill in the screen details:

1. **Name:** Add a clear screen name, such as `Profile`, `Checkout`, or `Settings`.
2. **Screen Key:** This is the key that will be used in the tracking snippet.
3. **Description:** Add a short description to explain what this screen represents or what you want to track.
4. **Category:** Optionally group the screen under a category to keep your screens organized.

For example, if the user opens the Profile screen, you can send:

```kotlin theme={null}
userpilot.screen("Profile")
```

or:

```swift theme={null}
userpilot.screen("Profile")
```

After clicking **Create**, copy the generated snippet and share it with your engineering team. Your developers should add this snippet to the app code so it is called when the user navigates to that specific screen.

<Frame>
  <img src="https://mintcdn.com/userpilot/vxyIYWWUbQTEuLsN/images/Screenshot-2026-05-10-at-12.20.50-1.png?fit=max&auto=format&n=vxyIYWWUbQTEuLsN&q=85&s=356358ae6731961bbbe6c46b9703e1f8" alt="Screenshot 2026 05 10 At 12 20 50 1" width="2880" height="1636" data-path="images/Screenshot-2026-05-10-at-12.20.50-1.png" />
</Frame>

## Android example

For Android, call `screen` when the screen becomes visible to the user.

```kotlin theme={null}
class ProfileActivity : AppCompatActivity() {
    override fun onResume() {
        super.onResume()
        userpilot.screen("Profile")
    }
}
```

In this example, Userpilot tracks a screen view called `Profile` when the `ProfileActivity` resumes.

## iOS example

For iOS, call `screen` when the view appears.

```swift theme={null}
class ProfileViewController: UIViewController {
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        userpilot.screen("Profile")
    }
}
```

In this example, Userpilot tracks a screen view called `Profile` when the `ProfileViewController` appears.

## Recommended naming conventions

Use screen names that are easy to understand in Userpilot. For example:

| Recommended    | Avoid                   |
| :------------- | :---------------------- |
| `Home`         | `HomeActivityV2`        |
| `Profile`      | `ProfileViewController` |
| `Checkout`     | `CheckoutFragmentFinal` |
| `Subscription` | `SubScreenNew`          |

Once your engineering team adds the tracking snippet to your app code, Userpilot will start collecting screen data when users visit that screen.

You can view the screen’s performance from **Data → Mobile Screens,** where tracked screens will appear in the **Untagged screens** table. From there, you can tag the screens and monitor key metrics such as **unique users**, **unique companies**, **total views**, and **average views per user**.

To analyze a specific screen in more detail, click the **screen title** in the table. This will open a dedicated dashboard for that screen, where you can review its performance and understand how users are interacting with it.

<Frame>
  <img src="https://mintcdn.com/userpilot/vxyIYWWUbQTEuLsN/images/Screenshot-2026-05-10-at-12.59.44-1.png?fit=max&auto=format&n=vxyIYWWUbQTEuLsN&q=85&s=55b1af5ed2c14cf6da2dbcde9d483764" alt="Screenshot 2026 05 10 At 12 59 44 1" width="2672" height="1310" data-path="images/Screenshot-2026-05-10-at-12.59.44-1.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/userpilot/vxyIYWWUbQTEuLsN/images/Screenshot-2026-05-10-at-12.26.13-3.png?fit=max&auto=format&n=vxyIYWWUbQTEuLsN&q=85&s=2c437d9ca70b19da334bd1e5109ef0bd" alt="Screenshot 2026 05 10 At 12 26 13 3" width="2872" height="1614" data-path="images/Screenshot-2026-05-10-at-12.26.13-3.png" />
</Frame>
