iOS15対応iPhoneアプリadmob表示で大変難儀した

広告が出ない
実装しているのはバナー及びインターステシャル
通常考えられることは全てやった。
一番怪しいと思ったのはpod周りだった。最終的なPodfileは以下。

画像1

まずは基本
Info.plistには以下の2つを設定(実装手順に書いてあるので割愛)
GADApplicationIdentifier
SKAdNetworkItems

AppDelegateは以下iOS14以降とそれ未満で分ける必要があるのかいまだに不明。ポイントはapplicationDidBecomeActiveでやっていること。didFinishLaunchingWithOptionsではない。iOS15からはこちらでやらなければ最初のトラッキングを許可しますかのダイアログが出てこない(だからシミュレータでiOS15を確認してねとリジェクトされた。)

func applicationDidBecomeActive(_ application: UIApplication) {
       if #available(iOS 14, *) {
           if ATTrackingManager.trackingAuthorizationStatus == .notDetermined {
               ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
                   GADMobileAds.sharedInstance().start(completionHandler: nil)
               })
           }
       } else {
           // Fallback on earlier versions
           GADMobileAds.sharedInstance().start(completionHandler: nil)
       }
       // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
   }

バナーとインターステシャル広告の実装も割愛

私が出なかった理由はadmobとストアの連携が済んでいなかったこと

画像2

あとリジェクトされまくってた理由は以下2つ

Appのプライバシー設定(以下の設定がとらの巻を提示してくれている)
https://zenn.dev/kazushige/articles/9afa10b36d6828

あと以下のよく分からん設定にユーザ名、パスワードが入力された状態でチェックが外れた状態で提出したところ「余計な個人情報送ってくんな。ログイン機能でもあんの?(意訳)」とのレビュー結果が。自分はチェックを外していたから勝手に消してくれるだろうと思っていたがそうではないらしい。再度チェックをつけて個人情報を消してチェックを外して「this app has not login future ,Because I delete login infomation. Please review again.」と合ってるかどうかも分からん英語とともに再提出したところレビューが通った

画像3


この記事が気に入ったらサポートをしてみませんか?