定期显示插页式广告

Showing Interstitial ad at regular intervals

//Inside onCreate()
var adRequest2 = AdRequest.Builder().build()
        InterstitialAd.load(this,"ca-app-pub-myAppId", adRequest2, object : InterstitialAdLoadCallback() {
            override fun onAdFailedToLoad(adError: LoadAdError) {
                Log.d(TAG, adError?.message)
                mInterstitialAd = null
            }
            override fun onAdLoaded(interstitialAd: InterstitialAd) {
                Log.d(TAG, "Ad was loaded.")
                mInterstitialAd = interstitialAd
            }

        })
//Inside onItemSelectedListener of spinner 
 if (counter%3==0){
                    if (mInterstitialAd != null) {
                        mInterstitialAd?.show(this@MainActivity)
                    } else {
                        Log.d("TAG", "The interstitial ad wasn't ready yet.")
                    }
                }
 counter++

我有一个应用程序可以根据用户从下拉列表中选择的内容显示一些数据 menu/spinner。我想为在微调器上选择的每 3 个项目显示一个插页式广告。我使用了 google admob 网站上的这段代码。但这只在第三个选择后显示一次广告。它不会在 6 日、9 日……等日重新加载。如何重新加载插页式广告?

您应该在每次展示广告时重新加载它:比如创建一个 loadAd 函数并每次在 onItemSelectListener 中调用它

加载广告功能

fun loadIADS(){
var adRequest = AdRequest.Builder().build()

      InterstitialAd.load(this,"your_ID", adRequest, object : InterstitialAdLoadCallback() {
        override fun onAdFailedToLoad(adError: LoadAdError) {
          Log.d(TAG, adError?.message)
          mInterstitialAd = null
        }

        override fun onAdLoaded(interstitialAd: InterstitialAd) {
          Log.d(TAG, 'Ad was loaded.')
          mInterstitialAd = interstitialAd
        }
      })
}

展示广告

fun showIADS(){
if (mInterstitialAd != null) {
  mInterstitialAd?.show(this)
} else {
  Log.d("TAG", " ad wasn't ready ")
}
}

在 Oncreate 中而不是初始化只是把这个

counter = 0
loadIADS()

并且在 onItemSelectedListener 中就像你有

if (counter%3==0){
                    showIADS()
                }
loadIADS()
 counter++

我刚刚将我的 java 代码转换为 kotlin 如果它显示错误请告诉我