---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://boost.yandex.com/doc/en/analytics/content/mobile-reports/engagement-report.md
  - https://boost.yandex.com/doc/ru/analytics/content/mobile-reports/engagement-report.md
---
> **Documentation Index:** Fetch the complete configuration index at https://boost.yandex.com/doc/en/llms.txt

# Engagement

{% note warning "" %}

If the user opens the app only once, the session duration [is not calculated](https://boost.yandex.com/doc/en/analytics/content/mobile-reports/engagement-report.md#session-null).

{% endnote %}

The **Engagement** report displays information about how much time the user spends in the app on average, how often the app starts, the average session length, the total number of sessions, and the total time in the app.

<!-- source: en/analytics/content/mobile-reports/_includes/segments.md -->
Using [segmentation](https://boost.yandex.com/doc/en/analytics/content/mobile-reports/segmentation.md) you can pull out specific users and compare data from different [periods and segments](https://boost.yandex.com/doc/en/analytics/content/mobile-reports/segment-comparison.md).
<!-- endsource: en/analytics/content/mobile-reports/_includes/segments.md -->

## Tasks that the report helps to solve {#resolve-tasks}

**Evaluate the time users spend in your app**
:   Use the **Timespent per user** metric to determine the average time individual users spend in the app and the **Total timespent** metric for the total time spent by all users (this value could be 100,000 hours across all users).

**Identify the average session length**
:   Use the **Average session length** metric in various combinations with groupings by date, app version, or location. You can also use the **Session length** grouping for a clear breakdown by length.

**Evaluate the frequency of app use**
:   Use the **Session per user** metric in combination with groupings by period (day, week, or month).

**Compare the engagement rates of different user groups**
:   Use groupings by platform, app version, location, or a combination of those (for example, by week and app version).

**Get the number of sessions with duration from 2 seconds**
:   Use grouping by session duration, exclude sessions with **0–1 second** interval in segmentation, get the total value in the **Totals and averages** column.

## How time is determined {#session-duration}

AppMetrica SDK determines event time in seconds with precision up to 4 decimal places. When transmitting time to the report, the fractional part is truncated, not rounded.

**Example**

A session started at 2024-07-10 20:00:00.00000. The last event in the session occurred at 2024-07-10 20:00:01.99999. The reported time for this event is 2024-07-10 20:00:01. Thus, the session duration will fall into the **0–1 second** interval.

## General settings {#how-to}

1. Choose the time period and audience segment. By default, the report shows data for the week grouped by days.

   The time in the report is the beginning of the session on the user's device in the time zone specified in the app settings.

   {% note info "" %}

   <!-- source: en/analytics/content/mobile-reports/_includes/period.md -->
   To set a custom reporting period, use the ![dates](../../_images/button-date.png) button. The selected time interval can be grouped by hours, days, weeks, or months.
   <!-- endsource: en/analytics/content/mobile-reports/_includes/period.md -->

   {% endnote %}

2. You can select specific users for the report using [segmentation](https://boost.yandex.com/doc/en/analytics/content/mobile-reports/segmentation.md).
3. You can set up [groupings](#group) and [metrics](#measure) in the report.

## Configuring a chart with a choice of metrics {#metrics-in-graph}

<!-- source: en/analytics/content/mobile-reports/_includes/metrics-in-graph.md -->
On the chart you can select multiple metrics at the same time if they have the same units. If a metric is not available in the list (its name is written in gray), it means that it has a different unit.
<!-- endsource: en/analytics/content/mobile-reports/_includes/metrics-in-graph.md -->

## Dimensions and metrics {#groups-and-metrics}

<!-- source: en/analytics/content/mobile-reports/_includes/groups-metrics.md -->
The report contains metrics grouped into dimensions.

To set up dimensions and metrics:

1. Click the buttons **Dimensions**, **Metrics**, and **Data** one by one. The **Data** button is only available for some reports.
2. In each window, add dimensions and metrics you want to use to build the report.
3. Configure the order of metrics and dimensions.

   The order of metrics determines the order of columns, the order of dimensions determines the nesting of rows in the table.

To restore the default metrics, dimensions, and settings, click **Reset**.  
<!-- endsource: en/analytics/content/mobile-reports/_includes/groups-metrics.md -->

### Dimensions {#group}

<!-- source: en/analytics/content/mobile-reports/_includes/engagement-group.md -->
{% cut "Engagement" %}

- **Session length**. Grouped by intervals:
   ```
   Undefined | 0-9 seconds | 10-29 seconds | 30-59 seconds | 1 minute | 2 minutes | 3 minutes | 4 minutes | 5-9 minutes | 10-19 minutes | 20-29 minutes | 30-59 minutes | 1 hour | 2-4 hours | 5-9 hours | 10+ hours
   ```

   {% note info %}

   The **Session length** parameter can have the **Undefined** value if this was the user's only session. For more information, see [A certain number of sessions have no defined duration](https://boost.yandex.com/doc/en/analytics/content/mobile-reports/engagement-report.md#session-null).

   {% endnote %}

{% endcut %}
<!-- endsource: en/analytics/content/mobile-reports/_includes/engagement-group.md -->

<!-- source: en/analytics/content/mobile-reports/_includes/audience-group.md -->
{% cut "Audience" %}

- **Operating system**.
- **Full operating system version**.
- **Gender**. Determined heuristically using Crypta technology. If the prediction accuracy is insufficient , it takes the `Undefined` value.
- **Age intervals**. Determined heuristically using Crypta technology. Possible values: `<18 | 18-24 | 25-34 | 35-44 | 45-54 | ≥55`. If the prediction accuracy is insufficient, it is Undefined.

{% endcut %}
<!-- endsource: en/analytics/content/mobile-reports/_includes/audience-group.md -->

<!-- source: en/analytics/content/mobile-reports/_includes/geo-group.md -->
{% cut "Geography" %}

- **Continent**.
- **Country**.
- **District**.
- **Region**.
- **City**.
- **City size**.

{% endcut %}
<!-- endsource: en/analytics/content/mobile-reports/_includes/geo-group.md -->

<!-- source: en/analytics/content/mobile-reports/_includes/events-group.md -->
{% cut "Events" %}.

- **Event**. Event name.
- **All parameters, nesting levels 1-5** Outputs all passed event parameters corresponding to the [nesting levels](https://boost.yandex.com/doc/en/analytics/content/data-collection/about-events.md#level).
- **Parameter**. Lets you select a specific parameter. You can select a dimension several times with different parameters.

   {% note alert "" %}

   Only nesting level 1 parameters are available.

   {% endnote %}

{% endcut %}
<!-- endsource: en/analytics/content/mobile-reports/_includes/events-group.md -->

<!-- source: en/analytics/content/mobile-reports/_includes/date-event-group.md -->
{% cut "Event date" %}

- **Day**.
- **Week**.
- **Month**.

{% endcut %}
<!-- endsource: en/analytics/content/mobile-reports/_includes/date-event-group.md -->

<!-- source: en/analytics/content/mobile-reports/_includes/app-group.md -->
{% cut "App" %}

- **Version**.
- **Build number**.

{% endcut %}
<!-- endsource: en/analytics/content/mobile-reports/_includes/app-group.md -->

### Metrics {#measure}

{% note info "" %}

Data is calculated by user session. Background sessions (sessions in which the app runs in the background and the user doesn't interact with it directly) aren't taken into account.

{% endnote %}

{% cut "Engagement" %}

- **Sessions**. Number of sessions.
- **Timespent per user**. The total duration of sessions divided by the number of users with 1+ session per period (sessions with an undefined duration aren't taken into account. For more information, see [A certain number of sessions have no defined duration](#session-null)).
- **Average session length**. The total duration of sessions divided by their number (sessions with an undefined duration aren't taken into account).
- **Session per user**. The number of sessions divided by the number of users with 1+ session per period.
- **Total timespent**. The total duration of all sessions (sessions with undefined duration aren't taken into account; for more information, see [A certain number of sessions have no defined duration](#session-null)).

{% endcut %}

![Engagement](../../_images/engagement-report-en.png){style="border: solid 1px #cccccc; max-width: 800px;"}

## Data export {#export}

<!-- source: en/analytics/content/mobile-reports/_includes/export-api.md -->
You can export data from a report. 

{% note info "" %}

The data is exported based on the selected report settings: segmentation, dimension, and time period.

{% endnote %}

![report settings](../../_images/export-data-en.png){style="border: solid 1px #cccccc; max-width: 300px;"}

In the upper-right corner click ![export sign](../../_images/icon-export.svg){inline=false} and select the action: 

- **Export full report in CSV** to export data from the table in `CSV` format.
- **Chart → CSV** to export data from the chart in `CSV` format.
- **Chart → PNG** to export chart images in `PNG` format.
- **Copy chart API request** — Displays the query text for exporting data from the chart using the [Reporting API](https://boost.yandex.com/doc/en/analytics/content/mobile-api/logs/about.md). 
- **Copy table API request** — Displays the query text for exporting data from the table using the [Reporting API](https://boost.yandex.com/doc/en/analytics/content/mobile-api/logs/about.md). 

You can use this query to build your own dashboard or create automated data export scripts.

{% note info "" %}

If you are getting the text of the query for the first time, make sure that the browser doesn't block the pop-up authorization window. In the authorization window, allow Analytics module to access the data.

{% endnote %}
<!-- endsource: en/analytics/content/mobile-reports/_includes/export-api.md -->

## Troubleshooting {#problems}

### A certain number of sessions have no defined duration {#session-null}

{% note info "" %}

Analytics module calculates duration based on [user sessions](https://boost.yandex.com/doc/en/analytics/content/common/glossary.md#session).

{% endnote %}

When using automatic session tracking ([Android](https://boost.yandex.com/doc/en/analytics/content/sdk/android/analytics/android-listen.md) | [iOS](https://boost.yandex.com/doc/en/analytics/content/sdk/ios/analytics/ios-listen.md)), Analytics module receives information about the end of the session when the next app activity occurs, including in the background. This means that Analytics module can't calculate the exact duration of a session if a user starts the app only once.

{% note warning "" %}

Analytics module also doesn't calculate the duration if the app is forcibly closed.

{% endnote %}

### Too many sessions with a duration of 0–9 seconds {#session-min}

User activity is tracked using the SDK ([Android](https://boost.yandex.com/doc/en/analytics/content/sdk/android/analytics/android-listen.md) | [iOS](https://boost.yandex.com/doc/en/analytics/content/sdk/ios/analytics/ios-listen.md)). When using automatic tracking, the default session timeout is 10 seconds. You can change this value using the library configuration settings ([Android](https://boost.yandex.com/doc/en/analytics/content/sdk/android/analytics/android-listen.md) | [iOS](https://boost.yandex.com/doc/en/analytics/content/sdk/ios/analytics/ios-listen.md)).

<!-- source: en/analytics/content/_includes/feedback-button.md -->
If you didn't find the answer you were looking for, you can use the feedback form to submit your question. Please describe the problem in as much detail as possible. Attach a screenshot if possible.

<a href="../troubleshooting/feedback-new">
  <span class="button">Contact support</span>
</a>

<a href="../troubleshooting/feedback-docs">
  <span class="button">Suggest an improvement for documentation</span>
</a>
<!-- endsource: en/analytics/content/_includes/feedback-button.md -->
