大きく分けると、以下の二つの対応が必要
- 開発しているアプリ、またはサードSDKで収集しているデータの説明
- 開発しているアプリ、またはサードSDKで使用しているAPIの説明
用語を整理すると以下のようになる。
- 開発しているアプリ
これはそのままの意味で、実装してリリースするアプリのこと - サードパーティSDK
これはライブラリのことで、例えば、Alamofire、FirebaseCrashlyticsなど - 収集しているデータ
開発しているアプリ、サードパーティSDKで収集しているデータのこと。
データの種類は、Appleがリスト化しているので、リストに当てはまるデータを収集しているかどうかを判断していく形になる。 - 使用しているAPI
Appleのドキュメントだと、required reason API
と書かれています。良い日本語訳がわかりませんので、使用しているAPIと表現しています。
こちらも収集しているデータと同じく、どのAPIが該当するかAppleがリスト化しています。
内容を見ると、Appleが提供しているFoundationフレームワークの特定のメソッドが該当するようです。
対応手順
ファイルの作成
XCodeのFileからApp Privacyファイルを作成します。
トップレベルの項目を追加
ファイルのトップレベルの設定項目(大項目)は以下の四つです。
- NSPrivacyTracking
- NSPrivacyTrackingDomains
- NSPrivacyCollectedDataTypes
- NSPrivacyAccessedAPITypes
App PrivacyファイルのApp Privacy Configuration
に追加します。
追加ボタンを押すと、四つが選択できるようになっています。
NSPrivacyTracking
アプリまたはサードパーティSDKが、App Tracking Transparency
フレームワークで定義されたトラッキングのためにデータを使用するかを設定する項目となります。
...と言われても難しいですが、簡単に判断する材料としては、現在ATTを実装してないアプリに関してはNO、ATTを実装しているアプリに関してはYESで問題なさそうです。
(もし、ATTを実装しないとダメなのに、ATTを実装してない場合は審査が通らないはずなので)
ATTについては下記の記事がわかりやすかったです。
公式は以下。
NSPrivacyTrackingDomains
NSPrivacyTrackingで、NOを選択した場合、必要ないです。
YESを選択した場合、アクセスするドメインを追加する必要があります。
ドメインを追加するとどうなるのか?というと、ユーザーがATTを許可しなかった場合、追加したドメインにアクセスしようとするとエラーのとなるようです。
以下の記事の説明がわかりやすかったです。
NSPrivacyCollectedDataTypes
上記でリストアップされているデータを収集している場合、項目を追加する必要があります。
項目ごとに設定するのは下記の四つとなります
- Collected Data Type
- Collection Purpose
- Used for Tracking
- Linked to User
Collected Data Type
データの種類を設定します。
データの種類は、一覧があるので、この一覧に当てはまるデータは設定が必要です。
すでにリリースしてるアプリの場合は、AppStoreのページを確認して、以下の部分の情報を設定すれば問題ないと思います。
Collection Purpose
追加した項目の使用目的を設定します。
こちらでリスト化されているものから選択する形となります。
Used for Tracking
トラッキング目的にデータを使用しているかを設定します。
こちらで説明されている内容に該当するかを判断する必要があります。
ざっくりした理解だと、以下のような形となります。(問題があれば、Appleから指摘されると思うので)
- ユーザーID、デバイスID、プロファイルなど、特定のユーザーまたはデバイスとして特定できるデータ
→ YESなら下の項目のうちどちらかに当てはまるなら、YES。NOの場合はNO。 - ターゲット広告、広告測定の目的で第三者データとリンクさせる
- データブローカーと共有する
Linked to User
個人情報保護法で定義される「個人情報」および「個人データ」は、Linked to Userをtrueに、それ以外はfalseにします。
例
例えば、名前を収集している場合は、下記のように設定していきます。
使用しているAPI
サードパーティSDKで使用しているデータの説明はサードパーティSDK側で作成する必要があり、私たちが作成する必要はない。
こちらの方が執筆されている記事で、サードパーティSDKのPrivacy Manifests対応状況を調査した結果があった。
https://dev.classmethod.jp/articles/surveyed-the-status-of-privacy-manifests-support-for-third-party-sdks/
WKNavigationActionPolicy