Setting up multi-store Android attribution

At a glance:  Setting up attribution for apps available in multiple Android stores. Choose between combining the data from all stores in a single app dashboard or using a dashboard per store.  

Multi-store Android attribution 


  • AppsFlyer attributes apps, irrespective of the app store.  Meaning Google Play store and alternate Android stores like Amazon, Opera, GetJar, Baidu, and Huawei.  (AKA out-of-market stores or alternate Android 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. 
  • AppsFlyer Android attribution supports all device identifier types including GAID and OAID
  • For apps marketed in China see best practices for Android attribution in the Chinese domestic market.

Single dashboard vs. dashboard per store

Dashboard solution options

Single dashboard
[Best practice]

 Dashboard per store

Single dashboard having the data of all stores including Google Play Store

Each store has its own dashboard. This means you have as many dashboards as stores providing the app
Android package name Use the same (identical) package name irrespective of the option selected. 
Channel name Nothing to set
  • When adding the App in the AppsFlyer dashboard using the Android Out-of-Store APK option, set the channel.
  • The channel identifies the store. 
  • The combination of Android package name and channel uniquely identifies each AppsFlyer dashboard. 
  • Example: The Android package name is and the channel is xyz_device_store. The unique dashboard identifier is 
  • If the APK has a channel setting but there is no app with this setting, traffic is attributed to the default app, being the app with a blank channel setting being Google Play Store. 
Populating the install_app_store field
  • Uniquely identifies the store providing the app by download.
  • In the case of Google Play Store this is blank. 
  • The store name is set in the manifest/APK.


Measurement/Attribution links 
  • Links are the same irrespective of the store.
  • To redirect to the correct store, use the &af_r to set the redirect URL
  • A unique link is required for each store.
  • Create these using the integrated partners page.
  • The app ID is the channel name appended to the android package name. Ex:
    Hence the attribution links will be different.
Reporting options available having install_app_store field

Cohort and raw data reports include the field



  • Attribution accuracy: Re-installs from different stores don't result in inflated install numbers. 
  • Organic installs will reflect organic installs of APKs from all stores under one dashboard.
  • Reporting options are limited to Cohort and raw data at present.
  • Attribution accuracy: Re-installs are counted, which results in less accurate attribution.
  • View organic and non-organic installs and in-app event data per store (channel) on separate app dashboards in AppsFlyer.
  • Use Cohort to display combined reports of all stores together

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. 
Naming table


Single dashboard
[Best practice]

Dashboard per store
Android package name Identical package name for all dashboard options If the app is already in Google Play Store use the existing package name. Example:
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. 
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 it's own APK.  Not set


Single dashboard 

Dashboard per store
1 Developer APK preparation APK preperation


No action required. The assumption is that the app is already active in AppsFlyer. 

Add the app in AppsFlyer. 
3 Marketer

Prepare attribution links 


Prepare attribution links with the app ID combined with the channel name. Do so via the integrated partners page in the usual manner.

4 Developer and marketer





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. 

To prepare the APK:

  1. Create a copy of the App build. Note: Don't change the Android package name. 
  2. To identify the individual store use one of the following methods:
    • Manifest method: Add the following within the <application> tag of the AndroidManfest.xml to identify the store. Set the AF_STORE parameter to the app store name.
      <meta-data android:name="AF_STORE" android:value="enter_store_name_here">
    • API method: Prepare a separate APK for each out-of-store market. Call the setOutOfStore API to set the AF_STORE value. Set a unique value for each store.

The value set here appears in AppsFlyer raw data install_app_store field. This field is available in:

  • Cohort analysis 
  • Raw data reports (Raw data reports are an AppsFlyer premium feature)

Single dashboard—attribution links

  1. Go to Configuration > Integrated Partners and choose the ad network.
  2. 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=
  3. Populate the af_r macro with the store landing page URL.
  4. Set additional attribution link parameters.
  5. Out-of-store media sources make use of ID matching for attribution and the AppsFlyer Fingerprinting serves as a fallback method.
  6. Add one or more user ID placeholders to the link URL:
    • android_id
    • advertising_id
    • oaid
  7. 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 AndroidManfest.xml to identify the store. Set CHANNEL parameter to the app store name. 
    < meta-data android:name="CHANNEL" android:value="enter_store_name_here">
    Note: Parameters are case sensitive.

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:

  1. Go to, My apps, click Add app.
    The Add your app window opens.


  2. Select Android out of store APK (Standalone, Amazon, etc.)
  3. Complete:
    • Android Package Name: The package name exactly as it appears in the app package. 
    • Channel name: Unique identifier (store name) to differentiate between dashboards having the same package name. Ensure that you use the same value in the APK prepared for the store.
    • App URL: contains the default URL download address that populates the af_r macro in attribution links. You should add the URL for where the APK is hosted / landing page URL here. You don't have to set this now. You can add it when you create attribution links. 
  4. Click Save.
    The app is created. 

Testing—both dashboard options

Non-organic installs

To test non-organic installs:

  1. Use an Android device that does not have your app installed or whitelist the device.
  2. Generate a test attribution link using Custom Media Source Configuration. Use test as the Media source name ("&pid=test").
  3. 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's attribution SDK embedded and launch it.

Single dashboard 

Dashboard per store
  1. Check your app installation raw-data report in the Export Data page.
  2. You should see one install conversion with the test media-source. Under the column titled Install App Store you should see the name of the store as it appears on the manifest.xml file.
  3. You can also see the param "af_installstore": "STORE_NAME" in the install logs. 
  1. Go to the necessary app per store dashboard.
  2. Check the app's installs raw-data report under the Export Data page or look at the overview page of the app.
  3. You should see one installation conversion with the “test” media-source.
Expected results

Organic installs

To test organic installs:

  1. Use an Android device that does not have your app installed or that is whitelisted.
  2. Install the updated beta version app with AppsFlyer's attribution SDK embedded and launch it.
  3. Check the 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.
  1. Go to the dashboard and overview page of the app that is specific to the tested store.
  2. You should see one installation conversion under “organic” media-source.
Expected results

Additional features

Migrating from Dashboard per store to single dashboard

To migrate from multi dashboard to single dashboard:
    Prepare new APKs for the stores by using the single dashboard method instructions contained in this article.

Driving users to the Amazon app store from Facebook

  1. Configure a URL link to the app in your Facebook app settings, under the Android section.
  2. Log in to Facebook as the app admin, go to and choose the app.
  3. Go to settings and find your Android settings, or if you have not already configured Android, add the platform.
  4. Fill out the required details, including the Amazon app store URL specific to your app.

  5. In the AppsFlyer dashboard, under Integrated Partners, select Facebook, and enter the same Facebook App ID you use when recording Facebook In-Store Mobile App Install Ads with AppsFlyer.
  6. When setting up Advert Sets on Facebook, choose “Amazon Appstore”.


Note: This screenshot is taken from the Facebook Power Editor, and may be presented differently in FMP platforms.

Getting the data - AppsFlyer reports

You can use the following reporting methods in AppsFlyer.

  • Cohorts:
    • Combine multiple dashboards (apps) in a single report
    • View the performance of each dashboard by breaking 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. 


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 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. 

Was this article helpful?