iOS Uninstall Tracking


AppsFlyer's Uninstall Tracking feature allows you to track the number of uninstalls that have occurred for a particular app and attribute them back to a specific media source.  With this metric, you can optimize your advertising budget and strategy with those media sources providing the highest value users.

Uninstall Tracking is an AppsFlyer premium feature.

To use this feature, you must have minimum SDK version 4.5.0 and higher. 


Uninstall tracking is not possible for users who reject Push Notification permissions.

Finding Your App

1.  In the Apple Developer Members Center, click Identifiers under iOS Apps and locate your application in the list.

2.  If you have not registered an App ID yet, click the + symbol and complete the form.
3.  Check the Push Notifications checkbox.
4.  When you expand the application, there are two settings for push notifications with yellow or green status icons:
5.  Click Settings to continue.


The Settings button may be titled Edit if push notifications have been previously configured. If the Settings/Edit button is not available, you may not be the team agent or an admin. The person who originally created the developer account is your team agent and they carry out the remainder of the steps in this section.

Generating Your Certificate

1.  Select Apple Push Notification service SSL (Sandbox & Production) in Production certificate option.

2.  Click Create Certificate from the Production SSL Certificate option.

3.  After clicking Create Certificate, note the Add iOS Certificate Assistant. Follow the instructions in the assistant and then click Continue.

4.  Using the Certificate Signing request that was just created, generate the APNS Push SSL certificate.

5.  Once the Download button appears, you are ready to download. You may need to reload the page for this to update. Download the newly created certificate:

6.  Open the certificate. Opening the certificate will open Keychain Access.

In the Keychain Access your certificate is shown under My Certificates. If not, check Certificates to see if it’s located there.


Only account admins can upload or change the p12 certificate.

Renewing Your Certificate

If you are renewing either your Development or Production Push SSL Certificate, follow the steps outlined above as if you were uploading the certificate for the first time. There is no need to revoke the previous certificate in order to make this change. There may be two production certificates at the same time, to allow you to continue using the old certificate while uploading the new one.

Export the .p12 File

The final step before heading back over to the AppsFlyer dashboard is to save your signing certificate as a .p12 file.

1.  Select the certificate that was just added to Keychain Access 

2.  Go to File >> Export Items.

3.  Select My Certificates under the Category menu on the lower left-hand side.

If My Certificates is not highlighted, you cannot export the certificate as a .p12 file.


3.  When saving the file, use the Personal Information Exchange (.p12) format.

4.  Make sure it states Apple Push Services and appears as follows:

5.  Go to your app's dashboard on the AppsFlyer platform.

6.  Select App Settings on the left menu.

7.  Click Select File to select your .p12 file.

8.  Enter the password for the .p12 file (not the certificate password).

9.  Click Validate to send the certificate to AppsFlyer to check if it is valid. 

10.  Click Save Settings.

Integrating with the SDK

Push notifications must be registered at the app's code level to enable uninstall data collection.

Add the following code to your AppDelegate.m:
Swift Objective-C
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // iOS 10 support
        if #available(iOS 10, *) {
            UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]){ (granted, error) in }
        // iOS 9 and iOS 8 support
        else if #available(iOS 8, *), #available(iOS 9, *) {
            UIApplication.shared.registerUserNotificationSettings(UIUserNotificationSettings(types: [.badge, .sound, .alert], categories: nil))

        // iOS 7 support
        else {
            application.registerForRemoteNotifications(matching: [.badge, .sound, .alert])
        return true

  // Called when the application sucessfuly registers for push notifications
    func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {

Push Notifications

Make sure you add Push Notification in your XCode capabilities tab. Without it, the deviceToken is not collected.

Testing Uninstall

It is important to remember that to test a local build, you must use TestFlight and simulate the test on your test device.  Testing does not work directly from xcode.

Viewing Uninstall Data in the AppsFlyer Dashboard

Uninstall tracking is displayed on the main dashboard in the Aggregated Performance table.

Uninstall information can be tracked from 15 April 2016.

Metrics for uninstalls are updated and aggregated every 24 hours.

For more details, refer to the iOS Track App Uninstalls section of the SDK Integration Guide, here


Viewing uninstalls filtered by country only is currently unavailable.

Was this article helpful?
0 out of 0 found this helpful