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


Did this page help you?