Cross-promotion
Attribute clicks and impressions from cross-promotion campaigns between your own apps.
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> parameters = new HashMap<>();
parameters.put("af_sub1", "val");
parameters.put("custom_param", "val2");
CrossPromotionHelper.logAndOpenStore(this, "com.appsflyer.promotedapp", campaign, parameters);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> parameters = new HashMap<>();
parameters.put("af_sub1", "val");
parameters.put("custom_param", "val2");
CrossPromotionHelper.logCrossPromoteImpression(this, appID, campaign, parameters);val appID = "com.appsflyer.promotedapp"
val campaign = "spring_sale_2026"
val parameters = HashMap<String, String>()
parameters["af_sub1"] = "val"
parameters["custom_param"] = "val2"
CrossPromotionHelper.logCrossPromoteImpression(this, appID, campaign, parameters)See also
Updated 12 days ago