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

# Session events

> View every session a user or subscription had in the OneSignal dashboard, with start time, end time, and duration. Use session events to see which users came back to your app.

Use session events to see exactly when a user or subscription opened your app or website, how long each visit lasted, and which device it came from. Each session event is a single session with a start time, an end time, and a duration.

Session events answer the question "did this user come back?" one user at a time. To see session activity across your whole app, use [Sessions volume](./sessions-volume). To measure whether users keep coming back, use [Retention metrics](./retention-metrics). To see which of your messages are driving sessions, use **App Sessions** in [Conversion metrics](./conversion-metrics). Conversion metrics uses a last-touch attribution model across all channels.

## Prerequisites

* The OneSignal SDK is installed in your mobile app or website. See [Mobile SDK setup](./mobile-sdk-setup) or [Web push setup](./web-push-setup).
* The user has a push subscription.

OneSignal collects sessions from push subscriptions: app opens in your mobile app, and website visits from visitors subscribed to web push. Email and SMS subscriptions don't report sessions of their own.

## What a session event contains

A session begins each time a user opens your app or website from a fully closed state, or reopens it after being in the background for at least 30 seconds. Returning within 30 seconds continues the current session instead of starting a new one.

OneSignal records one session event per session.

| Field | Description |
| - | - |
| **Start time** | When the session began. Start times are approximate. |
| **End time** | When the session ended. |
| **Duration** | How long the app or website was in use during the session, shown in up to two units (for example `20m 34s` or `2h 5m`). |
| **Subscription** | The device the session came from. Shown on the User Profile only, and links to that device's Subscription Profile. |

Times display in your browser's timezone. Hover over a time to see it in UTC and as a relative time (for example "3 hours ago").

## View a user's session events

The User Profile shows sessions from all of a user's subscriptions, so you see every device they used in one list.

<Steps>
  <Step title="Open the user's profile">
    Go to **Audience > Users & subscriptions**, then search for the user by External ID, email address, phone number, or OneSignal ID and open their profile.
  </Step>

  <Step title="Open the Event log tab">
    Select the **Event log** tab.
  </Step>

  <Step title="Select Session events">
    Select **Session events** in the Event log sidebar.
  </Step>

  <Step title="Choose a date range">
    The list shows the last 7 days by default. Use the date range picker to look further back, as far as your plan's [retention](#retention) allows.
  </Step>
</Steps>

<Check>
  The list shows the user's sessions, newest first, 20 per page. Use **Previous** and **Next** to page through them. On the first page, select **Refresh** to load sessions that arrived since you opened the page.
</Check>

## View a subscription's session events

The Subscription Profile shows sessions from that one device only.

<Steps>
  <Step title="Open the subscription's profile">
    Go to **Audience > Users & subscriptions > Subscriptions** and open the subscription. You can also open it from a User Profile: select a device in the **Subscription** column of the user's session events, or select a Subscription ID on the **Subscriptions** tab.
  </Step>

  <Step title="Select Session Events">
    In the **Activity timeline** on the right side of the profile, select the **Session Events** tab.
  </Step>

  <Step title="Choose a date range">
    The list shows the last 7 days by default. Use the date range picker to look further back, as far as your plan's [retention](#retention) allows.
  </Step>
</Steps>

<Check>
  The list shows the subscription's sessions, newest first, 20 per page. The label under the tabs shows how many days of session events your plan tracks, for example "Tracked up to 30 days".
</Check>

## How OneSignal records session events

OneSignal creates a session event when the OneSignal SDK reports that a session ended. Keep these rules in mind when you read the list:

* **Sessions have a maximum duration of 24 hours.** OneSignal records any longer session as 24 hours.
* **Out-of-range times use the time OneSignal received the session.** If a device reports an end time in the future or more than 72 hours in the past, OneSignal sets the end time to when it received the session.
* **Moved subscriptions keep their history.** When a subscription moves to a different user, the Subscription Profile still shows every session from that device. Each User Profile shows only the sessions from subscriptions that belonged to that user when the session happened.

Anyone who can view users and subscriptions in your app can see session events.

## Retention

OneSignal records session events for every app on every plan. Your plan sets how far back you can view them.

| Plan | Session event retention |
| - | - |
| Free | 7 days |
| Growth | 30 days |
| Pro | 60 days |
| Enterprise | 90 days |

When you upgrade, you can view further back right away, up to your new plan's limit.

The dashboard shows up to 90 days of session events on any plan. The date range picker starts at the oldest day your plan allows.

OneSignal began recording session events on September 30, 2026. Session events are not backfilled, so earlier sessions don't appear on the User or Subscription Profile. **Sessions** and **Last Session** on the Subscription Profile still include those earlier sessions. See [How does OneSignal know Last Session from before session events started?](#how-does-onesignal-know-last-session-from-before-session-events-started)

For more on what each plan includes, see the [Billing FAQ](./billing-faq#session-event-retention).

## FAQ

### Why can't I pick an earlier date?

Your plan's retention limits how far back you can view session events. See [Retention](#retention) for each plan's limit.

### How does OneSignal know Last Session from before session events started?

OneSignal has always kept a running summary for each subscription: when it last opened your app (**Last Session**) and how many times (**Sessions**). On September 30, 2026, OneSignal also started keeping a list of each individual session. The summary goes back to the subscription's first session. The list starts on September 30, 2026, and earlier sessions were not backfilled.

### Why is Last Session different from the newest session event?

OneSignal records **Last Session** and session events separately. The two can show different values, but they are approximately aligned. Use session events to see when each session happened. Use **Last Session** to build [segments](./segmentation).

### Why doesn't an email or SMS subscription have session events?

OneSignal collects sessions from push subscriptions: app opens in your mobile app, and website visits from visitors subscribed to web push. Email and SMS subscriptions don't report sessions of their own.

The **Session Events** tab still appears on email and SMS Subscription Profiles, but it stays empty. To see a user's sessions, open the User Profile or the user's push Subscription Profile.

### Why does a session show up on a different day in Sessions volume?

The session list shows times in your browser's timezone. [Sessions volume](./sessions-volume) groups sessions by the UTC day they started. A session near midnight can fall on a different day in each view.

### Why is the list empty?

No sessions started in the date range you picked. If the message says **No sessions in this date range**, widen the date range. If it says **No sessions yet**, the user or subscription has no sessions in your plan's retention window. Check that the OneSignal SDK is installed and that the user has a push subscription.

### Why don't my session counts match another analytics tool?

A session begins each time a user opens your app or website from a fully closed state, or reopens it after being in the background for at least 30 seconds. Returning within 30 seconds continues the current session instead of starting a new one.

Other analytics tools may define a session differently, for example by counting every app open that lasts a couple of seconds. Those tools report more sessions than OneSignal.

## Related pages

<Columns cols={2}>
  <Card title="Sessions" icon="mobile" href="./sessions">
    How OneSignal defines a session and the session properties on each subscription.
  </Card>

  <Card title="Sessions volume" icon="chart-column" href="./sessions-volume">
    Track total sessions and average session duration across your app.
  </Card>

  <Card title="User and Subscription Profiles" icon="user" href="./user-subscription-profiles">
    Everything else you can see and edit on a user or subscription.
  </Card>

  <Card title="Message events" icon="envelope" href="./message-events">
    Per-user history of sends, deliveries, opens, and clicks.
  </Card>

  <Card title="Conversion metrics" icon="arrow-trend-up" href="./conversion-metrics">
    See which sessions your messages drove, with direct and influenced attribution.
  </Card>
</Columns>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.