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?
- AppsFlyer sends a daily API request to Firebase Cloud Messaging (FCM) and Apple Push Notification Services (APNS).
- FCM and APNS then send a silent push notification to verify if an app is still installed on a given device.
- 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).
- 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%).
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:
Task | Owner |
---|---|
Marketer |
|
Marketer |
|
Android developer |
|
Test uninstall measurement | Marketer |
[Optional] Map the uninstall event to relevant partners in the dashboard | Marketer |
Task | Owner |
---|---|
|
iOS developer |
Marketer |
|
|
iOS 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:
-
To get the Project ID:
- Go to the FCM console.
- Select a project.
-
Go to Project Overview > Project settings.
- Copy the Project ID. You will need it at a later stage in the process.
-
To enable the FCM API:
- Go to the Cloud Messaging tab.
- Make sure that Firebase Cloud Messaging API (V1) is set to Enabled
-
To assign AppsFlyer the uninstall role:
- Go to the Service accounts tab.
- Click Manage service account permissions.
A new browser tab opens in Google Cloud Platform. - In the side menu, select Roles.
- Click +Create role.
- Complete as follows:
- Title: Enter AppsFlyer uninstalls.
- ID: Enter
af_uninstalls
. - Role launch stage: Select General availability.
- Click Add permissions.
- In
Filter, Select the cloudmessaging.messages.create permission.
- Click Add and then click Create.
-
To assign AppsFlyer the FCM uninstall role:
- In the side menu, select IAM.
- Open the PERMISSIONS -> VIEW BY PRINCIPALS tab.
- Click Grant Access.
- In Add Principals -> New principals, enter af-uninstalls-tracking@af-uninstalls-tracking.iam.gserviceaccount.com
- In Assign roles -> Role select the custom you created - AppsFlyer Uninstalls.
-
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:
- 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.
- Open the Firebase Console.
- In the Firebase Console, navigate to the Project Settings (click on the cogwheel next to Project Overview on the left pane of the page).
- In the Cloud Messaging tab, you see two Server Keys.
- Copy the Server Key.
Configure uninstall measurement in AppsFlyer
Prerequisite: Android developer must complete their integration instructions.
To configure uninstall measurement in AppsFlyer:
- In AppsFlyer, from the side menu, select Settings > App Settings.
- If necessary, turn on Uninstall measurement.
- Select HTTP V1, and enter the project ID you prepared earlier.
- Click Test connection.
The success message displays. - Click Save settings.
Prerequisite: iOS developer must complete their integration instructions.
To configure uninstall measurement in AppsFlyer:
- Get the P12 file from your developer.
- In AppsFlyer, from the side menu, select Settings > App Settings.
- Scroll down to the Uninstall section.
- Turn on Uninstall measurement.
-
Click the upload icon, and select the P12 file.
-
[Optional] If the P12 certificate is password-protected, enter the password.
-
Click Validate to send the certificate to AppsFlyer for verification.
-
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.
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).
Keep in mind the following when testing iOS apps:
- Uninstalls do not immediately appear in the AppsFlyer dashboard. Due to the Apple Push Notification service, the time it takes uninstalls to appear on the dashboard is a minimum of 9 days. AppsFlyer updates and aggregates metrics for uninstalls every 24 hours.
Example
- Day 1: A user installs your app.
- Day 4: A user uninstalls your app.
- Day 12: Apple Push Notification Service reports app removal 8 days after the uninstall.
- Day 13: Uninstall data appears in the AppsFlyer dashboard and raw data.
- If you are performing tests on a test version of the app, make sure you are using the sandbox environment. See developer instructions for the uninstall sandbox procedure.
Mapping the uninstall event
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
If a Firebase/GCM Server Key is provided, app uninstall measurement is enabled by default. App owners can disable this feature via the dashboard.
If a P12 certificate is provided and validated, 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:
- In AppsFlyer, from the side menu, select Settings > App Settings.
- Go to Attribution > Uninstall measurement and turn off Enable uninstall measurement.
Traits and limitations
Trait | Remarks |
---|---|
CUID |
CUID isn't sent in uninstall postbacks. |