IndieForm
ガイド一覧

Google Playデータ セーフティの入力手順:収集・共有の判断基準

·最終更新

Google Playのデータ セーフティは、AndroidManifestの権限を転記するだけでは完成しません。
アプリ本体とSDKが実際にどのデータを端末外へ送り、その後どこで何に使うかを確認して回答します。

先にデータフローを1行ずつ書き出す

Play Consoleを開く前に、データが「どこから、どこへ、何のために」動くかを一覧にします。Android Developersの確認項目では、権限やAPIに加えて、入力フォーム、WebView、ライブラリ、SDKもデータ利用の手掛かりとして挙げています。

次の順に見ると、アプリ本体だけを確認してSDK分を落とす事故を減らせます。

  1. ログイン、プロフィール、投稿、問い合わせ、購入などの機能
  2. AndroidManifestの権限と、位置情報や端末識別子などへアクセスするAPI
  3. 分析、広告、クラッシュレポート、認証、通知に使うSDK
  4. アプリが表示内容を管理するWebViewと、その中にあるフォーム
  5. 自社サーバーから外部サービスへ送るデータ

SDKは名前だけで判断せず、利用中のバージョンと設定を確認します。Google Play SDK Indexでは、SDKが要求する権限や、提供者が公開しているData safety guidanceへのリンクを調べられます。ただし、同じSDKでも有効にした機能で送信内容は変わるため、最終回答は自分の実装に合わせます。

「収集」は端末外への送信から判定する

Google Playの公式定義では、Collectはユーザーデータをアプリから端末外へ送ることです。自社サーバーだけでなく、SDKが第三者のサーバーへ直接送る場合や、アプリがコードや動作を管理するWebViewから送る場合も含まれます。

判断が分かれやすい処理は次のとおりです。

処理フォームでの扱い
端末内だけで処理し、外へ送らない収集として開示しなくてよい
端末外へ送り、メモリ上でリクエスト処理に必要な時間だけ使う一時処理としてフォームには回答する
仮名化したIDを送り、合理的にユーザーへ再関連付けできる開示する
開発者や中間者が読めないエンドツーエンド暗号化で送る条件を満たせば収集として開示しなくてよい

「保存しないから回答不要」とは限りません。一時処理もフォームには含めますが、Googleの条件を満たす場合はストア上のデータ セーフティ欄に表示されません。広告プロフィールやほかのユーザープロフィールの作成は、一時処理として扱えません。

「共有」は第三者へ移すかで分ける

Sharingは、アプリから収集したユーザーデータを第三者へ移すことです。自社サーバーから第三者サーバーへ送る処理、SDKによる直接送信、別アプリへの端末内転送も確認します。

一方、開発者の指示に基づいて代理処理するサービスプロバイダへの転送は、共有として開示しなくてよい場合があります。ここで対象外になるのは「共有」の判定です。端末外へ送っている事実がなくなるわけではないため、収集するデータとしての回答は別に確認します。

契約上の呼び名だけでサービスプロバイダと決めず、相手が自社の目的でデータを利用するか、ほかのデータと組み合わせるかまで利用規約と設定で確かめます。

データタイプと利用目的を対応させる

棚卸し表の各行を、Google Playのデータタイプと利用目的へ移します。権限があるかではなく、実際に端末外へ送る内容で選びます。

実装で扱う内容確認するデータタイプ目的の候補
ログイン用メールアドレスPersonal infoのEmail addressAccount management、App functionality
問い合わせの自由記述App activityのOther user-generated contentApp functionality
クラッシュのstack traceApp info and performanceのCrash logsAnalytics
Firebase installation IDなどDevice or other IDs実際の用途に応じて選ぶ

表の右列は回答例の固定値ではありません。同じメールアドレスでも、ログイン、開発者からの連絡、マーケティングでは目的が変わります。該当する目的をすべて選びます。

「任意」は全ユーザーが選べる場合だけにする

各データタイプには、収集が必須か任意かも回答します。任意とできるのは、地域や端末にかかわらず、すべてのユーザーが提供を選べるか、opt-inまたはopt-outできる場合です。

Google Playの回答はpackageごとに一つで、現在配信しているバージョンと地域を横断した取り扱いの合計です。あるバージョンや地域で必須なら、別の環境では選べても任意とは回答できません。

内部テストだけで配信するアプリはフォーム提出の対象外です。closed、open、productionの各trackで公開するアプリは対象になり、データを収集しない場合もフォームとプライバシーポリシーへのリンクが必要です。

Play Consoleへ入力する

棚卸しが終わったら、Play ConsoleのApp contentからData safetyを開きます。公式手順に沿って次の順で入力します。

  1. 収集または共有するユーザーデータがあるか答える
  2. 通信時の暗号化と、データ削除リクエスト手段の有無を答える
  3. 収集または共有するデータタイプをすべて選ぶ
  4. データタイプごとに、収集・共有、一時処理、必須・任意、利用目的を答える
  5. Store listing previewでユーザーからの見え方を確認する
  6. 実装、SDKの設定、プライバシーポリシーと照合してSubmitする

判断が残る項目はSave as draftで保存できます。CSVで回答をexportし、SDK更新時の差分確認に使う方法もあります。提出後も、収集方法や利用目的が変わった時点で回答を更新します。

問い合わせフォームも組み込み方まで確認する

アプリから問い合わせフォームを利用する場合は、画面に見える本文だけでなく、送信時に付く値まで棚卸しします。IndieFormの公開フォームでは、設定に応じてメールアドレス、名前、問い合わせ本文、画像添付を受け取り、URLパラメータからアプリバージョン、OS、端末、hash化したユーザーIDなどの環境情報を保存できます。

これらをデータ セーフティへどう反映するかは、アプリ内WebViewで扱うのか、外部ブラウザへ移動するのか、どの項目を有効にしているのかで変わります。IndieFormが申告内容を決めるのではなく、開発者が実装とGoogle Playの定義を照合します。

問い合わせ窓口を設ける前に、少なくとも次を決めておくと回答と運用がずれにくくなります。

  • 返信にメールアドレスが必要か
  • 画像添付を許可するか
  • 調査に必要な環境情報だけを渡しているか
  • 問い合わせ本文と添付をいつまで保持するか
  • 利用者がデータ削除を依頼できる窓口があるか

プライバシーポリシーURLとGoogle Play上の問い合わせ先が未準備なら、Google Playの必須項目を先に確認してください。iOS版も配信する場合は、同じ棚卸し表を再利用しつつ、App Storeの「Appのプライバシー」入力手順にあるApple固有の定義で回答し直します。

関連記事

アプリ専用の問い合わせフォームを用意する

アプリのURLからフォームの下書きを作り、サポート窓口として公開できます。