6. 调用各类广告
每次广告调用都需要传入一个占位符(placeholder),即在 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,或者直接调用requestSplashAppOpenAd(callbacks, addInDefaultDelay),基类Application已实现该方法的完整处理流程。
横幅广告
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 自有的内部广告格式,用于向尚未解锁某项应用功能的用户交叉推广该功能。此格式仅通过 AKS 广告平台提供(不使用 AdMob/MAX 等平台),推广内容在 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) { }
})