Cross Promotion Tracking


Question - What is the best source of traffic you can get for your new app/s?

Answer - your own users from your other apps! After all, your users already know and (hopefully) love your brand and apps. 

Using cross-promotion campaigns with these users should get you high conversion and retention rates compared with most other sources of traffic. Let's also not forget that this traffic is 100% free of media source charges.

However, to avoid misuse or overuse of this precious resource of existing active users, it is highly recommended to track these campaigns carefully.

AppsFlyer allows you to track and attribute installs originating from cross promotion campaigns of your existing apps. Afterwards, you can optimize on your cross-promotion traffic to get even better results.


Cross Promotion Tracking is available on AppsFlyer's SDK versions 4.8.0 and above.

How Does it Work?

    1. User is exposed to the cross-promo ad on your app. The ad's creative can be a banner, video or any clickable object.
    2. [optional] SDK sends cross-promo impression for the user.
    3. User clicks on the ad.
    4. The SDK's trackAndOpenStore method tracks the click and "redirects" the user to the app store's page for the promoted app.
    5. After the promoted app is installed and launched, the AppsFlyer dashboard shows the newly acquired user under the media source af_cross_promotion. The app driving the install appears as a site_id of this media source. 



Regular tracked mobile ads activate a URL when clicked. Cross Promotion mobile ads don't have a link, but instead they activate AppsFlyer's SDK trackAndOpenStore method.

Tracking Cross Promotions

Tracking both impressions and clicks of cross promotion campaigns is very useful. It enables you to calculate the impressions to clicks conversion rate, or even impressions to installs conversion rates, and optimize accordingly.


In cross promotion campaigns the impressions to installs conversion rate is actually an affinity score between your apps. The higher is the rate the closer are the apps in terms of attractiveness to your users.

Tracking cross-promotion clicks and impressions is performed by using two separate API calls as described below. Each API call can also be passed a Map of key values, which can be anything that fits your cross promotion tracking use case. In addition, any AppsFlyer tracking parameter can be passed as part of this Map.

With the first launch of the promoted app all the original parameters can be accessed via the SDK's conversion data API, for Android or iOS.

Tracking Cross Promotion Clicks

Use the following code to track the click and launch the app store's app page.

Android iOS
/*void trackAndOpenStore(Context context, String promoted_app_id, String campaign, Map<String,String> user_params);*/
String campaign = “Cross Promo Campaign”;
Map<String, String> parameters = new HashMap();
parameters.put(“af_sub1”, “val”);
parameters.put(“custom_param”, “val2”);
CrossPromotionHelper.trackAndOpenStore(this, "", campaign, parameters);

Tracking Cross Promotion Impressions

To track an impression use the following API call. Make sure to use the promoted App ID as it appears within the AppsFlyer dashboard.

Android iOS
/* void trackCrossPromoteImpression(Context context, String promoted_app_id, 
String campaign, Map<String,String> user_params); */
CrossPromotionHelper.trackCrossPromoteImpression(this, "", null);

Custom Dashboard View

Below are the available views of the Custom Dashboard:

Was this article helpful?
1 out of 2 found this helpful