Uninstall and reinstall tracking

Use Adjust's uninstall and reinstall tracking for elevated insights into your app's retention rates. By knowing when users have uninstalled and reinstalled your app from their device, you can accurately assess your organic and network partners’ performance, know your churn, and evaluate your app’s lifecycle.

Before you begin


  • Purchase of our uninstall and reinstall tracking package.
  • iOS: Adjust SDK version 4.18.1 or above
  • Android: Adjust SDK version 4.12 or above
  • App configured to send push notifications, as Adjust relies on these to determine whether an app is installed. See the implementation guidelines for iOS and Android.

Helpful information

  • Reinstalls are considered in-app events within Adjust and do not automatically result in reattributions

For further information on uninstall and reinstall KPIs, callbacks, Amazon S3 bucket uploads, and Audience Builder functionality, see the following sections:

1-4: Adjust captures the app's push token


Track uninstalls and reinstalls on iOS

Adjust’s app uninstall and reinstall tracking relies on silent push notifications to know whether an app is installed on a device. Developer instructions for configuring your app to send push notifications on iOS can be found below.

Use the resources below to prepare your iOS app for Adjust's uninstall and reinstall tracking.


  • In Xcode, the Background Modes capability configured to enable remote notifications
  • An iOS push services certificate
    • Anyone with access to your app's Apple developer portal can download this certificate from within the Certificates, Identifiers & Profiles section of the dashboard
    • You must export this file as a P12 and upload it (along with the associated password) to Adjust in your app's Platforms settings (see below). This grants us permission to use push notifications in your app.
  • Bundle ID entered within your app's Platforms settings

Export an iOS push services certificate

To find and export an existing certificate, follow these steps in the Keychain Access app.

  1. Select the Certificates category
  2. Right-click on the relevant Apple Push Services certificate. Do not include its private key or any other certificates
  3. Select Export "Apple Push Services:"
  4. Name your export
  5. Select Personal Information Exchange (.p12) from the File Format drop-down menu
  6. Select Save
  7. Optional: Enter a password. If you enter a password, you will need to include it when uploading this file in the Adjust dashboard.
  8. Select OK

If you create a new certificate, use one of the following types:

  • Apple Push Notification service SSL (Sandbox)
  • Apple Push Notification service SSL (Sandbox & Production)

To successfully upload a certificate to the Adjust Dashboard, it must use CN=Apple Push Services.

Please notice that the following type of certificate does not work:
macOS Apple Push Notification service SSL (Production)

Upload your iOS push services certificate to your Adjust account

In the Adjust dashboard

  1. Navigate to your app and select your app options caret (^)
  2. Select All Settings > Platforms
  3. Select APNS
  5. Locate your certificate file and select Open
  6. If you entered a password when creating your certificate, enter it in the PASSWORD field
  7. Select SAVE

Renew your iOS push notification certificate

Push services certificates expire one year after creation. For uninterrupted tracking of uninstalls and reinstalls, you will need to ensure that your certificate is renewed before it expires. Adjust will send you a reminder email two weeks prior to the certificate expiry. When you receive this email, follow these steps:

In the Apple developer portal

  1. Select Account at the top right of the home screen
  2. Select Certificates, Identifiers & Profiles
  3. Select the plus (+) icon at the top right of the screen
  4. Under Production, check Apple Push Notification service SSL (Sandbox & Production)
  5. Select Continue
  6. Select your app ID from the App ID drop-down menu
  7. Select Continue
  8. Follow the instructions to create a CSR file
  9. Select Continue
  10. Upload your newly created CSR file by selecting the Choose File button
  11. Select Continue
  12. Select Download
  13. Open the newly downloaded certificate file from your downloads list or folder to add it to your Keychain Access
  14. Follow the instructions to upload your iOS push services certificate to your Adjust account

Track uninstalls and reinstalls on Android

Adjust’s app uninstall and reinstall tracking relies on silent push notifications to determine if an app is installed on a device. Developer instructions for configuring your app for uninstall and reinstall tracking can be found below. If you have already configured your app and Adjust SDK for push notifications using Firebase Cloud Messaging, you can skip to how to find your FCM server key.

Note: You must configure your app for push notifications through Firebase Cloud Messaging (FCM). Google Cloud Messaging (GCM) is not supported.


Find your FCM server key

In your Firebase console

  1. Select the settings (gear) icon > Project settings
  3. Locate your Server key token

Add your FCM server key to your Adjust account

In the Adjust dashboard

  1. Navigate to your app and select your app options caret (^)
  2. Select All Settings > Platforms
  3. Select Firebase Cloud Messaging
  4. Enter or paste your FCM key into the FCM KEY field
  5. Select SAVE

Uninstall and reinstall FAQs

How does Adjust report when my app was uninstalled?

The Adjust SDK records a push token for each app on every unique device. Once an app is installed, Adjust uses the push token to forward silent push notifications to your app via the Apple Push Notification service (APNs) or Firebase. Firebase (for Android) and APNs (for iOS) responses are processed and updated daily, UTC. All dashboard data reflects the most relevant dataset available.

In their response, APNs and Firebase can give an uninstall date up to more than a week later. As a result, Adjust reports the uninstall using the date and the time from the last session.

Example: Last session = Monday, January 1st at 06:00

Uninstall detected = Friday, January 5th at 13:00

Adjust reported uninstall = Monday, January 1st at 06:00

What is a silent push notification?

While standard push notifications are used to deliver messages to specific app users, silent push notifications are used to send messages to the app itself. Silent push notifications allow apps to receive and process information in the background without displaying any information to the user.

Users can disable push notifications from apps, but we can still send silent push notifications, regardless.

How does Adjust manage push tokens and silent push notifications?

Push tokens are created by Apple (APNs) and Google (Firebase) and assigned to apps at the device level. Every push token is unique to your app and the specific device on which it is installed. The Adjust SDK collects push tokens and transmits them for storage in our database.

Silent push notifications are generated by Adjust’s servers and sent to your app through the relevant push notification services.

On iOS, we send the following payload through APNs:

{"aps":{"content-available":"1"},"adjust_purpose":"uninstall detection"}

On Android we send the following to FCM, which sends it to your app:

{"to":"pushToken","data":{"adjust_purpose":"uninstall detection"}}

How often does Adjust send silent push notifications to my app?

Adjust sends a silent push notification once per calendar day, UTC.

How will uninstall and reinstall tracking appear in my dashboard?

You can find information on the uninstall and reinstall KPIs that will appear in your dashboard by visiting the deliverables KPIs and cohorts KPIs help pages.

What is a reattribution reinstall?

Adjust treats reinstalls as in-app events. They do not affect our attribution methodology. This means that a reinstall is not automatically considered a reattribution. Only when a reinstall session meets the requirements you have set in your app- or tracker-level reattribution settings will we reattribute the user and report a reattribution reinstall.

Reattribution reinstall example
Your reattribution settings are the default:

  • 7-day inactivity period
  • 7-day reattribution window

The following happens:

  1. User uninstalls your app and triggers no in-app sessions for 7 days total (potentially including time prior to uninstalling)
  2. User clicks on an Adjust-tracked re-engagement ad
  3. User reinstalls and triggers a session in your app within 7 days of the engagement
  4. Adjust records a reattribution reinstall

Note: When Adjust tracks a reattribution reinstall, it will be included in both the reattribution reinstall and reattribution statistics in your deliverables. If you are set up to receive callbacks, you will only receive a callback for a reattribution reinstall.

Why do uninstalls tested in the sandbox environment not appear in my dashboard?

Uninstall events do not originate from our SDK. They are created by the Adjust backend upon a response from the Apple Push Notification service or Firebase and have the environment hardcoded as production. Adjust also only checks for uninstalls from apps for which the last activity was recorded in the production environment. Thus, uninstall events tested in sandbox mode will not appear in the Adjust dashboard.

How can I receive uninstall and reinstall activity from Adjust?

When an uninstall, reinstall, or reattribution reinstall occurs, you can be notified via Adjust’s real-time callback system or our CSV uploads to cloud storage.

Note: The following advertising IDs are available for uninstall callbacks: {idfa}{gps_adid}{oaid}{oaid_md5}{web_uuid}. Ensure that you include the appropriate ID placeholder(s) in your uninstall callback string or in your S3 bucket CSV definition, so you can map the value(s) to other advertising IDs in your system.

In the Adjust dashboard

  1. Navigate to your app and select your app options caret (^)

  2. Select All Settings > Raw Data Export > Real-Time Callbacks

  3. Select the edit (pencil) icon beside any of the following:

    • Global
    • Uninstall
    • Reinstall
    • Reattribution reinstall
  4. Enter your callback URL and append any desired key-value pairs to receive additional information through the callback. Here are the Adjust placeholders directly related to uninstall and reinstall tracking:

    • {time_to_uninstall}
    • {time_to_reinstall}
    • {uninstalled_at}
    • {reinstalled_at}
    • {last_session_time}

    You can also view a full list of available Adjust placeholders with descriptions.

  5. Select UPDATE

Instructions for CSV uploads to cloud storage
In the Adjust dashboard

  1. Navigate to your app and select your app options caret (^)

  2. Select All Settings > Raw Data Export > CSV Upload

  3. Select Select Events for Export

  4. Select any of the following:

    • Uninstall
    • Reinstall
    • Reattribution reinstall
  5. In your CSV DEFINITION, you can include any of the following placeholders related to uninstall and reinstall tracking

    • {time_to_uninstall}
    • {time_to_reinstall}
    • {uninstalled_at}
    • {reinstalled_at}
    • {last_session_time}

    You can also view a full list of available Adjust placeholders with descriptions.

  6. Select SAVE