Uninstall measurement

At a glance: Measure the uninstall rate for your app and determine which sources (media sources, campaigns, ad creatives, and geo) bring quality users.  

Overview 

To understand the value of your app users, you must analyze both install and uninstall rates. The uninstall metric can help you measure your app's performance, and understand when and why users leave your app. 

How does it work?

  1. AppsFlyer sends a daily API request to Firebase Cloud Messaging (FCM) and Apple Push Notification Services (APNS).
  2. FCM and APNS then send a silent push notification to verify if an app is still installed on a given device.
  3. An uninstall is recorded if the response indicates that the app was uninstalled (FCM and APNS) or no user activity was recorded for the past 270 days (FCM only).
  4. AppsFlyer attributes the uninstall to the media source that originally brought the user.

Note

Uninstall metrics are available in the user acquisition view only

How to use uninstall data

The following are some examples of what you can learn from measuring uninstalls, and how you can use the data to optimize campaigns and user engagement.

Compare the quality of sources

By comparing the quality of users acquired from different sources (media sources, campaigns, ad creatives, and geo), you can determine the media sources with the lowest uninstall rates, and reallocate funds to them.

 Example

You are a marketer of gaming apps for PlayIt Gaming International. You have just launched a new app and you are running campaigns on two different media sources (Media source A,  and Media source B).

When you check the dashboard you see that although Media source A has the highest number of installs (10,390), it also has the highest uninstall rate (30%).

Media source B, on the other hand, has 5,949 installs and the lowest uninstall rate (12%). 

Uninstall rates.png

Based on these insights, you could reallocate more of your budget to Media source B and try to acquire more engaged users.

Share uninstall data with ad networks for optimization

Sending uninstall event postbacks to the ad networks you work with is useful for optimizing user acquisition campaigns. You can send the uninstall event by mapping af_uninstall to your ad network. Once the mapping is complete, an event is sent each time a user is identified as having uninstalled the app. Ad networks can use this information to determine which users are less engaged and focus on getting more engaged users. 

 Example

You are a marketer of gaming apps for PlayIt Gaming International. Media source A is an ad network that you are working with on the launch of your new Android app. In the previous campaign you ran with Media source A, 1,000 new users installed your app, and subsequently, 300 users uninstalled the app. For the new campaign, you want Media source A to receive uninstall data. This will allow Media source A to quickly address uninstall challenges.

Based on insights from the previous campaign, Media source A creates a campaign exclusion list that excludes specific types of users from ads running in your new campaign:

  • Users who have already proven that they are of lower value for your app. 
  • Users who regularly uninstall your apps.

This allows Media source A to optimize audience targeting to make sure that your campaign budget is not wasted on users who don't need to see certain campaign ads. 

Exclude uninstalls from retargeting campaigns

In some cases, to comply with regulations like GDPR and CCPA, you might need to exclude users that uninstalled your app from retargeting campaigns. Uninstall information allows you to create exclusion lists and apply privacy measures to protect your customers’ privacy and data.

Methods to exclude users include the following:

  • Raw-data reports: A manual method in which you retrieve a list of uninstalled users from the Uninstalls report and create an exclusion list.
  • AppsFlyer Audiences: An automatic method in which you define a target audience based on specific criteria (for example, users who haven't uninstalled your app). Users that don't meet the criteria are excluded from the audience.

 Example

You are a marketer of gaming apps for PlayIt Gaming International. You are running a retargeting campaign for one of your Android apps and you decide to use AppsFlyer Audiences to define a retargeting audience. The criteria for your audience is as follows:

  • Users that haven't uninstalled the app. 
  • Users that haven't launched the app in the last 30 days.

This allows you to create a more exact retargeting audience. When your retargeting campaign runs, ads will only be served to users defined in your retargeting audience. 

Setting up uninstall measurement

The process of setting up the uninstall metric requires that the marketer and the developer work together. Implementation instructions depend on the operating system your app runs on.

The flow for the marketer and the developer is as follows:

Android iOS
Task Owner

Connect Firebase Cloud Messaging (FCM) to AppsFlyer 

Marketer

Configure uninstall measurement in AppsFlyer

Marketer

Integrate with the SDK

Android developer

Test uninstall measurement Marketer
[Optional] Map the uninstall event to relevant partners in the dashboard Marketer

Implementation procedures

Implementation requires your mobile developer to integrate a mechanism that responds to push notifications into your app. Implementation instructions vary according to the operating system.

Connect Firebase Cloud Messaging to AppsFlyer (Android)

Android uninstall measurement is available by configuring uninstall measurement in AppsFlyer and adopting Firebase Cloud Messaging (FCM) into your app.

HTTP V1

To configure FCM HTTP V1 for uninstalls: 

  1. To get the Project ID:
    1. Go to the FCM console.
    2. Select a project. 
    3. Go to Project Overview > Project settings.

      UninstallFirebase.png

    4. Copy the Project ID. You will need it at a later stage in the process. 
  2. To enable the FCM API:
    1. Go to the Cloud Messaging tab.
    2. Make sure that Firebase Cloud Messaging API (V1) is set to Enabled
  3. To assign AppsFlyer the uninstall role:
    1. Go to the Service accounts tab. 
    2. Click Manage service account permissions
      A new browser tab opens in Google Cloud Platform.
    3. In the side menu, select Roles
    4. Click +Create role.
    5. Complete as follows:
      • Title: Enter AppsFlyer uninstalls.
      • ID: Enter af_uninstalls.
      • Role launch stage: Select General availability
    6. Click Add permissions.
    7. In adjusted.png Filter, Select the cloudmessaging.messages.create permission.

    8. Click Add and then click Create.
  4. To assign AppsFlyer the FCM uninstall role:
    1. In the side menu, select IAM.
    2. Open the PERMISSIONS -> VIEW BY PRINCIPALS tab. 
    3. Click Grant Access.
    4. In Add Principals -> New principals, enter af-uninstalls-tracking@af-uninstalls-tracking.iam.gserviceaccount.com
    5. In Assign roles -> Role select the custom you created - AppsFlyer Uninstalls.
    6. Click Save
      The AppsFlyer service account has been assigned the role of AppsFlyer uninstalls. 

       Note

      AppsFlyer uses silent push notifications solely to measure uninstalls or identify inactive users and does not use them for any other purposes.

[Deprecated] Legacy HTTP

 Important!

HTTP legacy API were deprecated by Firebase on June 20, 2023, and will be removed on June 21st, 2024. If you are using the legacy API, we strongly recommend that you use the HTTP v1 API. Learn more

Uninstall measurement using Firebase Messaging is supported by Android SDK V4.7.0+.

To obtain the Firebase server key:

  1. Create a Firebase Android Application project (if you have not already done so), or migrate your project from Google Developer Console (follow the instructions there). For more information, go to Firebase
  2. Open the Firebase Console.
  3. In the Firebase Console, navigate to the Project Settings (click on the cogwheel next to Project Overview on the left pane of the page).

    firebase_cloud_messaging_server_key.png

  4. In the Cloud Messaging tab, you see two Server Keys.
  5. Copy the Server Key.

Configure uninstall measurement in AppsFlyer

Android iOS

Prerequisite: Android developer must complete their integration instructions.

To configure uninstall measurement in AppsFlyer:

  1. In AppsFlyer, from the side menu, select Settings > App Settings.
  2. If necessary, turn on Uninstall measurement
  3. Select HTTP V1, and enter the project ID you prepared earlier.

    UninstallHTTPV1.png

  4. Click Test connection.
    The success message displays. 
  5. Click Save settings

Testing uninstall measurement

Once the implementation procedures are complete, you can install and then uninstall the app to test that uninstalls are recorded correctly. Uninstalls and uninstall rates are displayed on the Overview dashboard

Android iOS

You can perform this test on apps that are:

  • In the Google Play Store
  • Pending (not listed in the Google Play Store)
  • Available through direct download
  • In alternative app stores

Keep in mind the following when testing Android apps:

  • Uninstall measurement is processed daily. An uninstall event is registered within 24 hours, but if the app is reinstalled during this time, an event isn't recorded.
  • Uninstall events take up to 48 hours to display in raw-data reports and in the AppsFlyer dashboard (Aggregated Performance Report).

Mapping the uninstall event

Uninstall_event_postback.png

To share uninstall data with an ad network requires mapping the af_uninstall event to a partner. Unlike postbacks for regular in-app events, the uninstall event is not sent in real-time. The event time that is reported represents the time that AppsFlyer determined the app was uninstalled, and not the actual uninstall itself.  

Keep in mind the following:

  • AppsFlyer can only send the postback if the event actually occurs and is recorded by AppsFlyer.
  • If you don't see uninstalls in the dashboard Overview page or in the raw-data report, this means that uninstall postbacks were not sent to the partner, even if the af_uninstall event was mapped.

Limitations

  • Uninstall events are not included in in-app event postback reports.
  • The af_uninstall event is supported by all partners. If you want to map it to a partner, but the event is not available in the partner's Integration tab, contact your CSM or contact hello@appsflyer.com.

Turning off uninstall measurement

Android iOS 

If a Firebase/GCM Server Key is provided, app uninstall measurement is enabled by default. App owners can disable this feature via the dashboard.

Note: For an uninstall to be reported, Enable uninstall measurement must be on at the time the app is installed. Installs occurring when Enable uninstall measurement is off aren't reported. 

To turn off uninstall measurement:

  1. In AppsFlyer, from the side menu, select Settings > App Settings.
  2. Go to Attribution > Uninstall measurement and turn off Enable uninstall measurement.

Traits and limitations

Trait Remarks
CUID

CUID isn't sent in uninstall postbacks.