Android Admob InterstitialAd 已弃用
Android Admob InterstitialAd Deprecated
将 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)
}
}
使用com.google.android.gms.ads.interstitial.InterstitialAd
而不是
come.google.android.gms.ads
Google 移动广告 SDK 版本 20.0.0 计划于 2021 年初推出,并进行了一些重大更改,以及一些简单的 API 重命名和删除已弃用的 API秒。
您可以在 this link 上查看更多详细信息。
使用 NativeAdView 而不是 UnifiedNativeAdView 等。
当您将 admob sdk 升级到
implementation 'com.google.firebase:firebase-ads:19.7.0'
您会发现旧的 sdk 方法已被弃用,例如 InterstitialAD
这里很简单,只需按照我的方式加载您的插页式广告并在此处删除弃用,这是我的示例代码,可以更好地请求广告,如果您有任何疑问,请在 activity 的 On start 加载您的添加在下面的评论中知道复制粘贴以下代码:
public static AdRequest adRequest;
public static InterstitialAd mInterstitialAd;
public void InterstitialAdmob() {
InterstitialAd.load(MainActivity.this,getString(R.string.Interstitial), adRequest, new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
mInterstitialAd = interstitialAd;
mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
@Override
public void onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent();
mInterstitialAd=null;
//// perform your code that you wants todo after ad dismissed or closed
}
@Override
public void onAdFailedToShowFullScreenContent(com.google.android.gms.ads.AdError adError) {
super.onAdFailedToShowFullScreenContent(adError);
mInterstitialAd = null;
/// perform your action here when ad will not load
}
@Override
public void onAdShowedFullScreenContent() {
super.onAdShowedFullScreenContent();
mInterstitialAd = null;
}
});
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error
mInterstitialAd = null;
}
});
}
@Override
protected void onStart() {
super.onStart();
measyrating.onStart();
adRequest = new AdRequest.Builder().build();
InterstitialAdmob();
}
现在只需在按下按钮或点击按钮时展示您的广告
@Override
public void onBackPressed() {
if (mInterstitialAd!=null){
mInterstitialAd.show(MainActivity.this);
}
else{
if (doubleBackToExitPressedOnce) {
if (mBottomNavigationView.getSelectedItemId() == R.id.navigation_doc)
{
super.onBackPressed();
}
else
{
mBottomNavigationView.setSelectedItemId(R.id.navigation_doc);
}
return;
}
this.doubleBackToExitPressedOnce = true;
if (this.drawer.isDrawerOpen(GravityCompat.START)) {
this.drawer.closeDrawer(GravityCompat.START);
}
if (itempositionselected==0){
loadFragment(new DocxFileFragment());
}
else {
}
if (!searchView.isIconified()) {
searchView.setIconified(true);
}
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
}
There are many breaking changes coming in version 20.0.0. Version
19.7.0 introduced many new APIs, and deprecated or renamed many classes in preparation for version 20.0.0.
此代码说明如何在 v 19.7.0 中集成插页式广告
class Web : AppCompatActivity() {
private var mInterstitialAd: InterstitialAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_web)
// load ad
loadAd();
toNextLevel()
}
// load ad
private fun loadAd() {
InterstitialAd.load(
this@Web,
"ca-app-pub-3940256099942544/1033173712",
AdRequest.Builder().build(),
object : InterstitialAdLoadCallback() {
override fun onAdLoaded(interstitialAd: InterstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
mInterstitialAd = interstitialAd
mInterstitialAd?.fullScreenContentCallback =
object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent()
mInterstitialAd = null
//// perform your code that you wants to do after ad dismissed or closed
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
super.onAdFailedToShowFullScreenContent(adError)
mInterstitialAd = null
/// perform your action here when ad will not load
}
override fun onAdShowedFullScreenContent() {
super.onAdShowedFullScreenContent()
this@Web.mInterstitialAd = null
}
}
}
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
// Handle the error
mInterstitialAd = null
}
})
}
private fun toNextLevel() {
// Show the interstitial if it is ready. Otherwise, proceed to the next level
// without ever showing it
if (mInterstitialAd != null) {
mInterstitialAd?.show(this@Web)
} else {
nextLevel()
// in case you want to load a new ad
requestNewInterstitial()
}
}
private fun nextLevel() {
TODO("Not yet implemented")
}
private fun requestNewInterstitial() {
if (mInterstitialAd == null) {
loadAd()
}
}
}
下一页包含新版本插页式广告的示例和详细信息
https://developers.google.com/admob/android/interstitial
下面是一个完整的工作示例,基于上面我使用的当前版本com.google.android.gms:play-services-ads:20.2.0
:
public class BriefDisplayActivity extends AppCompatActivity {
InterstitialAd briefInterstitialAd;
AdRequest adRequest_I = new AdRequest.Builder().build();
InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest_I,
new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
BriefDisplayActivity.this.briefInterstitialAd = interstitialAd;
Log.i(TAG, "onAdLoaded");
briefInterstitialAd.show(BriefDisplayActivity.this);
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error
Log.i(TAG, loadAdError.getMessage());
BriefDisplayActivity.this.briefInterstitialAd = null;
}
});
}
将 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)
}
}
使用com.google.android.gms.ads.interstitial.InterstitialAd
而不是
come.google.android.gms.ads
Google 移动广告 SDK 版本 20.0.0 计划于 2021 年初推出,并进行了一些重大更改,以及一些简单的 API 重命名和删除已弃用的 API秒。 您可以在 this link 上查看更多详细信息。 使用 NativeAdView 而不是 UnifiedNativeAdView 等。
当您将 admob sdk 升级到
implementation 'com.google.firebase:firebase-ads:19.7.0'
您会发现旧的 sdk 方法已被弃用,例如 InterstitialAD
这里很简单,只需按照我的方式加载您的插页式广告并在此处删除弃用,这是我的示例代码,可以更好地请求广告,如果您有任何疑问,请在 activity 的 On start 加载您的添加在下面的评论中知道复制粘贴以下代码:
public static AdRequest adRequest;
public static InterstitialAd mInterstitialAd;
public void InterstitialAdmob() {
InterstitialAd.load(MainActivity.this,getString(R.string.Interstitial), adRequest, new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
mInterstitialAd = interstitialAd;
mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){
@Override
public void onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent();
mInterstitialAd=null;
//// perform your code that you wants todo after ad dismissed or closed
}
@Override
public void onAdFailedToShowFullScreenContent(com.google.android.gms.ads.AdError adError) {
super.onAdFailedToShowFullScreenContent(adError);
mInterstitialAd = null;
/// perform your action here when ad will not load
}
@Override
public void onAdShowedFullScreenContent() {
super.onAdShowedFullScreenContent();
mInterstitialAd = null;
}
});
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error
mInterstitialAd = null;
}
});
}
@Override
protected void onStart() {
super.onStart();
measyrating.onStart();
adRequest = new AdRequest.Builder().build();
InterstitialAdmob();
}
现在只需在按下按钮或点击按钮时展示您的广告
@Override
public void onBackPressed() {
if (mInterstitialAd!=null){
mInterstitialAd.show(MainActivity.this);
}
else{
if (doubleBackToExitPressedOnce) {
if (mBottomNavigationView.getSelectedItemId() == R.id.navigation_doc)
{
super.onBackPressed();
}
else
{
mBottomNavigationView.setSelectedItemId(R.id.navigation_doc);
}
return;
}
this.doubleBackToExitPressedOnce = true;
if (this.drawer.isDrawerOpen(GravityCompat.START)) {
this.drawer.closeDrawer(GravityCompat.START);
}
if (itempositionselected==0){
loadFragment(new DocxFileFragment());
}
else {
}
if (!searchView.isIconified()) {
searchView.setIconified(true);
}
Toast.makeText(this, "Please click BACK again to exit", Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
}
}
There are many breaking changes coming in version 20.0.0. Version 19.7.0 introduced many new APIs, and deprecated or renamed many classes in preparation for version 20.0.0.
此代码说明如何在 v 19.7.0 中集成插页式广告
class Web : AppCompatActivity() {
private var mInterstitialAd: InterstitialAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_web)
// load ad
loadAd();
toNextLevel()
}
// load ad
private fun loadAd() {
InterstitialAd.load(
this@Web,
"ca-app-pub-3940256099942544/1033173712",
AdRequest.Builder().build(),
object : InterstitialAdLoadCallback() {
override fun onAdLoaded(interstitialAd: InterstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
mInterstitialAd = interstitialAd
mInterstitialAd?.fullScreenContentCallback =
object : FullScreenContentCallback() {
override fun onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent()
mInterstitialAd = null
//// perform your code that you wants to do after ad dismissed or closed
}
override fun onAdFailedToShowFullScreenContent(adError: AdError) {
super.onAdFailedToShowFullScreenContent(adError)
mInterstitialAd = null
/// perform your action here when ad will not load
}
override fun onAdShowedFullScreenContent() {
super.onAdShowedFullScreenContent()
this@Web.mInterstitialAd = null
}
}
}
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
// Handle the error
mInterstitialAd = null
}
})
}
private fun toNextLevel() {
// Show the interstitial if it is ready. Otherwise, proceed to the next level
// without ever showing it
if (mInterstitialAd != null) {
mInterstitialAd?.show(this@Web)
} else {
nextLevel()
// in case you want to load a new ad
requestNewInterstitial()
}
}
private fun nextLevel() {
TODO("Not yet implemented")
}
private fun requestNewInterstitial() {
if (mInterstitialAd == null) {
loadAd()
}
}
}
下一页包含新版本插页式广告的示例和详细信息
https://developers.google.com/admob/android/interstitial
下面是一个完整的工作示例,基于上面我使用的当前版本com.google.android.gms:play-services-ads:20.2.0
:
public class BriefDisplayActivity extends AppCompatActivity {
InterstitialAd briefInterstitialAd;
AdRequest adRequest_I = new AdRequest.Builder().build();
InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest_I,
new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
// The mInterstitialAd reference will be null until
// an ad is loaded.
BriefDisplayActivity.this.briefInterstitialAd = interstitialAd;
Log.i(TAG, "onAdLoaded");
briefInterstitialAd.show(BriefDisplayActivity.this);
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error
Log.i(TAG, loadAdError.getMessage());
BriefDisplayActivity.this.briefInterstitialAd = null;
}
});
}