- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
更新后com.google.android.gms:play-services-ads
至19.7.0
它说InterstitialAd
& RewardedVideoAd
& UnifiedNativeAdView
已弃用。
谁能帮忙?
最佳答案
经过快速搜索,我发现我们需要使用
public abstract class InterstitialAd extends Object
代替
public final class InterstitialAd extends Object
所以你需要使用:
com.google.android.gms.ads.interstitial.InterstitialAd
代替:
come.google.android.gms.ads
这就是我们与新包交互的方式:
public class AdManager
{
private var interstitialAd: InterstitialAd? = null
private var mRewardedVideoAd: RewardedAd? = null
private var currentNativeAd: NativeAd? = null
private var builder: AdLoader.Builder? = null
init {
RequestConfiguration.Builder().setTestDeviceIds(
listOf(
AdRequest.DEVICE_ID_EMULATOR,
"CE88B9A1CB213EEEA19A2F7E54993908"
)
)
}
// Create a full screen content callback.
val fullScreenContentCallback = object : FullScreenContentCallback() {
override fun onAdFailedToShowFullScreenContent(p0: AdError) {
super.onAdFailedToShowFullScreenContent(p0)
}
override fun onAdShowedFullScreenContent() {
super.onAdShowedFullScreenContent()
}
override fun onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent()
interstitialAd = null
mRewardedVideoAd = null
}
}
fun createInterstitialAd(context: Context) {
InterstitialAd.load(
context,
BuildConfig.ADMOB_AD_INTERSTITIAL_UNIT_ID,
request.build(),
object : InterstitialAdLoadCallback() {
override fun onAdLoaded(ad: InterstitialAd) {
interstitialAd = ad
interstitialAd?.fullScreenContentCallback = fullScreenContentCallback
}
})
}
}
fun getFullScreenAd(): InterstitialAd? {
return interstitialAd
}
fun getVideoAd(): RewardedAd? {
return mRewardedVideoAd
}
fun loadRewardedVideoAd(context: Context) {
if (!userManager.getCurrentUser().isPremium) {
val request = AdRequest.Builder()
RewardedAd.load(
context,
BuildConfig.ADMOB_AD_VIDEO_UNIT_ID,
AdRequest.Builder().build(),
object : RewardedAdLoadCallback() {
override fun onAdLoaded(ad: RewardedAd) {
super.onAdLoaded(ad)
mRewardedVideoAd = ad;
mRewardedVideoAd?.fullScreenContentCallback = fullScreenContentCallback;
}
override fun onAdFailedToLoad(p0: LoadAdError) {
super.onAdFailedToLoad(p0)
}
})
}
fun loadNativeAd(context: Activity,adFrame:FrameLayout) {
builder = AdLoader.Builder(context, BuildConfig.ADMOB_AD_UNIT_ID_DIALOG_NATIVE)
builder?.forNativeAd { unifiedNativeAd: NativeAd ->
val adView: View =
context.layoutInflater.inflate(R.layout.ad_unified, null)
val ad = adView as NativeAdView
populateUnifiedNativeAdView(unifiedNativeAd, ad)
adFrame.removeAllViews()
adFrame.addView(ad)
}
val adLoader = builder?.withAdListener(object : AdListener() {
override fun onAdFailedToLoad(i: LoadAdError) {
super.onAdFailedToLoad(i)
Log.e("NativeAdFailed", i.toString() + "")
}
})?.build()
val builder = AdManagerAdRequest.Builder()
adLoader?.loadAd(builder.build())
}
}
private fun populateUnifiedNativeAdView(
nativeAd: NativeAd,
adView: NativeAdView
) {
// You must call destroy on old ads when you are done with them,
// otherwise you will have a memory leak.
if (currentNativeAd != null) currentNativeAd?.destroy()
currentNativeAd = nativeAd
// Set the media view.
adView.mediaView = adView.findViewById<View>(R.id.ad_media) as com.google.android.gms.ads.nativead.MediaView
// Set other ad assets.
adView.headlineView = adView.findViewById(R.id.ad_headline)
adView.bodyView = adView.findViewById(R.id.ad_body)
adView.callToActionView = adView.findViewById(R.id.ad_call_to_action)
adView.iconView = adView.findViewById(R.id.ad_app_icon)
adView.priceView = adView.findViewById(R.id.ad_price)
adView.starRatingView = adView.findViewById(R.id.ad_stars)
adView.storeView = adView.findViewById(R.id.ad_store)
adView.advertiserView = adView.findViewById(R.id.ad_advertiser)
// The headline and media content are guaranteed to be in every UnifiedNativeAd.
(adView.headlineView as TextView).text = nativeAd.headline
nativeAd.mediaContent?.let {
adView.mediaView?.setMediaContent(it)
}
// These assets aren't guaranteed to be in every UnifiedNativeAd, so it's important to
// check before trying to display them.
if (nativeAd.body == null) {
adView.bodyView?.visibility = View.INVISIBLE
} else {
adView.bodyView?.visibility = View.VISIBLE
(adView.bodyView as TextView).text = nativeAd.body
}
if (nativeAd.callToAction == null) {
adView.callToActionView?.visibility = View.INVISIBLE
} else {
adView.callToActionView?.visibility = View.VISIBLE
(adView.callToActionView as TextView).text = nativeAd.callToAction
}
if (nativeAd.icon == null) {
adView.iconView?.visibility = View.GONE
} else {
(adView.iconView as ImageView).setImageDrawable(
nativeAd.icon?.drawable
)
adView.iconView?.visibility = View.VISIBLE
}
if (nativeAd.price == null) {
adView.priceView?.visibility = View.INVISIBLE
} else {
adView.priceView?.visibility = View.VISIBLE
(adView.priceView as TextView).text = nativeAd.price
}
if (nativeAd.store == null) {
adView.storeView?.visibility = View.INVISIBLE
} else {
adView.storeView?.visibility = View.VISIBLE
(adView.storeView as TextView).text = nativeAd.store
}
if (nativeAd.starRating == null) {
adView.starRatingView?.visibility = View.INVISIBLE
} else {
nativeAd.starRating?.toDouble()?.let {
(adView.starRatingView as RatingBar).rating = it.toFloat()
adView.starRatingView?.visibility = View.VISIBLE
}
}
if (nativeAd.advertiser == null) {
adView.advertiserView?.visibility = View.INVISIBLE
} else {
(adView.advertiserView as TextView).text = nativeAd.advertiser
adView.advertiserView?.visibility = View.VISIBLE
}
// This method tells the Google Mobile Ads SDK that you have finished populating your
// native ad view with this native ad.
adView.setNativeAd(nativeAd)
}
}
关于Android Admob InterstitialAd 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65875325/
我正在使用 react-native-firebase/admob 在 react native 中使用 Adbmod,当我尝试在第一次点击时使用插页式广告时,它会打开广告,但从那时起它返回此错误:
我的应用使用了下面的InterstitialAd,下面是从google例子中得到的标准编码。但是,请问为什么没有广告显示? (应用程序正确显示 toast :在 ReceiveAd 上) 我的 mai
我注意到我的应用在 InterstitialAd 上收到的点击次数很少,而且我发现可以通过按“后退”按钮立即关闭广告。通常广告需要几秒钟的时间才会出现,因此用户甚至可以在看到它之前将其关闭(当只出现黑
我正在我的应用程序中实现 InterstitialAd,并按照 Google 代码示例来实现广告。 问题: 大部分时间广告无法正常显示。我已经设置了所有 Activity 以及 list 中的 AdA
更新后com.google.android.gms:play-services-ads至19.7.0它说InterstitialAd & RewardedVideoAd & UnifiedNative
我正在使用 appfeel cordova admob 插件。 https://github.com/appfeel/admob-google-cordova 我想在我的 cordova 应用程序中显
我的横幅广告 View 在真实设备和模拟器上正确显示。但是 interstilialad 现在显示真实设备,尽管它在模拟器上正确显示。对我来说一切都很好。但我不明白为什么不显示。 EzFullScre
自 v5.6.1 起,interstitialAd.setAdListener 已弃用。我现在应该用什么替换已弃用的 Facebook InterstitialAd setAdListener? 最佳
我在我的应用程序中使用 google admob InterstitialAd,但我遇到了问题。当我将我的应用程序安装到手机上时,它运行成功。但是当我将它安装到平板设备时,InterstitialAd
我正在使用 AdMob plugin适用于 Unity3d 上的 Android 游戏。虽然我可以在游戏 session 期间保持屏幕明亮,但在 InterstitialAd 显示期间我无法控制手机行
All other listeners of InterstitialAd are working but only onAdLoaded not working. i have set toast
我正在使用 Admob 的 InterstitialAd。我的应用程序仅在第一次被调用时在“loadAd”处崩溃,并且不可重现(它在 100-200 次或多或少的运行中发生一次)。广告单元 ID 肯定
我正在尝试将 InterstitialAd 添加到我的项目中。我已经添加了必要的库 从sdk管理器下载google服务 将项目导入为android代码 将其添加到属性>库中 这是我的代码: impo
如果发现使用旧设备(2.3.6)的用户向我发送此未捕获的异常: java.lang.NoClassDefFoundError: ayc at ajb.a(:com.google.android.gms
我在使用 InterstitialAdListener 时收到此错误 Anonymous class derived from InterstitialAdListener' must either
更新后 Google Ads SDK to 19.7.0 为 提供已弃用的警告消息InterstitialAd , 而我搜索 this link解决问题但没有成功。 我该如何解决? 这是我的代码 pu
我想在我的应用程序中添加插页式广告,我已完成以下操作: 1。 文件 -> 项目结构 -> 广告:我有标志 adMob 2。我的 gradle.build: project(":android") {
首先,抱歉我的英语不好。 当我构建 apk 并尝试在手机中打开 apk 时,它给出 apk 已停止工作。调用 loadAd 之前必须在 InterstitialAd 上设置广告单元 ID 错误。 我做
我不是程序员,需要你的帮助。我在我的应用程序中使用 Admob (InterstitialAd)。 SDK 8 不支持我的 GMS 库。如何使用 sdk 8 阻止应用程序中的广告。我找到了代码,但不知
我对 Apple 的插页式广告有疑问。我正在 swift 开发我的第一个应用程序,我想尽快把它放到 App store 上。但是当我将插页式广告的代码从 obejctive-c 重写为 swift 时
我是一名优秀的程序员,十分优秀!