6. 광고 형식별 호출
모든 광고 호출에는 플레이스홀더가 필요합니다. 플레이스홀더는 AKS 포털에서 광고 형식에 연결해 설정하는 문자열 키입니다(예: "1"). AKS는 런타임에 플레이스홀더를 기반으로 기본 광고 네트워크와 장애 시 대체할 네트워크 목록을 결정합니다. 코드에서 광고 단위 ID를 직접 참조할 필요는 없습니다.
전면 광고
// 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)보상형 광고
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)앱 오프닝 광고
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)를 호출하기만 하면 됩니다.
배너 광고
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).
네이티브 광고
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 포털에서 플레이스홀더별로 서버 측에 설정합니다.
// 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) { }
})