App Metadata Bundle のスキーマ

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: 目的分析
  • 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必須
アプリの目的を人が読める形式の英語のテキストで示す文字列。
contains_ads必須
アプリに広告を表示するかどうかを宣言するブール値。

privacy_policy必須

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

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

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

連絡先情報

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

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