LoginSignup
0
1

More than 1 year has passed since last update.

Guideline 2.1 - Information Needed / ATTダイアログがiOS15で出ない

Last updated at Posted at 2022-01-20

rejectされた理由

admobの広告を追加したところ、トラッキングの許可ダイアログ(AppTrackingTransparency)を出す必要性があるとのこと。

注意点、ハマったこと

・ios15だとアプリがアクティブなとき(UIApplicationStateActive)にのみAppTrackingTransparencyの許可ダイアログが出る。
・applicationDidBecomeActiveが呼び出されない…と思ったら、SceneDelegateファイルがあるのでsceneDidBecomeActiveに書かないといけない

コード

(最終的に審査に通ったコードは一番最後です)

最初はAppDelegateのdidFinishLaunchingWithOptionsに全部書いた。自分の実機のios14までは動いたが(xcodeアップデートしてなかった)iOS15だと動かないよとrejectされた…😞
 そこで以下のようにしてみた。(SceneDelegate使ってないならOKかも)

AppDelegate
class AppDelegate: UIResponder, UIApplicationDelegate {
~省略~
   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)
         }
   }
}

それでも出ない…🙃
調べたらSceneDelegate使ってたらapplicationDidBecomeActiveとか使えないよって公式ドキュメントに書いてあった、、
https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622956-applicationdidbecomeactive
importantのとこ。
わからなくなったら英語だけど公式ドキュメント読めということですね、、

それでsceneDidBecomeActiveに書いてみた
しかし表示されない!!!!👼

調べた結果、、、0.5秒遅らせたら普通に出た😇

SceneDelegate
func sceneDidBecomeActive(_ scene: UIScene) {
        // Initialize the Google Mobile Ads SDK.
        DispatchQueue.main.asyncAfter(deadline: .now()+0.5) {
            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)

            }
        }
    }
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1