iOS15のATTポップアップでない問題解消方法

IT情報

iOS14になってから広告を表示する際ATTと呼ばれる認証を通す必要が出てきました。

対応方法は至ってシンプルでinfoに「Privacy – Tracking Usage Description」を追加して、ポップアップが出るように下記のようなプログラムを追加するだけです。

att-program-1

これによってポップアップが表示されるようになります。

しかし、これはiOS15ではできなくなっています

iOS15からは別途変更を加える必要がありました。

今回はそんな説明をしていきます。

ORANGE BLOG オリジナルロゴ

この記事を読みにきたということはアプリ制作中で、ATTを導入しようと様々なところを彷徨って行き着いたのではないかと推察します。

お疲れ様でした。僕のこの記事が助けになると思います。

早速僕がiOS15へのATTポップアップが出せるようになった方法を公開します。

ズバリ2点に注目してください。

時間差実行ができているか

「Privacy – Tracking Usage Description」の階層、位置は合っているか

この2点を確認することで僕は問題解決しました。

まず1点めの時間差実行ができているか

こちらは、iOS15以降から発生しているApple側の仕様らしく、ATTポップアップ処理をアプリ立ち上げ後数秒遅らせて呼び出す必要があるのです。

具体的には下記のような処理をポップアップ出力部に加えてください。

DispatchQueue.main.asyncAfter(deadline: .now() + 0.5){ // 遅らせたい処理 }

部分が処理を遅らせる呼び出し方になります。

僕の場合だと下記のようなプログラムをバナー広告表示前に挟むことによりATTポップアップが画面出力後、バナー広告表示前に出てくるようにすることができました。

att-program-1

2点目、「Privacy – Tracking Usage Description」の階層、位置は合っているか

こちら「Privacy – Tracking Usage Description」はすでに追加しているかと思いますが、改めてどこに追加しているかを確認してください。

僕の場合だとswiftuiでの開発でしたので、対象アプリの「Info」の下図のところに追加しました。

info-att-add

この階層がおかしいとエラーがスレッドで発生し、ポップアップ表示タイミングで画面が落ちるということが発生しますので注意してください。

以上2点について解消できれば、ポップアップは表示されるようになるかと思います。

僕はこの方法で解消しました。

他のところでつまづいている場合は下記の記事を見に行くといいかもしれません。

iOS14でエンジニアがすべきIDFA対応 - Qiita
はじめにIDFAの許可リクエストの表示タイミング・内容の具体例についてはこちらの記事を参考にしてください🙋‍♂️2020年9月にリリースされたiOS14から、iOS13まで端末単位で設定してい…

直接的な解決には至りませんでしたが、かなり参考になった記事です。

では、あなたのアプリ開発が成功することを祈っています。

ブログ運営者写真

コメント

タイトルとURLをコピーしました