🍿
App Tracking Transparencyのダイアログ 対応
App Tracking Transparencyとは?(以降、ATT)
iOS 14.5、iPadOS 14.5、およびtvOS 14.5以降、ユーザーをトラッキングしたり、ユーザーのデバイスの広告識別子(IDFA)にアクセスしたりするには、AppTrackingTransparencyフレームワークを通じてユーザーの許可を得る必要があります。
info.plist
info.plistにNSUserTrackingUsageDescriptionを追加
ダイアログで表示するDescriptionを決めれる
※Titleは仕様上、変更は許されていない。
+ <key>NSUserTrackingUsageDescription</key>
+ <string>トラッキングを許可すると、お客様に適した広告が表示されます。また広告効果の測定や分析などのためにIDFA(広告識別子)を利用します。</string>
ATTの実装
ATT
のstatus
が.notDetermined
の場合のみオプトインが可能。
なので、まずユーザのステータスを確認後、.notDetermined
の場合はATTダイアログを表示する。それ以外のステータスの場合はスキップする。
(adjustの初期化、呼び出し元は省略)
:
enum AppTrackingAuthorizationStatus: Int32 {
/// ユーザーがプロンプトに未応答の状態
case notDetermined = 0
/// デバイスレベルでアクセス拒否されている状態
case restricted = 1
/// アプリレベルでアクセス拒否されている状態
case denied = 2
/// アクセス許可されている状態
case authorized = 3
/// アクセスステータス取得不可の状態
case unknown = -1
}
func getAppTrackingAuthorizationStatus() -> AppTrackingAuthorizationStatus {
let status = adjust.appTrackingAuthorizationStatus()
switch status {
case AppTrackingAuthorizationStatus.notDetermined.rawValue:
return .notDetermined
case AppTrackingAuthorizationStatus.restricted.rawValue:
return .restricted
case AppTrackingAuthorizationStatus.denied.rawValue:
return .denied
case AppTrackingAuthorizationStatus.authorized.rawValue:
return .authorized
default:
return .unknown
}
}
func requestTrackingAuthorization() {
adjust.requestTrackingAuthorization()
}
※iPhoneの設定 -> プライバシー -> トラッキング -> Appからのトラッキング要求を許可の状態や各アプリごとのON/OFFの設定にてトラッキング許諾状態を変更できます。
他参考情報
Discussion