Measure sessions
Sessions measure how often users engage with your app. A session is counted on the server from the app-open event your app's SDK reports, and sessions are the basis for several engagement metrics: daily, weekly and monthly active users (DAU / WAU / MAU), stickiness, and loyal users.
How AdShift counts sessions
- Sessions are counted server-side from app opens. The SDK sends an app-open event when the app launches (cold start) and when it returns to the foreground from the background.
- The first 5 sessions per device are counted unconditionally.
- From the 6th session onward, a new app open is counted as a new session only if enough time has passed since the last counted session — the minimum time between sessions (see below).
- Sessions are counted per device, using the same stable device identity as active users, so sessions and DAU/WAU/MAU line up.
Default behavior: by default there is no minimum time between sessions, so — after a short ~10-second technical guard on the SDK side — practically every app open counts as a new session. Set a minimum time in your app settings if you want to group rapid opens into one session.
Minimum time between sessions
This setting controls how much time must pass after a counted session before the next app open is counted as a new one.
- Where to set it: App settings → Analytics.
- Default: none (every qualifying open is a session).
- Range: 1–60 minutes, or 1–24 hours.
- A change takes effect within about an hour.
How the mechanism works: a session is counted → a countdown timer starts → any app opens reported while the timer is running are not counted as separate sessions → the next session is counted once the minimum time has elapsed since the last counted session.
Example
Assume the minimum time between sessions is 10 minutes and the device's first 5 sessions were already counted.
| Case | App opens (minutes after 00:00) | Sessions counted | Opens not counted |
|---|---|---|---|
| A | 0, 10, 20, 30 | 4 | none |
| B | 0, 1, 9, 11 | 2 | 1, 9 |
| C | 0, 10, 15, 21 | 3 | 15 |
Tip: A long minimum (more than an hour) can lower session-based metrics such as DAU and retention, especially for apps that users typically open once a day. The first-5-sessions rule and the minimum time between sessions don't affect the time between the install and a later re-engagement.
What sessions power
Sessions are the foundation for the Active users widget on the Activity view:
- DAU / WAU / MAU — unique active devices per day, 7-day window, and calendar month.
- Stickiness — average daily active users divided by monthly active users.
- Loyal users — a device becomes loyal when it reaches its 3rd session (default). "New loyal users" counts the devices that crossed this threshold in the selected range.
How the SDK reports app opens
- The SDK reports an app open on launch and when the app returns to the foreground.
- A short debounce (~10 seconds, configurable) prevents the same launch from being reported twice in quick succession. This is independent of the server-side minimum time between sessions — the debounce limits what the device reports, while the minimum time between sessions controls what the server counts.
Sessions and media source
Each session is attributed to the media source that the device touched last (the same last-touch logic as the Unified view). During a retargeting re-engagement window, a session is therefore credited to the retargeting media source.
Unlike in-app events, a session is a single record — it isn't split into separate user-acquisition and retargeting rows. Sessions broken down by media source always sum to the total. See Resolve retargeting double attribution for how in-app events differ.
Where to find sessions data
- Activity view — the Sessions, Sessions per user and New loyal users tiles, the daily sessions trend, and the Sessions-by-country breakdown.
- Overview dashboard — the Sessions column (when grouped by media source or by app).
Limitations and good to know
- Sessions and active users are always unified. The view-type toggle (User acquisition / Retargeting / Unified) changes acquisition and revenue metrics, but not sessions, DAU/WAU/MAU, stickiness or loyal users — these are app-wide engagement metrics with no UA/retargeting split. You can still break sessions down by media source (last touch), but they are never double-counted across UA and retargeting.
- Counting is per device. A reinstall, or a user whose privacy choices prevent a stable identifier, can be seen as a new device — which restarts the first-5-sessions allowance and the loyal-user progress for that device.
- Unique-user figures are estimates. DAU/WAU/MAU and unique-device counts are computed with a statistical method that carries a small margin (about 1–2%), so they won't reconcile to an exact headcount. Session totals themselves are exact.
- Late and offline opens. App opens buffered offline are placed on the day they actually happened when that time is known; opens reported a very long time later fall back to the processing time.
Related
- Attribution model — how installs and in-app events are attributed.
- Retargeting attribution guide — re-engagement and re-attribution.