WWDC Quick Look 💓 By SwiftGGTeam
Explore App Tracking Transparency

Explore App Tracking Transparency

元の動画を見る

ハイライト

App Store ポリシーでは、すべてのアプリが会社のアプリ/Web サイト全体でユーザー データを追跡する前に、AppTrackingTransparency フレームワークを通じてユーザーの同意を取得することを要求しています。追跡の定義には、広告または広告測定のためにこのアプリによって収集されたデータを他の企業のデータと関連付けたり、データ ブローカーとユーザー データを共有したりすることが含まれます。

主要内容

アプリはサードパーティの広告 SDK に接続されていますが、追跡許可をリクエストする必要があるかどうかがわかりません。この質問を間違えた場合の結果は深刻です。アプリが拒否されたり、ユーザーが拒否した後も追跡違反が続くため、アプリが棚から削除されたりする可能性があります。

(01:14) App Tracking Transparency (ATT) は、「トラッキング」を非常に具体的に定義します。追跡とは、次の 2 つの状況を指します。

  1. このアプリによって収集されたユーザーまたはデバイスのデータと、ターゲットを絞った広告または広告測定のために他社のアプリ、ウェブサイト、またはオフライン資産によって収集されたデータとの関連付け
  2. ユーザーまたはデバイスのデータをデータ ブローカーと共有する

重要な基準: データが会社の境界を越えているかどうか。同じ会社が所有する異なるアプリ間でデータを共有することは追跡とはみなされません。

(01:44) いくつかの具体的な例:

  • 追跡には含まれません: ユーザーがアプリ A でワッフルを検索し、アプリ A は独自のデータを使用してユーザーに朝食の広告を表示しました。データはアプリ A を所有する会社から流出しません。
  • 追跡には含まれません: アプリ A の会社には別のアプリ B もあります。サーバーは、アプリ A で広告を掲載するために 2 つのアプリのユーザー データを関連付けます。同じ会社は追跡には含まれません。
  • 憲法追跡: アプリ A はユーザーの電子メール アドレスを取得し、別の会社の食品配達アプリも同じ電子メール アドレスを取得しました。フードデリバリー アプリは、ユーザーの夜間の注文習慣と電子メール アドレスをアプリ A と共有し、アプリ A はワッフルへの興味と注文習慣を関連付けて広告を表示します。データは会社の境界を越えるため、追跡許可をリクエストする必要があります。

(04:36) 識別子がハッシュ化されていても、企業間でデータを関連付けるために使用されている限り、引き続き追跡されます。ハッシュしてもトレースの性質は変わりません。

(05:03) サードパーティ SDK の動作もアプリに対してカウントされます。広告 SDK がユーザー データを広告ネットワークと共有し、そのデータを他の企業からのデータと関連付ける場合、アプリは追跡権限をリクエストする必要があります。 SDK が集計レポートのみを返す場合でも、企業間のデータ相関が内部で発生する場合は常に権限が必要です。

(07:06) データ ブローカーとデータを共有するには権限も必要です。データ ブローカーは、エンドユーザーの個人情報を定期的に収集、販売、または第三者に開示する会社であり、それらのユーザーとは直接の関係はありません。データが他の企業データにリンクされているかどうかに関係なく、データ ブローカーと共有するには権限が必要です。

詳細

追跡許可リクエストを実装する

(08:45) 追跡が必要であると判断された場合、実装手順は次のとおりです。

1. Info.plist に使用法の説明を追加

<key>NSUserTrackingUsageDescription</key>
<string>您的数据将用于提供个性化广告体验</string>

キーポイント:

  • 目的の説明文字列がシステムポップアップウィンドウに表示されます
  • アクセス許可が要求される理由をユーザーが理解できるように、明確かつ簡潔にしてください。
  • アプリ名を含める必要はありません。システムが自動的に表示します。
  • このキーが追加されていない場合、リクエスト メソッドを呼び出すときにアプリがクラッシュします。

2.追跡承認のリクエスト

import AppTrackingTransparency

func requestTrackingPermission() {
    ATTrackingManager.requestTrackingAuthorization { status in
        switch status {
        case .authorized:
            // 用户允许追踪
            print("Tracking authorized")
        case .denied:
            // 用户拒绝追踪
            print("Tracking denied")
        case .notDetermined:
            // 尚未请求(极少见)
            print("Tracking not determined")
        case .restricted:
            // 受限制(如家长控制)
            print("Tracking restricted")
        @unknown default:
            break
        }
    }
}

キーポイント:

  • これは 1 回限りのポップアップ ウィンドウであり、システムはユーザーの選択を記憶します。
  • アンインストールして再インストールした後にのみ、ウィンドウが再度ポップアップ表示されます。
  • 状態はアプリケーションの実行中にチェックする必要があり、変更されていないと想定することはできません

3.認証ステータスの確認と追跡

func checkTrackingStatus() {
    let status = ATTrackingManager.trackingAuthorizationStatus
    
    if status == .authorized {
        // 可以执行追踪相关操作
        let idfa = ASIdentifierManager.shared().advertisingIdentifier
    } else {
        // 用户未授权,使用替代方案
    }
}

キーポイント:

  • アプリを起動するたびにステータスを確認する
  • ユーザーは設定でいつでも認証ステータスを変更できます
  • ステータスが次の場合のみ.authorized追跡を続けるには

ユーザー拒否後の代替案

(11:31) ユーザーが追跡を拒否する場合、2 つの重要なルールがあります。

  1. 機能を制限することはできません: アプリのいかなる機能も、追跡に対するユーザーの同意を条件とすることはできません。
  2. IDFA はすべてゼロを返します:advertisingIdentifier戻ります00000000-0000-0000-0000-000000000000

代替案には次のようなものがあります。

  • ファーストパーティ広告: アプリ自体が収集したデータを使用して広告を表示します
  • コンテキスト広告: ユーザーのポートレートではなく、現在のコンテンツに基づいて広告を配信します。
  • SKAdNetwork: Apple が提供するプライバシー保護型広告アトリビューション テクノロジー
  • プライベート クリック測定: 広告効果分析のためのプライベート クリック測定

プライバシー栄養ラベル

(12:04) プライバシー栄養ラベルの記入と追跡承認のリクエストは 2 つの別々の手順であり、両方とも完了する必要があります。 App Store Connect で完成するプライバシー栄養ラベルは、アプリが収集するデータの種類とその使用方法をユーザーに開示します。 ATT フレームワークはコードで実装され、実行時にユーザーの許可を要求します。

指紋認識は永続的に無効になります

(12:34) ユーザーが追跡に同意するかどうかに関係なく、フィンガープリンティングは常に禁止されています。フィンガープリンティングとは、デバイス信号 (ブラウザー構成、デバイス構成、場所、ネットワーク接続など) を使用してデバイスまたはユーザーを識別することを指します。このデータを収集する別の目的がある場合でも、実際にフィンガープリントの生成に使用された場合、Apple Developer Program ライセンス契約に違反します。

重要ポイント

ATT 権限リクエストをアプリにエレガントに統合

ユーザーが初めてアプリを開いたときの最初のインタラクションとして ATT ポップアップを使用しないでください。ユーザーが最初にコア機能を体験してから、適切なタイミング (たとえば、パーソナライズされたコンテンツを表示する直前) で権限をリクエストできるようにします。 Info.plist に明確な目的の説明を書き、追跡を許可することでどのような価値がもたらされるかをユーザーに伝えます。エントリーAPIはATTrackingManager.requestTrackingAuthorization

広告 SDK のコンプライアンス レビュー

アプリ内のすべてのサードパーティ SDK をリストし、それらが会社間のデータ関連付けに関係しているかどうかを確認します。 SDK プロバイダーに直接質問してください:「あなたの SDK はこのアプリのユーザー データを他社のデータとリンクしますか?」通信の記録を保管してください。 SDK に追跡が含まれているが、アプリにその機能が必要ない場合は、SDK を削除するか、代替手段を見つけることを検討してください。

IDFAに依存しない広告戦略の実施

2 つの広告戦略を設計します。1 つは追跡許可が得られたときに正確な配信を行うために IDFA を使用します。もう 1 つは、ユーザーが拒否した場合に、コンテキスト広告 (現在のページ コンテンツに基づくマッチング広告) またはファーストパーティ データを使用します。広告の帰属に SKAdNetwork を使用すると、ユーザーのプライバシーが保護されるだけでなく、広告主のニーズも満たされます。

関連セッション

コメント

GitHub Issues · utterances