LoginSignup
1

More than 3 years have passed since last update.

iOS14 IDFA取得時の挙動を実機で検証してみる

Last updated at Posted at 2020-09-14

2020/09/16:追記

iOS14 GMでも、同じ挙動となる事を確認しました。
日本時間 9月17日にリリースされる正式版でも恐らく同じ動きになる可能性が高いと思われます。

2020/09/17:追記

iOS14 正式版でも予想通り同じ挙動ですね。
Firebaseや広告SDKなどからも軒並みアップデートのお知らせが来ていますが、この仕様への対応と思われます。

概要

iOS14(ベータ版)では、常にisAdvertisingTrackingEnabledがfalseを返してくる様です。

AdSupport FrameworkのisAdvertisingTrackingEnabled

iOS13までの「追跡型広告を制限」をチェックする為のフラグでしたが

iOS14でDeprecatedとなりました。

先日リリースされたiOS14 beta8で、実際の挙動について検証してみました。

環境

  • xcode12.0 beta 6
  • iOS14 beta8
  • iPhoneX(トラッキング制限設定無し)

結果

結果は以下の通り

ビルド isAdvertisingTrackingEnabled IDFA
iOS13向け false 取得OK
iOS14向け(IDFA許諾は未決定。ダイアログ出していない) false 取得OK

やはり、ユーザのIDFA許諾状況に依らず、isAdvertisingTrackingEnabledは常にfalseが返ってくる結果でした。

つまり、現在リリースしているアプリをiOS14で実行した場合。

iOS13で追跡型広告を制限(LAT)していなかったユーザであっても、iOS14では「制限あり」と判断してしまいます。
(従来コードのままだと、IDFAを取得しないフローに流れてしまう)

懸念

多くのアプリが、isAdvertisingTrackingEnabledをチェックせずにIDFAを取得するフローは、審査上取っていないと思います。

このままの仕様でリリースされた場合、

せっかくIDFA許諾必須化が来年初旬まで延期されたにも関わらず

この挙動に対応していないアプリからは「IDFAが取得出来ない」状況になる可能性が高いです。

対策

この仕様への対策として

AppTrackingTransparencyの許諾ステータスをチェック

許諾済み以外の場合、まずIDFAを取りにいき

返値がゼロ以外であれば、そのままIDFA使用

と言ったパターンなどが考えられます。

例えば

func isAvailableIDFA() -> Bool {
        if #available(iOS 14.0, *) {
            if ATTrackingManager.trackingAuthorizationStatus == .authorized {
                return true
            }else{
                // .authorized以外
                // 有効なIDFAか?
                return !isZeroIDFA()
            }
        }else{
            // iOS13以下
            return ASIdentifierManager.shared().isAdvertisingTrackingEnabled
        }
}

func isZeroIDFA() -> Bool {
        return (ASIdentifierManager.shared().advertisingIdentifier.uuidString == UUID(uuid: (0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)).uuidString)
}

ただ、この辺りの最終的な挙動はもうすぐ出るであろうGM版で、どうなるかまだわかりません。

引き続き、チェックしていきたいと思います。


参考
https://developer.apple.com/documentation/adsupport/asidentifiermanager/1614148-isadvertisingtrackingenabled
https://developer.apple.com/documentation/apptrackingtransparency

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
1