【Swift】App Tracking Transparency 対応方法

Swift

今回はApp Tracking Transparencyの対応方法について説明していきます。

App Tracking Transparencyとは、ユーザープライバシーに関するAppleのフレームワークで、ターゲティング広告を表示するために使用されるIDFAを取得する際に、ユーザーの許可を求めることが必要になります。

対象OSがiOS14以降でIDFAを使用するアプリは対応必須になります。

ユーザーの許可を求めるダイアログの表示が必須

IDFAを取得する処理の前にユーザーの許可を求めるダイアログを表示しなければなりません。なので今回はそのダイアログの表示方法を説明していきます。

info.plistにプロパティ追加

まずは NSUserTrackingUsageDescription キーを Info.plist に追加し、ダイアログで表示したい文言を設定しましょう。この際、「許可する」を押させるように誘導する内容にするとアプリの審査でリジェクトされる可能性が高くなるので、あくまでもユーザーが公平に判断できるような内容にしましょう。

ATTrackingManagerでリクエスト

次に、IDFAを取得する処理の前に ATTrackingManager を使用してダイアログ表示処理を実装します。以下のような感じです。AppTrackingTransparencyをインポートするのを忘れないようにしましょう。

import AppTrackingTransparency

...

func requestIDFA() {
  ATTrackingManager.requestTrackingAuthorization(completionHandler: { status in
    // ここでIDFA取得や広告取得処理などを行う
  })
}

ちなみにstatusは以下のような内容が返ってくるので、statusの内容に応じて広告を表示したりしなかったり、処理を分けるようにしましょう。

typedef NS_ENUM(NSUInteger, ATTrackingManagerAuthorizationStatus) {
    ATTrackingManagerAuthorizationStatusNotDetermined = 0,
    ATTrackingManagerAuthorizationStatusRestricted,
    ATTrackingManagerAuthorizationStatusDenied,
    ATTrackingManagerAuthorizationStatusAuthorized
} NS_SWIFT_NAME(ATTrackingManager.AuthorizationStatus) API_AVAILABLE(ios(14), macosx(11.0), tvos(14));

終わり

以上でダイアログが表示されます。

コメント