StageUp
모바일 SDK프로모션

iOS

iOS 앱에서 AdStagePromotionsHandler를 사용하여 프로모션을 열거나 리스트를 조회하는 방법을 설명합니다.

1. 기본 파라미터 클래스: PromotionListParams

@objc public class PromotionListParams: NSObject {
	@objc public var bannerType: String?          // NATIVE, INTERSTITIAL, REWARDED_VIDEO, POPUP
	@objc public var targetAudience: String?      // 타겟 사용자 필터
	@objc public var deviceType: String?          // LOW_END, MID_END, HIGH_END
	@objc public var region: String?              // KR, JP, US, SEA, EU, GLOBAL
	@objc public var limit: NSNumber?             // 조회할 프로모션 개수 제한
	@objc public var status: String?              // ACTIVE, PENDING, PAUSED, ENDED
	@objc public var partner: String?             // 파트너(광고주) 필터
 
	@objc public var primaryInterest: String?     // GAMES, SHOPPING, ENTERTAINMENT, etc.
	@objc public var primaryAgeGroup: String?     // 13-17, 18-24, 25-34, 35-44, 45+
	@objc public var gameGenrePreference: String? // RPG, STRATEGY, CASUAL, ACTION, PUZZLE
	@objc public var playerSpendingTier: String?  // F2P, DOLPHIN, WHALE
	@objc public var playTimePattern: String?     // MORNING, AFTERNOON, EVENING, NIGHT
}

2. 프로모션 열기 (openPromotion)

조건에 맞는 프로모션을 조회하고 UI를 포함하여 즉시 렌더링/처리합니다.

let params = AdStagePromotionsHandler.PromotionListParams()
params.bannerType = "REWARDED_VIDEO"
params.targetAudience = "new_user"
params.deviceType = "HIGH_END"
params.region = "KR"
params.limit = 3
params.status = "ACTIVE"
params.partner = "SuperAds"
params.primaryInterest = "GAMES"
params.primaryAgeGroup = "25-34"
params.gameGenrePreference = "RPG"
params.playerSpendingTier = "DOLPHIN"
params.playTimePattern = "EVENING"
 
AdStagePromotionsHandler.shared.openPromotion(
	params: params,
	showTodayButton: true
) { url, error in
	if let error = error {
		print("프로모션 처리 실패: \(error)")
	} else {
		print("프로모션 처리 완료: \(url ?? "")")
	}
}

3. 프로모션 리스트 가져오기 (getPromotionList)

조건에 맞는 프로모션 리스트만 조회합니다(UI는 직접 렌더링).

let params = AdStagePromotionsHandler.PromotionListParams()
params.bannerType = "REWARDED_VIDEO"
params.targetAudience = "new_user"
params.deviceType = "HIGH_END"
params.region = "KR"
params.limit = 3
params.status = "ACTIVE"
params.partner = "SuperAds"
params.primaryInterest = "GAMES"
params.primaryAgeGroup = "25-34"
params.gameGenrePreference = "RPG"
params.playerSpendingTier = "DOLPHIN"
params.playTimePattern = "EVENING"
 
AdStagePromotionsHandler.shared.getPromotionList(params: params) { result in
	if let result = result {
		print("총 프로모션 수: \(result.totalItems)")
		print("프로모션 목록: \(result.promotions)")
	} else {
		print("프로모션 조회 실패")
	}
}

4. 참고 사항

  • 모든 파라미터는 선택이며, nil이면 전체 조건으로 조회됩니다.
  • openPromotion은 UI 포함 자동 렌더링, getPromotionList는 데이터만 조회합니다.
  • limit은 NSNumber로 입력해야 합니다. 예: params.limit = 5

목차