# How to interpret opt-out/app uninstalls on Batch?

{% hint style="info" %}
This guide is specific to Batch's Mobile Engagement Platform (More on the [difference between Batch's CEP and MEP](https://app.gitbook.com/s/UIK868wiiK9XOVyETGZS/other/faq/what-are-the-differences-between-batch-customer-engagement-platform-and-mobile-engagement-platform)).
{% endhint %}

To begin with, you have to differentiate and define opt-out users and app uninstalls:

* **Opt-out** **users** are users who disabled notifications.
* **App uninstalls** refer to users who uninstalled the app.

## Opt-out users <a href="#h_2015ac3b05" id="h_2015ac3b05"></a>

You can track your opt-out users in the [Analytics → Reach](https://doc.batch.com/dashboard/analytics/reach) tab:&#x20;

<figure><img src="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FnrvV0xOzQOmhlPV1PZGD%2FCleanShot%202025-05-22%20at%2014.18.30%402x.png?alt=media&#x26;token=a533a20e-e3fc-438b-ad5e-2f857add292f" alt=""><figcaption></figcaption></figure>

Batch can only have information about what's going on in the app. When a user installs and opens the app, we receive a push token from Apple/Google that allows us to communicate with them:&#x20;

<figure><img src="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FQqhGwfkTQvrrqhuu34yG%2Foptout%201.png?alt=media&#x26;token=47da9f14-8e68-40b8-828e-179f4d7b58e2" alt=""><figcaption></figcaption></figure>

If the user opt-outs from notifications in the device settings, no information is provided to Batch servers. The actual opt-in status will be updated only when the user opens the app again. Likewise, we do not know in real time when an opt-out user activates push notifications again.

Therefore the Batch database is potentially always "out of synchronization" with reality regarding the opt-in status.

Batch always targets all opt-in and opt-out tokens: it allows us to update the state of the tokens, clean the database and recover the users who would have reactivated the notifications. The notification will never be displayed to an actual opt-out user, it will be blocked by the device.

{% hint style="info" %}
**On Android**, users opt-in to push notifications **by default**. The number of opt-out users corresponds to the users who have:

* [Disabled notifications from the app preferences](https://doc.batch.com/android/advanced/customizing-notifications#disabling-notifications)
* Disabled push notifications from the system settings
* Or to users who did not turn on push notifications, from Android 13.
  {% endhint %}

## App uninstalls <a href="#h_0ae071d78e" id="h_0ae071d78e"></a>

There are two pages where you can track your app uninstalls:

* [Analytics → Audience](https://doc.batch.com/dashboard/analytics/overview)

<figure><img src="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FVztban1TQV3b4V4iCz8z%2FCleanShot%202025-05-22%20at%2014.21.33%402x.png?alt=media&#x26;token=a51b50c8-0647-41bb-b004-8ddf18ada6ff" alt=""><figcaption></figcaption></figure>

* [Push → Campaign statistics → Undelivered](https://doc.batch.com/dashboard/push/analytics#undelivered)

<figure><img src="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2FmGRg8nw27JI7IvznZhay%2FCleanShot%202025-05-22%20at%2014.25.54%402x.png?alt=media&#x26;token=5a9da9b6-9f81-4fcf-8fb5-6c14e40ff0b8" alt=""><figcaption></figcaption></figure>

In this example, we report that 509 users, who were targeted by the push, did not receive it because they uninstalled the application. Uninstalls concern **both opt-in and opt-out users**, as long as they were targeted by the campaign.

<figure><img src="https://509463063-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfiAYaWDWqtFZeXxyg67F%2Fuploads%2Fx81cirZx4LZIRHUHv8eK%2Foptout2.png?alt=media&#x26;token=a3c98ff2-3931-4bfc-8813-443b1657c604" alt=""><figcaption></figcaption></figure>

Unlike opt-outs, we receive by return loop the uninstalls that took place between the sending of the last campaign and the campaign of the day. This loop occurs only once a campaign has been sent. That's why you will see uninstalls only on days when a push has effectively been sent.

{% hint style="info" %}
Sending a test push notification **won't trigger the uninstalls detection**.
{% endhint %}
