この記事では、Windows Age API を使用して年齢に適したアプリ エクスペリエンスを構築する方法についてよく寄せられる質問に回答します。
Overview
Windows Age API群とは何ですか?
Windows Age API は、現在のプロセスを実行しているユーザーにプライバシーを保持する年齢シグナルを提供します。 正確な年齢または生年月日を返す代わりに、Windows は年齢範囲または成人確認ステータスを返します。このステータスは、アプリが年齢に適したエクスペリエンスを提供するために使用できます。
これらの API は、Windows.System.UserのWindows ランタイムメソッドです。 ユーザーの正確な生年月日を受け取ることなく、アプリが年齢関連のエクスペリエンスとポリシーの決定を行うのに役立ちます。
ユーザーが同意した場合、開発者は、年齢に適したエクスペリエンスを設計するときにアプリケーションが使用できる年齢シグナルにアクセスできます。 アプリケーション開発者は、適用される法律と要件が製品にどのように適用されるかを判断する責任を引き続き負います。
Windows Age API はどのようなシナリオを対象としていますか?
アプリでは、年齢がエクスペリエンスに関連する場合に、年齢シグナルを使用できます。 たとえば、アプリは次の場合に年齢シグナルを使用することがあります:
- すべての年齢に適さない可能性がある、ユーザーが生成したコンテンツ、ソーシャル機能、またはコミュニケーションを表示します。
- 年齢制限が適用される可能性があるアプリ内購入または仮想通貨が含まれます。
- 成熟度レーティング付きのメディアをストリーミングまたは再生します。
より一般的には、アプリは年齢シグナルを使用して、生年月日を収集することなく、コンテンツ、機能、またはアクセス制御を調整できます。
どのWindows Age API が利用可能ですか?
次の API は、さまざまなシナリオをサポートしています。
-
GetUserAgeRangeAsyncは、ユーザーの年齢グループの下限と上限の両端を含むUserAgeRangeを返します。 定義済みグループは、10 歳未満、10 から 12 歳、13 から 15 歳、16 から 17 歳、18 歳以上です。null結果は、年齢範囲が不明であるか、利用できないことを意味します。 -
GetAgeVerificationStatusAsyncは、ユーザーの成人認証の状態を示すUserAgeVerificationStatusを返します。 任意の年齢または年齢グループを確認しません。
年齢確認では、ユーザーの年齢または年齢グループが確認されますか?
No. 年齢確認で確認されるのは確認済みの成人ステータスであり、特定の年齢や年齢層の確認済みステータスではありません。 アカウントベースの検証では、成人であると主張するユーザーは、そのユーザーが成人かどうかを確認するフローを通過する必要があります。 フローは、成人であるという申告をチェックします。子どもや10代の若者に対して、確認済みの年齢を確定しません。
Microsoft アカウントの年齢を確認する方法については、「Microsoft アカウントの年齢を確認する」を参照してください。
GetAgeVerificationStatusAsync は、成人認証の状態を表示します。
Verified 結果は、確認済み成人状態を報告します。 他の結果からは、ユーザーが未成年であるとは判断できません。アプリでは、Unverified 結果、OptedOut 結果、および使用できないか不確定な結果を区別する必要があります。
Windows Age API は一般提供されていますか?
GetUserAgeRangeAsync と GetAgeVerificationStatusAsync が一般提供されています。 サポートされているリテール Windows ビルドは次のとおりです。
- Windows 11バージョン 24H2: ビルド 26100.9550 以降。
- Windows 11バージョン 25H2: ビルド 26200.9550 以降。
Windows SDK バージョン 10.0.26100.9169 以降には、これらの API が含まれています。
アプリはどの API を使用すべきですか?
以下を使用してください。
-
GetUserAgeRangeAsyncアプリが年齢ブラケットを必要とし、独自のエクスペリエンスまたはポリシー ロジックを適用する場合。 -
GetAgeVerificationStatusAsync決定は、ユーザーが成人確認を完了したかどうかによって異なります。
アプリは、シナリオに適した場合に複数の年齢シグナルを使用できます。 年齢範囲の結果が18歳以上の場合でも、それ自体では確認済みの成人ステータスを確立しません。
プライバシーとデータの処理
GetUserAgeRangeAsync で自分で年齢範囲を設定できますか?
No.
GetUserAgeRangeAsyncによって返される年齢グループは定義済みです。
API はユーザーの正確な年齢または生年月日を返しますか?
No.
GetUserAgeRangeAsync は、正確な年齢や生年月日ではなく、年齢グループを返します。 たとえば、下限と上限が {13, 15} の結果は、ユーザーの年齢が 13~15 歳のグループにあることを意味します。
GetAgeVerificationStatusAsync は、確認済みの年齢または確認済みの年齢グループではなく、成人確認のステータスを報告します。
Windows Age API を使用するには、アプリでユーザーの生年月日を収集する必要がありますか?
No. API の 1 つの目的は、ユーザーの生年月日を直接受け取ることなく、アプリが年齢関連の決定を行えるようにすることです。
アプリは年齢シグナルを保存すべきですか?
アプリは、不必要に年齢シグナルを保持しないようにする必要があります。 ユーザーの年齢グループ、確認状態、アカウントの状態、または該当する管理ポリシーが変更される可能性があるため、必要なときにシグナルを取得します。
ユーザーとアカウントの挙動
サポートされているアカウントの種類はどれですか?
ID プロバイダーの年齢シグナルは、現在、Microsoft アカウントでのみ使用できます。 その他の種類のアカウントでは、管理用の既定値が構成されていない場合、 GetUserAgeRangeAsync は nullを返し、 GetAgeVerificationStatusAsync は NotApplicableを返します。
Age API はどのユーザーに関する情報を返しますか?
Age API 呼び出しは、現在のプロセスを実行しているユーザーに適用されます。 複数の Windows プロファイルを持つデバイスでは、API はアクティブなアプリ エクスペリエンスについて現在のユーザーのプロファイルを照会します。 API には、別のプロファイルに対してクエリを実行するためのメカニズムは用意されていません。
アプリは、デバイス上の別のユーザーの年齢シグナルを照会できますか?
No. API は、プロセスを実行しているユーザーのコンテキストで動作します。 別のユーザーを表す User オブジェクトを使用して Age API を呼び出すと、 E_ACCESSDENIEDが発生する可能性があります。
ユーザーが Windows に接続された複数の種類のアカウントを持っている場合はどうなりますか?
Windows Age API は、現在サインインしているWindows ユーザーのコンテキストで動作し、そのユーザーのWindowsサインインに関連付けられているMicrosoft アカウントを使用します。 アプリでは、クエリに別の接続されているアカウントを選択できません。
年齢シグナルを特定できない場合はどうなりますか?
アプリは、年齢シグナルが利用できない場合や不確定な場合に備えておく必要があります。
GetUserAgeRangeAsyncの場合、nullは年齢範囲が不明であるか、利用できないことを意味します。
nullが発生する条件は次のとおりです。
- アカウントの種類はサポートされていません。
- そのアカウントの年齢情報は利用できません。
- API は管理ポリシーによって無効になっています。
GetAgeVerificationStatusAsyncの場合、NotApplicableまたはTemporarilyUnavailableは、使用不可または不確定の検証シグナルを表します。 これらの結果からは、ユーザーが成人であることを確認済みかどうかは判断できません。
アプリは適切なフォールバック エクスペリエンスを提供する必要があり、使用できない結果を特定の年齢グループまたは検証状態として解釈してはなりません。
アプリでは、年齢シグナルが常に使用可能であると想定する必要がありますか?
No. アプリは、Age API 統合の一環としてフォールバック動作を設計する必要があります。 有効なシグナル、使用不可または不確定のシグナル、およびアクセス拒否エラーを個別の状態として扱います。
アプリの要件と実装
必要なオペレーティング システムと SDK は何ですか?
Windows 11は、サポートされている最小オペレーティング システムです。
GetUserAgeRangeAsync および GetAgeVerificationStatusAsync は、サポートされている次のリテール ビルドで利用できます。
- Windows 11バージョン 24H2: ビルド 26100.9550 以降。
- Windows 11バージョン 25H2: ビルド 26200.9550 以降。
Windows SDK バージョン 10.0.26100.9169 以降を使用して、これらの API を呼び出すアプリをビルドしてください。
API は古いシステムや保守されていないシステムでは存在しない可能性があるため、API を呼び出す前に可用性を確認してください。
使用しているアプリで機能を宣言する必要はありますか?
Yes. UWP アプリでは、パッケージ マニフェストで userAccountInformation 機能を宣言する必要があります。
<uap:Capability Name="userAccountInformation" />
必要なアクセス権がないと、アプリはユーザーの年齢データを読み取ることはできません。
Age API の呼び出しに使用される User オブジェクトを取得するにはどうすればよいですか?
User.GetDefaultを使用して、現在のプロセスを実行しているユーザーを取得します。
User.FindAllAsync はユーザーを列挙できますが、プロセスを実行しているユーザーを表す User インスタンスで Age API を呼び出す必要があります。
生年月日の変更や誕生日が年齢シグナルに影響を与えるのにどのくらいの時間がかかりますか?
ユーザーが Microsoft アカウントに関連付けられている生年月日を変更した場合、または誕生日を迎えた場合、変更は最後の年齢シグナルフェッチから 24 時間以内に反映されます。
アプリで年齢シグナルの更新を強制することはできますか?
No. 強制更新はサポートされていません。
エラーとフォールバックの処理
アプリは、利用できない年齢範囲をどう処理すべきですか?
使用できない年齢範囲は、年齢を想定するのではなく、明示的に処理します。
GetUserAgeRangeAsync からの null 結果は、年齢範囲が不明であるか、利用できないことを意味します。
意図的に設計されたフォールバック エクスペリエンスを使用します。
nullは、18 歳以上のグループを含む特定の年齢グループとして解釈しないでください。
E_ACCESSDENIEDとはどういう意味ですか?
E_ACCESSDENIED は、呼び出し元がアカウント情報にアクセスできないこと、またはアプリがプロセスを実行しているユーザー以外のユーザーの User オブジェクトを使用して API を呼び出したことを意味します。
このエラーは、使用不可のシグナルとは別のものとして扱います。 使用できないシグナルは、API に応じて、 null、 NotApplicable、または TemporarilyUnavailableとして返されます。
不明な検証状態に対するアプリの対処方法
利用できない確認状態または不確定な確認状態を明示的に処理し、フォールバック エクスペリエンスを提供します。
NotApplicable と TemporarilyUnavailable は、ユーザーが成人確認済みかどうかを判定しません。 これらの結果、 Unverified、または OptedOut を、ユーザーが未成年であることを証明するものとして解釈しないでください。
参照
Windows developer