StageUp
Mobile SDKPromotion

Android Promotion

With AdStage Promotion, you can fetch promotions tailored to your users, or immediately open them with built-in UI. The examples below show both fetching a list and opening (rendering) immediately.

1. Full PromotionListParams sample

val params = AdStage.PromotionListParams(
  bannerType = "REWARDED_VIDEO",     // NATIVE, INTERSTITIAL, REWARDED_VIDEO, POPUP
  targetAudience = "new_user",        // e.g., new_user, paying_user
  deviceType = "HIGH_END",            // LOW_END, MID_END, HIGH_END
  region = "KR",                      // KR, JP, US, SEA, EU, GLOBAL
  limit = 5,                           // Max number of items
  status = "ACTIVE",                  // ACTIVE, PENDING, PAUSED, ENDED
  partner = "SuperAds",               // Advertiser/partner identifier
  primaryInterest = "GAMES",          // GAMES, SHOPPING, ENTERTAINMENT, etc.
  primaryAgeGroup = "25-34",          // 13-17, 18-24, 25-34, 35-44, 45+
  gameGenrePreference = "RPG",        // RPG, STRATEGY, CASUAL, ACTION, PUZZLE
  playerSpendingTier = "DOLPHIN",     // F2P, DOLPHIN, WHALE
  playTimePattern = "EVENING"         // MORNING, AFTERNOON, EVENING, NIGHT
)

2. Open a promotion: openPromotion

openPromotion queries for promotions that match conditions and immediately renders/handles them in-app with UI.

AdStage.openPromotion(
  activity = this,
  params = AdStage.PromotionListParams(
    bannerType = "REWARDED_VIDEO",
    targetAudience = "new_user",
    deviceType = "HIGH_END",
    region = "KR",
    limit = 5,
    status = "ACTIVE",
    partner = "SuperAds",
    primaryInterest = "GAMES",
    primaryAgeGroup = "25-34",
    gameGenrePreference = "RPG",
    playerSpendingTier = "DOLPHIN",
    playTimePattern = "EVENING"
  ),
  showTodayButton = true
) { url, error ->
  if (error == null) {
    Log.d("Promotion", "Handled promotion: $url")
  } else {
    Log.e("Promotion", "Failed to handle promotion", error)
  }
}

3. Fetch promotion list: getPromotionList

getPromotionList fetches only the matching promotions. You render the UI yourself.

val params = AdStage.PromotionListParams(
  bannerType = "REWARDED_VIDEO",
  targetAudience = "new_user",
  deviceType = "HIGH_END",
  region = "KR",
  limit = 5,
  status = "ACTIVE",
  partner = "SuperAds",
  primaryInterest = "GAMES",
  primaryAgeGroup = "25-34",
  gameGenrePreference = "RPG",
  playerSpendingTier = "DOLPHIN",
  playTimePattern = "EVENING"
)
 
AdStage.getPromotionList(params) { promotions ->
  val promotionCount = promotions?.totalItems ?: 0
  val promotionItems = promotions?.promotions ?: emptyList()
  Log.d("Promotion", "Received $promotionCount promotions")
 
  // TODO: Render promotionItems in RecyclerView, etc.
}

4. Notes

  • Every parameter is nullable; if omitted, the query is unfiltered for that field.
  • openPromotion auto-renders with UI, while getPromotionList returns only the list.

Table of Contents