如何使用普通 Adlistener 调用全部覆盖仅调用 Facebook 原生广告上的 onAdloaded
How to call only onAdloaded on Facebook Native Ads using normal Adlistener call all override
请帮我想出一种可以缩短原生广告代码的方法,因为如果我使用多个广告,它会变得非常混乱
try {
fbNativeAd = NativeAd(this@SplashActivity, fbNative)
} catch (e: Exception) {
}
val nativeAdListener: NativeAdListener = object : NativeAdListener {
override fun onMediaDownloaded(ad: Ad) {
// Native ad finished downloading all assets
Log.e(TAG, "Native ad finished downloading all assets.")
}
override fun onError(ad: Ad, adError: AdError) {
// Native ad failed to load
Log.e(TAG, "Native ad failed to load: " + adError.errorMessage)
}
override fun onAdLoaded(ad: Ad) {
// Native ad is loaded and ready to be displayed
Log.d(TAG, "Native ad is loaded and ready to be displayed!")
inflateFbNativeAd(fbNativeAd!!)
}
override fun onAdClicked(ad: Ad) {
// Native ad clicked
Log.d(TAG, "Native ad clicked!")
}
override fun onLoggingImpression(ad: Ad) {
// Native ad impression
Log.d(TAG, "Native ad impression logged!")
}
}
// Request an ad
try {
fbNativeAd!!.loadAd(
fbNativeAd!!.buildLoadAdConfig()
.withAdListener(nativeAdListener)
.withMediaCacheFlag(NativeAdBase.MediaCacheFlag.ALL)
.build())
} catch (e: Exception) {
}
这是我现在使用的代码,我该如何缩短它?我应该尝试使用抽象监听器吗?因为当我尝试使用它时,它不起作用。谁能告诉我我做错了什么?
我能理解你的问题。和我一样的问题。
Facebook sdk 与 Admob 不同smart/flexible。
In Facebook-Audience-Network
: You can not call single method of AdListener
like onAdLoaded
if you call single method then code
will not work, You must be call all methods then it works.
您可以shrink/short这样编码:
长代码:
override fun onMediaDownloaded(ad: Ad) {
// Native ad finished downloading all assets
Log.e(TAG, "Native ad finished downloading all assets.")
}
缩短这段无用代码(以这种方式):
override fun onMediaDownloaded(ad: Ad) {}
谢谢
快乐编码:)
请帮我想出一种可以缩短原生广告代码的方法,因为如果我使用多个广告,它会变得非常混乱
try {
fbNativeAd = NativeAd(this@SplashActivity, fbNative)
} catch (e: Exception) {
}
val nativeAdListener: NativeAdListener = object : NativeAdListener {
override fun onMediaDownloaded(ad: Ad) {
// Native ad finished downloading all assets
Log.e(TAG, "Native ad finished downloading all assets.")
}
override fun onError(ad: Ad, adError: AdError) {
// Native ad failed to load
Log.e(TAG, "Native ad failed to load: " + adError.errorMessage)
}
override fun onAdLoaded(ad: Ad) {
// Native ad is loaded and ready to be displayed
Log.d(TAG, "Native ad is loaded and ready to be displayed!")
inflateFbNativeAd(fbNativeAd!!)
}
override fun onAdClicked(ad: Ad) {
// Native ad clicked
Log.d(TAG, "Native ad clicked!")
}
override fun onLoggingImpression(ad: Ad) {
// Native ad impression
Log.d(TAG, "Native ad impression logged!")
}
}
// Request an ad
try {
fbNativeAd!!.loadAd(
fbNativeAd!!.buildLoadAdConfig()
.withAdListener(nativeAdListener)
.withMediaCacheFlag(NativeAdBase.MediaCacheFlag.ALL)
.build())
} catch (e: Exception) {
}
这是我现在使用的代码,我该如何缩短它?我应该尝试使用抽象监听器吗?因为当我尝试使用它时,它不起作用。谁能告诉我我做错了什么?
我能理解你的问题。和我一样的问题。 Facebook sdk 与 Admob 不同smart/flexible。
In
Facebook-Audience-Network
: You can not call single method ofAdListener
likeonAdLoaded
if you call single method then code will not work, You must be call all methods then it works.
您可以shrink/short这样编码:
长代码:
override fun onMediaDownloaded(ad: Ad) {
// Native ad finished downloading all assets
Log.e(TAG, "Native ad finished downloading all assets.")
}
缩短这段无用代码(以这种方式):
override fun onMediaDownloaded(ad: Ad) {}
谢谢
快乐编码:)