Apps Kit SDK logoApps Kit SDK
개발자 문서 · AppsKitSDK (AKS) — Android 연동 가이드

6. 광고 형식별 호출

모든 광고 호출에는 플레이스홀더가 필요합니다. 플레이스홀더는 AKS 포털에서 광고 형식에 연결해 설정하는 문자열 키입니다(예: "1"). AKS는 런타임에 플레이스홀더를 기반으로 기본 광고 네트워크와 장애 시 대체할 네트워크 목록을 결정합니다. 코드에서 광고 단위 ID를 직접 참조할 필요는 없습니다.

전면 광고

kotlin
// Load only
AdsManager.loadInterstitial(context, placeholder, object : AdsCallback() {
    override fun onLoaded() { }
    override fun onFailedToLoad() { }
    override fun onAdShown() { }
    override fun onAdDismissed() { }
    override fun onAdFailedToShow() { }
})

// Show a previously loaded interstitial
AdsManager.showInterstitial(activity, placeholder, callback)

// Load and show in one call
AdsManager.loadAndShowInterstitialAd(activity, placeholder, callback)

// Check availability before showing
AdsManager.isInterstitialAvailable(placeholder)

보상형 광고

kotlin
AdsManager.loadRewarded(context, placeholder, object : RewardedAdCallbacks() {
    override fun onRewardedLoaded() { }
    override fun onRewardedAdLoadFailure() { }
    override fun onRewardedCompleted() { }
    override fun onAdRewarded() { }
    override fun onAdRewardedAdDismissed() { }
    override fun onRewardedFailedToShow() { }
})

AdsManager.showRewarded(activity, placeholder, callbacks)

// Load and show in one call — simpler success/fail callback
AdsManager.loadAndShowRewardedAd(activity, placeholder, object : RewardedLoadAndShowCallback {
    override fun onRewardedAdSuccess() { }
    override fun onRewardedAdFailed() { }
})

AdsManager.isRewardedAvailable(placeholder)

앱 오프닝 광고

kotlin
AdsManager.loadAppOpen(application, placeholder, object : AppOpenAdCallbacks() {
    override fun onLoaded() { }
    override fun onFailedToLoad() { }
    override fun onDismiss() { }
    override fun onAdShown() { }
    override fun onAdFailToShow() { }
})

AdsManager.showAppOpen(activity, placeholder, callbacks)

앱 오프닝 광고를 직접 관리하는 대신 AKS 자체 스플래시/앱 오프닝 처리 기능(isAppOpenAtApplicationLvl 원격 구성 플래그로 제어)을 사용하려면, AppsKitSDKApplication 서브클래스에서 loadDefaultAppOpen / showDefaultAppOpen을 사용하세요. 또는 기본 Application 클래스에 전체 처리 과정이 이미 구현된 requestSplashAppOpenAd(callbacks, addInDefaultDelay)를 호출하기만 하면 됩니다.

배너 광고

kotlin
AdsManager.loadBanner(context, placeholder, object : BannerCallback() {
    override fun onBannerLoaded() { }
    override fun onBannerFailedToLoad() { }
    override fun onBannerClicked() { }
    override fun onBannerShown() { }
    override fun onBannerSizeChanged(bannerSizes: BannerSizes) { }
    override fun setBannerSize(width: Double, height: Double) { }
})

// layout is a FrameLayout (BannerContainer) you've placed in your screen
AdsManager.showBanner(activity, layout, placeholder, callback)

BannerSizes: BANNER (320×50), LARGE_BANNER (320×100), MEDIUM_RECTANGLE (300×250), FULL_BANNER (468×60).

네이티브 광고

kotlin
AdsManager.loadNative(activity, placeholder, isShowInScrollView = false, object : NativeCallback() {
    override fun onNativeLoaded() { }
    override fun onNativeFailedToLoad() { }
    override fun onNativeClicked() { }
    override fun onNativeShown() { }
})

// frameLayout is the BannerContainer that will host the native ad view; res is an
// optional custom native-ad layout resource (pass null to use AKS's default layout)
AdsManager.showNative(activity, frameLayout, placeholder, isShowInScrollView = false, res = null, callback)

// Show the native ad using the design you created for this placeholder in the
// AKS portal, instead of a layout resource — see below.
AdsManager.showTemplatedNative(activity, frameLayout, placeholder, isShowInScrollView = false, callback)

showTemplatedNative는 앱 코드가 아닌 AKS 포털에서 네이티브 광고 디자인을 만들고 할당한 플레이스홀더에 사용합니다. 앱에서 레이아웃을 제공할 필요가 없으므로 res 매개변수 자체가 없습니다. AKS는 해당 플레이스홀더에 적용할 포털 템플릿을 결정하고 가져온 뒤(최초 로드 후 캐시됨), showNative와 동일한 로드/표시 파이프라인을 통해 해당 템플릿으로 네이티브 광고를 렌더링합니다. 플레이스홀더에 할당된 템플릿이 없거나 템플릿을 가져올 수 없으면, AKS는 광고를 실패 처리하는 대신 내장된 기본 네이티브 광고 디자인을 사용합니다. 따라서 포털에서 템플릿을 설정하기 전에도 안전하게 호출할 수 있습니다.

기능 프로모션

기능 프로모션은 아직 잠금 해제하지 않은 앱 기능을 사용자에게 교차 홍보하기 위한 AKS 자체 하우스 광고 형식입니다. AdMob/MAX 등이 아닌 AKS 네트워크만 사용하며, 홍보할 항목은 AKS 포털에서 플레이스홀더별로 서버 측에 설정합니다.

kotlin
// Optional — exclude features the user already has unlocked from being promoted
AdsManager.setFeaturesAvailable(listOf("premium_theme", "no_ads"))

AdsManager.showFeaturePromotion(activity, placeholder, object : OnFeaturePromotionClicked {
    override fun onFeaturePromotionClicked(targetScreen: String) {
        // user tapped the promotion — navigate them to targetScreen
    }

    override fun onFailToShowFeaturePromotion(errorMessage: String) { }
})