iOS14広告トラッキング許諾に対応する.【AdMob】【IDFA取得】
公式ドキュメント
公式ドキュメント通りに行えばできるはずなのだが,僕の環境ではできなかった.
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 // Tracking authorization completed. Start loading ads here. // loadAd() }) }
本来であれば以上の設定で終わるが....
The Google Mobile Ads SDK was initialized without AppMeasurement.
のエラーが出て動かなくなったので,
またInfo.plistに以下を追加.
UI
コード
<key>GADIsAdManagerApp</key> <true/>