At a glance: Attribute your apps in multiple Android stores and view the data in a single app dashboard or in an app dashboard per store.
Multi-store Android attribution
AppsFlyer attributes apps, irrespective of the app store. Meaning Google Play store and third-party Android app stores like Amazon, Opera, GetJar, Baidu, and Huawei. (AKA out-of-market stores or alternate Android app stores.) App owners, who market the app via multiple stores, can choose between a single dashboard having the data of all stores together or a dashboard per store.
Note
- AppsFlyer Android attribution supports all device identifier types including GAID and OAID
- For apps marketed in China, see Attributing Android apps in the Chinese domestic market
Single dashboard vs. dashboard per store
- Single dashboard: One dashboard that combines data from all stores, including Google Play Store
- Dashboard per store: Multiple dashboards—each store has its own dashboard. This means you have as many dashboards as stores providing the app.
Single dashboard |
Dashboard per store | |
---|---|---|
Android package name | Use the same (identical) package name irrespective of the option selected. | |
Channel name | Nothing to set |
|
Populating the install_app_store field |
|
N/A |
OneLink template | When working with OneLink this method is recommended. | N/A |
Measurement/Attribution links |
|
|
Reporting options available having install_app_store field |
Raw data reports always contain this field. For Overview and Cohort, reach out to your CSM asking them to add the necessary feature. |
N/A |
Considerations |
|
|
Set-up tasks
The workflow that follows lists the activities required to set up the desired option. The tasks are divided between the marketer and developer.
For the Dashboard-per-store option repeat the tasks for each store.
Before you begin:
- Decide on the naming convention for the channel and install_app_store parameters.
- Use the naming table that follows to map the channels and stores.
- The table is used by the developer to prepare the APKs.
Parameter |
Instruction |
Single dashboard |
Dashboard per store |
---|---|---|---|
Android package name | The identical package name for all dashboard options | If the app is already in Google Play Store use the existing package name. Example: comb.abc.def | |
Channel name | A unique value for each store. |
Not set. Leave blank. |
Unique for each store. Set the value in the individual APK prepared for the store and when adding the app in AppsFlyer. Don't set a channel for the Google Play Store APK. |
Install app store AF_STORE | A unique value identifying the store |
Unique for each store. Set in the APK through the manifest. Each store has its own APK. |
Not set |
Tasks
Step |
Responsibility |
Single dashboard |
Dashboard per store |
---|---|---|---|
1 | Developer | APK preparation | APK preparation |
2 |
Marketer |
No action required. The assumption is that the app is already active in AppsFlyer. |
Add the app in AppsFlyer. |
3 | Marketer |
|
Prepare attribution links with the app ID combined with the channel name. Do so via the Active integrations page in the usual manner. |
4 | Developer and marketer |
Procedures
Single dashboard—APK preparation
The Android package name determines which dashboard will contain the attribution data. In the single dashboard method, all stores have identical Android package names. There is no concept of a channel parameter here.
The identification of the download store is by way of the AF_STORE parameter set in the SDK, as described in this section. The AF_STORE parameter isn't case-sensitive. For example, ABC, abc, Abc.
To prepare the APK:
- Create a copy of the App build. Note: Don't change the Android package name.
- To identify the individual store use one of the following methods:
-
Manifest method: Add the following within the <application> tag of the AndroidManifest.xml to identify the store. Set the AF_STORE parameter to the app store name.
--OR--<application> ... <meta-data android:name="AF_STORE" android:value="EnterStoreNameHere"/> ... </application>
-
API method: Prepare a separate APK for each alternative app store. Call the setOutOfStore API to set the AF_STORE value. Set a unique value for each store.
AppsFlyerLib.getInstance().setOutOfStore("EnterStoreNameHere")
-
Manifest method: Add the following within the <application> tag of the AndroidManifest.xml to identify the store. Set the AF_STORE parameter to the app store name.
The value set here appears in AppsFlyer raw data install_app_store field. This field is available in:
- Overview dashboard
- Cohort dashboard
- Raw data reports (Raw data reports are an AppsFlyer premium feature)
Single dashboard—attribution links
- In AppsFlyer, from the side menu, select Collaborate > Active Integrations
- Choose the ad network.
- In the Attribution Link tab, set the Out-of-store URL parameter. This populates the
af_r
macro on the attribution link to redirect users to the correct app store landing page. For example,&af_r=http://www.destinationurl.com
The default URL is set in the App Settings page. If the option isn't available in the App Settings page, ask your CSM to enable it for you. - Populate the af_r macro with the store landing page URL.
- Set additional attribution link parameters.
- Out-of-store media sources make use of ID matching for attribution and the AppsFlyer Probabilistic modeling serves as a fallback method.
- Add one or more user ID placeholders to the link URL:
- android_id
- advertising_id
- oaid
- Copy the attribution link and give it to the ad network partner.
Dashboard per store—APK preparation
The Android package name combined with the channel parameter set in the manifest determines which store dashboard will contain the attribution data.
To prepare a separate APK/manifest for each store:
- Add the following within the <application> tag of the AndroidManifest.xml to identify the store. Set CHANNEL parameter to the app store name.
Note: Parameters are case-sensitive. For the channel name you must use upper or lower-case letters only (a-z or A-Z). No other characters, such as hyphen (-) or underscore (_), are permitted.<application> ... <meta-data android:name="CHANNEL" android:value="EnterStoreNameHere"/> ... </application>
Dashboard per store—adding the app
Add a dashboard (app) identified by the combination of the Android package name and channel set in the APK/manifest. Example: Android package name is com.myapp and the channel name is abcstore then the unique dashboard name is com.myapp—abcstore.
To add a dashboard per store in AppsFlyer:
- In AppsFlyer, from the side menu, select Settings > My apps, and click Add app.
- Select Android > In 3rd-party store.
- Complete:
- Android package name: The package name is exactly as it displays in the app package.
-
Channel name: Unique identifier (store name) to differentiate between dashboards having the same package name. Verify that you use the same value in the APK prepared for the store.
Note: For the channel name you must use upper or lower-case letters only (a-z or A-Z). No other characters, such as hyphen (-) or underscore (_), are permitted. -
App URL:
- Contains the default URL download address that populates the af_r macro in attribution links. Enter the URL where the APK is hosted or its landing page URL.
- You can change this per attribution link when you create them.
- If you leave this field blank, you won't be able to set the default page in the future.
- Click Next.
- Follow the instructions in the interface to complete adding the app.
Testing—both dashboard options
Non-organic installs
To test non-organic installs:
- Use an Android device that does not have your app installed or register the device.
- Generate a test attribution link using a OneLink link. Use test as the Media source name ("&pid=test").
- Add an advertising ID being GAID, OAID, or Android ID to the click URL.
Send the attribution link to yourself via email and click on it. Once redirected, do not install from the store. Instead, install the updated beta version app with AppsFlyer attribution SDK embedded and launch it.http://app.appsflyer.com/com.greatapp?pid=test &af_r=http://www.destinationurl.com&advertising_id=b5a3-78d9b5-0f12345-xxxx
Single dashboard |
Dashboard per store |
---|---|
|
|
Organic installs
To test organic installs:
- Use an Android device that does not have your app installed or that is registered.
- Install the updated beta version app with AppsFlyer attribution SDK embedded and launch it.
- Check the results:
Expected results
Single dashboard |
Dashboard per store |
---|---|
Check the overview page for a new organic install (under the “organic” media source). At present, with the single app method, there is no indication as to the origin of organic installs. |
|
Additional features
Migrating from Dashboard per store to single dashboard
- Prepare new APKs for the stores by using the single dashboard method instructions contained in this article.
Driving users from Facebook to the Amazon app store
- Configure a URL link to the app in your Meta app settings, under the Android section.
- Log in to Meta as the app admin, go to https://developers.facebook.com/apps/, and choose the app.
- Go to settings and find your Android settings, or if you have not already configured Android, add the platform.
- Fill out the required details, including the Amazon app store URL specific to your app.
- In the AppsFlyer dashboard, under Active Integrations, select Meta ads, and enter the same Facebook App ID you use when recording Meta In-Store Mobile App Install Ads with AppsFlyer.
Getting the data - Additional AppsFlyer reports
In addition to the Overview dashboard, you can use the following reporting methods in AppsFlyer.
- Cohort:
- Combine multiple dashboards (apps) in a single report
- View the performance of each dashboard by breaking it down by install_app_store
- Pull API (for single app method): Pull API installs raw data does not contain the Install App Store by default. To include the column add the following to the Pull API call:
&additional_fields=install_app_store
- Custom dashboard (for multiple apps method): If you use the multi-dashboard approach, use the custom dashboard to combine performance data from several apps in one place.
Referrer implementation—third-party Android app stores
- Referrer attribution is supported in relation to Google Play and the third-party stores listed here.
- For most third-party app stores, no other setting or configuration is required. For Xiaomi, an extra dependency needs to be configured. Learn more
- Attribution by third-party store referrer is reflected in raw data reports as follows:
- Match type: the name of the third-party store attributed. For example, huawei_referrer.
- Contributor: If the user engaged with multiple app stores before installing the app, AppsFlyer considers these engagements as contributors. The install is awarded to the last-click engagement. Example:
- A user clicks on an ad served by Google and is redirected to the Play Store. The user doesn't download the app.
- The user clicks on another ad and is redirected to the Samsung Galaxy store. The user downloads and installs the app.
- Attribution is awarded to the ad network causing the user to be redirected to the Samsung Galaxy store; Google is recognized as a contributor.
Third-party Android stores having referrer attribution integrations with AppsFlyer
Third-party app store | Starting from | SDK version |
---|---|---|
Huawei App Store | July 2020 | 6.14.0 + |
Samsung Galaxy Store | December 2020 | 6.1.1 + |
Xiaomi GetApps Store | September 2022 | 6.9.0 + |
Troubleshooting
Installs attributed to the default app
If you create an app APK with a channel setting but don't create a dashboard for it in the AppsFlyer account: Installs are attributed to the default app, usually the Google Play Store app in your account. If there is no default app no data is recorded for the app.
Traits and limitations
Trait | Remarks |
---|---|
OneLink redirection to multiple app stores |
Multiple app stores can be set on the OneLink template if the app package name is the same for all app stores and you implement the single dashboard option. |
Install app store |
This parameter isn't available for agencies or ad networks. |
OneLink redirection to a third-party store |
If your Android app is available exclusively through a third-party store, you must set its Google Play status to Published out of store when adding the app. Choosing any other status will prevent redirection to the third-party store and will result in an error message. |
Ad revenue |
|