###はじめに
久しぶりにインタースティシャル広告を実装しようとしたらInterstitialAdがdeprecatedされていたので更新しました。まだ日本語のドキュメントが更新されていないようでしたので備忘録も兼ねて残しておこうと思います。
変なところがあれば教えていただければ幸いです。
AdMob側の操作は割愛します。
build.gradle(app)
implementation 'com.google.android.gms:play-services-ads:19.8.0'
//19.7.0以降でdeprecatedのようです。
###実装
MainActivity.kt
import com.google.android.gms.ads.interstitial.InterstitialAd//新しい方
private var interstitial:InterstitialAd? = null
private val adInter = "ca-app-pub-3940256099942544/1033173712"//テスト用です
InterstitialAdはnull許容でいいみたいで、onResume等でロードしコールバックさせます。
MainActivity.kt
override fun onResume() {
super.onResume()
loadInterstitial()
}
private fun loadInterstitial(){//インタースティシャル、ロード
val adRequest = AdRequest.Builder().build()
InterstitialAd.load(this,adInter,adRequest,object : InterstitialAdLoadCallback(){
override fun onAdLoaded(p0: InterstitialAd) {//広告ロード成功時
interstitial = p0
interstitial?.fullScreenContentCallback = object : FullScreenContentCallback(){
override fun onAdDismissedFullScreenContent() {//広告を閉じた時
}
override fun onAdShowedFullScreenContent() {//広告表示成功時
interstitial = null
}
}
}
override fun onAdFailedToLoad(p0: LoadAdError) {//広告ロード失敗
interstitial = null
}
})
}
広告の表示成功時も次の広告のためnullにしています。
あとは任意のタイミングでインタースティシャルをShowします。
MainActivity.kt
private fun showInterstitial(){
if (interstitial != null){//ロードできていれば
interstitial?.show(this)
}
}
###おしまい
リスナーからコールバックに変わっただけで仕様自体はたいして変わっていないようでした。
それにしても日本語のドキュメントが中々更新されないのはどうにかしてほしいですよね。