iOS14広告トラッキング許諾に対応する.【AdMob】【IDFA取得】
2021/02/14
公式ドキュメント
iOS 14 以降に備える | Google Developers
公式ドキュメント通りに行えばできるはずなのだが,僕の環境ではできなかった.
Google-Mobile-Ads-SDKをアップデートする
cocoaPods
pod update
// or
pod update Google-Mobile-Ads-SDK
Info.plistに公式ドキュメント通り追加する.
NSUserTrackingUsageDescription
ユーザにアプリ内の広告にIDFAを利用する許可をもらうダイアログに表示するものを設定する.
UIで追加もしくはコードで追加を行う
UI

コード
<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>
SKAdNetworkItems
IDFAの取得の許可をユーザーが拒否した場合,
Appleが提供するSKAdNetworkを利用して広告を配信する為に必要です.
公式サイトにも,SKAdNetworkIdentifierの値が変更される可能性があるため,google のサイトをチェックするようにしましょう.
UI

コード
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>cstr6suwn9.skadnetwork</string>
</dict>
</array>
認証ダイアログを出す
適当な位置に以下を追加します.
認証が終わったタイミングでバナーなどを表示しておく設定にしておいたほうがいいとおもいます
import AppTrackingTransparency
import AdSupport
...
func requestIDFA() {
ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
})
}
本来であれば以上の設定で終わるが....
The Google Mobile Ads SDK was initialized without AppMeasurement.のエラーが出て動かなくなったので,
またInfo.plistに以下を追加.
UI

コード
<key>GADIsAdManagerApp</key>
<true/>
終了