App Metadata バンドルのスキーマ

Android 14 以降では、Android パッケージ インストーラでアプリに関するメタデータ(データ セーフティ方針など)を取り込んで、更新された位置情報の利用許可プロンプトなどの Android プラットフォーム機能で使用できます。

このメタデータを提供する方法は 2 つあります。

  • システム イメージにプリロードされたアプリの場合、デバイス メーカーは、以下で説明する永続化可能なバンドルを含む XML ファイルをシステム イメージに追加することで、アプリに関するメタデータを提供できます。

  • アプリがインストールまたは更新されている場合、このメタデータを指定するには、アプリ インストーラPersistableBundle オブジェクトを setAppMetadata() メソッドに渡す必要があります。

トップレベルの永続型バンドルは、次の Key-Value ペアで構成されています。特に指定のない限り、各キーは省略可能です。

version(必須)
アプリのメタデータ形式のバージョン番号。この現行バージョンの値として 2 を使用し、型として long を使用します。想定される AppMetadata のキーまたはコンテンツ タイプが変更されると、Android によってバージョン番号が変更されます。
safety_labels
アプリのセーフティ ラベルを指定する PersistableBundle オブジェクト。
system_app_safety_label
アプリの system-app-safety-label を指定する PersistableBundle オブジェクト。システム サービスとして機能するアプリの場合、safety_labels バンドルの代わりに system_app_safety_label バンドルが使用されます。
transparency_info
アプリの透明性情報を指定する PersistableBundle オブジェクト。

セーフティ ラベルの形式

safety_labels バンドルには、次の Key-Value ペアが含まれています。

version(必須)
セーフティ ラベル形式のバージョン番号。この現行バージョンの値として 1 を使用し、型として long を使用します。
data_labels
アプリが収集して共有するデータを指定する PersistableBundle オブジェクト。
security_labels
アプリのデータの削除と暗号化の方針を指定する PersistableBundle オブジェクト。
third_party_verification
アプリのデータ セーフティ方針がサードパーティによってどのように検証されるかを指定する PersistableBundle オブジェクト。

収集および共有されるデータ

data_labels バンドルには、次の Key-Value ペアが含まれています。

data_collected
アプリが収集するデータの種類を指定する PersistableBundle オブジェクト。
data_shared
アプリが共有するデータタイプを指定する PersistableBundle オブジェクト。

データのカテゴリ

data_collected キーと data_shared キーはどちらも data_category バンドル形式を使用します。この形式には、次のリストに示す Key-Value ペアが含まれています。各キーは、特定のカテゴリのデータタイプを指定する PersistableBundle オブジェクトにマッピングされます。

  • personal
  • financial
  • location
  • email_text_message
  • photo_video
  • audio
  • storage
  • health_fitness
  • contacts
  • calendar
  • identifiers
  • app_performance
  • actions_in_app
  • search_and_browsing

データ型

data_category バンドル内の各キーは、data_type 形式を使用する異なるバンドルにマッピングされます。data_type 形式で指定するキーは、data_category に対して選択したキーによって異なります。

data_type の考えられる Key-Value ペアを次のリストに示します。これらの各キーの値は、特定のデータタイプに対するアプリのデータ使用方針を記述する PersistableBundle オブジェクトです。一部のデータ型は、キーを 1 つだけ使用します。

個人情報

  • name
  • email_address
  • physical_address
  • phone_number
  • race_ethnicity
  • political_or_religious_beliefs
  • sexual_orientation_or_gender_identity
  • personal_identifiers
  • other

金融情報

  • card_bank_account
  • purchase_history
  • credit_score
  • other

位置情報

  • approx_location
  • precise_location

メールとテキスト メッセージ

  • emails
  • text_messages
  • other

写真と動画

  • photos
  • videos

音声

  • sound_recordings
  • music_files
  • other

ストレージ

files_docs

健康、フィットネス

  • health
  • fitness

連絡先

contacts

カレンダー

calendar

ID

other

アプリのパフォーマンス

  • crash_logs
  • performance_diagnostics
  • other

アプリでのアクション

  • user_interaction
  • in_app_search_history
  • installed_apps
  • user_generated_content
  • other

検索とブラウジング

web_browsing_history

データ使用

data_usage バンドルには、次の Key-Value ペアが含まれています。

purposes(必須)

データを収集または共有する特定の理由を表す整数の配列。PersistableBundle putIntArray メソッドを使用します。バンドルごとに、以下で定義されている目的のうち少なくとも 1 つが必要です。

  • 1: PURPOSE_APP_FUNCTIONALITY
  • 2: PURPOSE_ANALYTICS(目的分析)
  • 3: PURPOSE_DEVELOPER_COMMUNICATIONS
  • 4: PURPOSE_FRAUD_PREVENTION_SECURITY
  • 5: PURPOSE_ADVERTISING
  • 6: PURPOSE_PERSONALIZATION
  • 7: PURPOSE_ACCOUNT_MANAGEMENT
is_collection_optional

ブール値。ユーザーがデータ収集を有効または無効にできるかどうかを指定します。

注: この値は、データ収集を表す data_category バンドルにのみ設定します。データ共有には設定しないでください。

ephemeral

ブール値。アプリがサーバー側でディスク上ではなくメモリでのみデータを処理するかどうかを指定します。また、アプリが特定のデータ処理リクエストを処理するために必要な期間だけデータを保持するかどうかを指定します。

注: この値は、データ収集を表す data_category バンドルにのみ設定します。データ共有には設定しないでください。

データの削除と暗号化の方針

security_labels バンドルには、アプリのデータ削除と暗号化の方針を表す Key-Value ペアが含まれています。

is_data_deletable
ブール値。ユーザーがアプリにユーザーデータの削除をリクエストできるようにするかどうかを指定します。
is_data_encrypted
ブール値。アプリによって収集されたすべてのユーザーデータを転送中に暗号化するかどうかを指定します。

サードパーティによる検証

third_party_verification バンドルは、単一のキー url で構成されています。文字列値で表されるこの URL は、アプリのデータ セーフティ情報の検証に使用するサードパーティのウェブサイトを指定します。

システム サービスのセーフティ ラベルの形式

システム サービスとして機能するアプリの場合、safety_labels バンドルの代わりに system_app_safety_label バンドルが使用され、次の Key-Value ペアが含まれます。

url必須

  • システム サービスとして機能するアプリの安全性に関する情報を含むページを指す URL。
  • タイプとして string を使用します。
  • プライバシー ポリシーの URL が指定されていない場合は、フォールバックとしてプライバシー ポリシーの URL を使用する必要があります。
  • 注: Google Play ストアは privacy_policy をフォールバックとして使用します。

透明性に関する情報の形式

transparency_info バンドルには、次の Key-Value ペアが含まれています。

developer_info
アプリ デベロッパーに関する情報を指定する PersistableBundle オブジェクト。
app_info
アプリに関する情報を指定する PersistableBundle オブジェクト。

デベロッパー情報

developer_info バンドルには、次の Key-Value ペアが含まれています。

developer_#
デベロッパーを識別する PersistableBundle オブジェクト。developer_info には 1 つ以上の developer_# が含まれます。ここで、# は整数です。たとえば、developer_0developer_1developer_2 などです。

デベロッパー

developer_# バンドルには、次の Key-Value ペアが含まれています。

name必須
デベロッパーの名前を示す文字列。
email必須
デベロッパーのメールアドレスを示す文字列。
address必須
デベロッパーの送付先住所を示す文字列。
country_region必須
デベロッパーの国または地域を示す文字列。
website
デベロッパーのウェブサイトを示す文字列。

app_registry

  • デベロッパーのストアまたはレジストリを示す文字列。
  • デベロッパーがストアやその他のレジストリにも登録されている場合、値はストアの Android パッケージ名またはレジストリの URL にする必要があります。
  • 複数の店舗に対して複数のエントリが可能です。
  • Google Play の場合は、com.android.vending を使用します。
  • デベロッパーが Google Play SDK Index に登録されている SDK の場合は、この属性を省略します。
  • デベロッパーがどのアプリストアやレジストリにも登録されていない場合は、この属性を省略します。

app_registry_id

  • 指定された app_registry のデベロッパーの ID を示す文字列。
  • デベロッパーがストアやその他のレジストリにも登録されている場合、値はストアまたはレジストリの ID にする必要があります。
  • 複数の店舗に対して複数のエントリが可能です。
  • Google Play に登録されているデベロッパーの場合、この値はデベロッパー ページの URL である必要があります(たとえば、https://play.google.com/store/apps/dev?id=5700313618786177705 はデベロッパーの Google LLC の URL です)。
  • Google Play SDK Index に登録されている SDK デベロッパーの場合は、SDK の Google Play SDK Index URL を使用します(たとえば、https://play.google.com/sdks/details/com-google-android-gms-play-services-ads は、Google Mobile Ads(GMA)SDK の Google Play SDK Index URL です)。
  • デベロッパーが別のストアやレジストリに登録されている場合は、アプリストアの URL などの識別子を指定できます。
  • デベロッパーがどのアプリストアにも登録されていない場合は、この属性を省略できます。

アプリ情報

app_info バンドルには、次の Key-Value ペアが含まれています。

title必須
アプリのタイトルを示す文字列。
description必須
人間が読み取れる英語のテキストの blob でアプリの目的を説明する文字列。
contains_ads必須
アプリに広告を表示するかどうかを宣言するブール値。

privacy_policy必須

  • ユーザーデータの処理方法を示すプライバシー ポリシーにリンクする URL 属性を含む文字列。
  • ユーザーデータを送信するアプリでは必須です。
  • アプリにこのリンクが含まれていない場合、アプリはユーザーデータを処理していないとみなされます。
category必須

アプリの主な目的を最もよく表すアプリのカテゴリのいずれかを含む文字列。

  • Android(AOSP コンポーネントのみ)*
  • アート&デザイン
  • 車、乗り物
  • 美容
  • 書籍&参考書
  • お店やサービス
  • コミック
  • 通信
  • 出会い
  • 説明
  • エンターテイメント
  • イベント
  • 金融
  • 食べ物、飲み物
  • ゲーム
  • 健康&フィットネス
  • 住まい、インテリア
  • インストーラ(アプリストアまたは他のインストーラの場合のみ)*
  • ライブラリ&デモ
  • ライフスタイル
  • 地図とナビ
  • 医療
  • 音楽とオーディオ
  • ニュース&雑誌
  • 子育て、育児
  • パーソナライズ
  • 写真処理技術
  • 仕事効率化
  • セキュリティ*
  • ショッピング
  • ソーシャル
  • スポーツ
  • ツール
  • 旅行&地域
  • アップデータ(デバイスのデフォルトの無線(OTA)アップデート アプリの場合のみ)*
  • 動画プレーヤー、エディタ
  • 天気情報
contact_info
アプリの連絡先情報(下記)を含む PersistableBundle オブジェクト。

連絡先情報

contact_info バンドルには、次の Key-Value ペアが含まれています。

email必須
アプリのメールアドレスを示す文字列。
website
アプリのウェブサイトを示す文字列。