【Kotlin/Android】AdMobのインタースティシャル広告の実装方法!画面遷移時に表示
この記事からわかること
- Kotlinでインタースティシャル広告の実装方法
- AdMobを導入
- 画面遷移で広告を表示するには?
- InterstitialAdやFullScreenContentCallbackの使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
インタースティシャル広告とは?
インタースティシャル広告とはアフィリエイト(成功報酬型)広告の1種で画面遷移時や自然な切れ目に配置するフルスクリーンタイプの広告です。
Androidアプリに広告を掲載するには「Google AdMob」を導入します。「Google AdMob」はGoogleが提供しているiOSやAndroidなどのモバイルアプリに広告を設置できるサービスで、バナー広告をはじめリワード広告、インタースティシャル広告の実装も簡単に実装可能になっています。
Kotlinでインタースティシャル広告を実装する方法
AdMobが未登録の場合や広告ユニットが未作成、プロジェクトへ未導入の場合は下記記事をご覧ください。
AdMobでは開発途中のテスト実装の際は本番用の広告ユニットIDを使用せずテスト用の広告ユニットIDを使用することを推奨しています。テスト実装の際は以下のIDを然るべき箇所に記述してください。
// インタースティシャル広告のテストID
ca-app-pub-3940256099942544/1033173712
広告の読み込みと表示
class MainActivity : AppCompatActivity() {
private var mInterstitialAd: InterstitialAd? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 初期化
MobileAds.initialize(this)
// インタースティシャル読み込み
loadInterstitial()
val button: Button = findViewById(R.id.transfer_button)
button.setOnClickListener {
// インタースティシャル表示
if (mInterstitialAd != null) {
mInterstitialAd?.show(this@CategoryListFragment.requireActivity())
}
}
}
/**
* AdMobインタースティシャル読み込み
*/
private fun loadInterstitial() {
var adRequest = AdRequest.Builder().build()
InterstitialAd.load(this, "ca-app-pub-3940256099942544/1033173712", adRequest, object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
mInterstitialAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
mInterstitialAd = interstitialAd
}
})
}
}
コールバックの実装
続いて広告の動作に関するコールバックを受け取るためのFullScreenContentCallback型
のオブジェクトを実装します。
mInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
override fun onAdClicked() {
Log.d("AdMob", "広告をクリックしました。")
}
override fun onAdDismissedFullScreenContent() {
Log.d("AdMob", "広告が全画面コンテンツを非表示にしました。")
mInterstitialAd = null
}
override fun onAdImpression() {
Log.d("AdMob", "広告はインプレッションを記録しました。")
}
override fun onAdShowedFullScreenContent() {
Log.d("AdMob", "広告には全画面コンテンツが表示されました。")
}
}
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。