【AdMob】iPadでリワード広告が再生されない問題の解決方法!

この記事からわかること
- AdMobのリワード広告がiPadで再生できない場合の解決方法
\ アプリをリリースしました /
Swiftで作成したiOSアプリに導入しているAdMobのリワード広告がiPadではなぜか再生することができませんでした。今回はその解決方法をまとめていきます。
iPadでリワード広告が再生されない問題の解決方法
iOSアプリへのリワード広告の詳細な導入方法や必要なクラスやメソッドの意味については以下の記事を参考にしてください。
リワード広告が再生できなかったのは以下のコードでload
メソッドを定義していた場合です。iPhoneでは正常に動作しましたが、iPadでは再生することができませんでした。
今回修正すべきポイントとなるのはload
メソッドの第二引数に渡す、広告リクエストを送るためのGADRequest
インスタンスです。
loadメソッドの定義
iPadでは明示的に表示するシーンの指定が必要
iPadはiPhoneの時とは少し異なった動作をすることが多いです。NavigationView
では明示的にstack
を指定しないと見た目が崩れてしまったり、シェアボタンを実装するためのUIActivityViewController
がクラッシュしてしまったりと何かと厄介な存在です。
今回の問題もシェアボタンの時の原因:「ポップオーバー画面を表示させる際はビューと表示位置を明示的に指定する必要がある」と近しいものかなと思います。
なのでUIApplication
クラスのconnectedScenes
プロパティからメモリ内でアクティブになっているシーンを取得し明示的にシーンを指定することで解決できました。
解決したコード
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。
私がSwift UI学習に使用した参考書