微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更新 Google Ads SDK InterstitialAd 后被弃用,如何解决?

如何解决更新 Google Ads SDK InterstitialAd 后被弃用,如何解决?

更新后 Google Ads SDK to 19.7.0InterstitialAd 提供了一条已弃用的警告消息,而我搜索this link解决问题,但没有成功。 我该如何解决

这是我的代码

public void InterstitialAdmob() {
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId(Util.ADMOBINTER);
    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            requestNewInterstitial();
        }
    });
    requestNewInterstitial();
}

protected void requestNewInterstitial() {
    AdRequest adRequest = new AdRequest.Builder().addTestDevice(ADMOBDEV).build();
    mInterstitialAd.loadAd(adRequest);
}
// for showing ads
 if (mInterstitialAd.isLoaded()) {
      mInterstitialAd.show();
   }

和开发者网站或建议

解决方法

在此处查看新的 API 示例: https://developers.google.com/admob/android/interstitial-fullscreen

警告:20.0.0 版中有许多重大更改。 19.7.0 版引入了许多新 API,并弃用或重命名了许多类,为 20.0.0 版做准备。请阅读迁移指南以了解有关更改的更多详细信息。

https://developers.google.com/admob/android/migration

,

这就是我在我的片段上所做的,只有 4 个步骤。

1.替换已弃用的导入:

import com.google.android.gms.ads.InterstitialAd

新的:

import com.google.android.gms.ads.interstitial.InterstitialAd

2.替换旧的初始化:

    interstitialAd = InterstitialAd(requireContext())
    interstitialAd.adUnitId = "ca-app-pub-00000000/11111111"
    interstitialAd.loadAd(AdRequest.Builder().build())

新的:

    val adRequest = AdRequest.Builder().build()
    InterstitialAd.load(requireContext(),"ca-app-pub-00000000/11111111",adRequest,object : InterstitialAdLoadCallback() {
                override fun onAdLoaded(myAd: InterstitialAd) {
                    Timber.d("Ad Loaded")
                    interstitialAd = myAd
                }

                override fun onAdFailedToLoad(adError: LoadAdError) {
                    Timber.d("Failed to load ad: ${adError.message}")
                    interstitialAd = null
                }
            })

3.替换旧的显示方式:

    if (interstitialAd.isLoaded) {
        interstitialAd.show()
    } else {
         Timber.d("Ad wasn't loaded yet!")
    }

新的:

    if (interstitialAd != null){
        interstitialAd?.show(requireActivity())
    }else {
        Timber.d("Interstitial Ad not ready yet")
    }

4.没有第4步,尽情享受吧?

Source

,
public static com.google.android.gms.ads.interstitial.InterstitialAd googleFullscreen;


public static void mLoadGoogleFullScreenAds(final Activity activity) {
    FullScreenContentCallback fullScreenContentCallback = new FullScreenContentCallback() {
        @Override
        public void onAdDismissedFullScreenContent() {
            googleFullscreen = null;
            // Proceed to the next level.
        }

        @Override
        public void onAdShowedFullScreenContent() {
            super.onAdShowedFullScreenContent();
        }

        @Override
        public void onAdFailedToShowFullScreenContent(com.google.android.gms.ads.AdError adError) {
            super.onAdFailedToShowFullScreenContent(adError);
            Log.d(TAG,"onAdFailedToShowFullScreenContent: " + adError.toString());
        }
    };
    googleFullscreen.load(
            activity,activity.getResources().getString(R.string.google_fullscreen),new AdRequest.Builder().build(),new InterstitialAdLoadCallback() {
                @Override
                public void onAdLoaded(@NonNull InterstitialAd ad) {
                    googleFullscreen = ad;googleFullscreen.setFullScreenContentCallback(fullScreenContentCallback);
                    googleFullscreen.show(activity);
                    }

                @Override
                public void onAdFailedToLoad(@NonNull LoadAdError adError) {
                    googleFullscreen = null;
                    Log.d(TAG,"onAdFailedToLoad: " + adError.toString());
                    // Code to be executed when an ad request fails.
                }
            });
}

我认为这段代码可以解决您的问题

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。