Cross-promotion
Attribute clicks and impressions from cross-promotion campaigns between your own apps.
This guide covers Android SDK 7.0 and above. For SDK 6.x, see Cross-promotion for SDK 6.
Cross-promotion attribution uses AppsFlyer SDK methods instead of a standard attribution link: the SDK builds the link and calls it directly when a user taps or views a cross-promotion ad.
CrossPromotionHelper provides those methods: logAndOpenStore sends the click to AppsFlyer and opens the promoted app's Play Store listing, and logCrossPromoteImpression sends the impression to AppsFlyer.
For background on cross-promotion campaigns, see Cross-promotion attribution for marketers.
Attribute cross-promotion clicks
Call CrossPromotionHelper.logAndOpenStore when a user taps a cross-promotion ad. The SDK builds an attribution link, appends the device advertising ID, and opens the promoted app's Play Store listing.
String campaign = "spring_sale_2026";
Map<String, String> userParams = new HashMap<>();
userParams.put("af_sub1", "val");
userParams.put("custom_param", "val2");
CrossPromotionHelper.logAndOpenStore(this, "com.appsflyer.promotedapp", campaign, userParams);val campaign = "spring_sale_2026"
val userParams = HashMap<String, String>()
userParams["af_sub1"] = "val"
userParams["custom_param"] = "val2"
CrossPromotionHelper.logAndOpenStore(this, "com.appsflyer.promotedapp", campaign, userParams)Attribute cross-promotion impressions
Call CrossPromotionHelper.logCrossPromoteImpression when a cross-promotion ad becomes visible.
String appID = "com.appsflyer.promotedapp";
String campaign = "spring_sale_2026";
Map<String, String> userParams = new HashMap<>();
userParams.put("af_sub1", "val");
userParams.put("custom_param", "val2");
CrossPromotionHelper.logCrossPromoteImpression(this, appID, campaign, userParams);val appID = "com.appsflyer.promotedapp"
val campaign = "spring_sale_2026"
val userParams = HashMap<String, String>()
userParams["af_sub1"] = "val"
userParams["custom_param"] = "val2"
CrossPromotionHelper.logCrossPromoteImpression(this, appID, campaign, userParams)See also
Updated 18 days ago