年齢シグナル
年齢シグナルは、ユーザーがアクセスすべき権限と機能を決定するために使用できるユーザーの年齢に関する情報です。開発者は収集した情報に基づいてk-IDに年齢シグナルを提供し、k-IDのインターフェース(VPCまたは年齢確認)がこれらの年齢シグナルを確認および処理してコンプライアンスを確保します。
年齢シグナルとは?
年齢シグナルは、開発者がアクセスできる可能性のあるさまざまなソースから取得できます:
- 生年月日: ユーザーの生年月日。
YYYY、YYYY-MM、またはYYYY-MM-DDなどの形式で提供できます - 自己申告年齢: ユーザーが直接提供した年齢情報(たとえば、年齢ゲートを通じて)
- 年齢推定: 顔年齢推定技術からの推定年齢
- プラットフォーム年齢シグナル: ゲームが起動したときにゲームプラットフォーム(Apple iOS、Google Play、Meta Horizon、Xbox)によって提供される年齢情報
- 確認済み年齢: ID文書確認またはその他の信頼できる方法を通じて確認された年齢
k-IDが年齢シグナルを処理する方法
k-IDは、年齢シグナルを収集および確認するためのインターフェースを提供します:
- 開発者が年齢シグナルを提供: 開発者が任意のソース(プラットフォーム、既存のアカウント)から年齢情報を収集した場合、それをk-IDに提供できます
- CDKが収集インターフェースを提供: 開発者がCDKを使用する場合、k-IDはVPC用の年齢シグナルを収集するインターフェースを提供します
- VPCと年齢確認が年齢シグナルを確認: これらのインターフェースは、開発者が提供する年齢シグナルを確認および処理するものです
プラットフォーム年齢シグナルの使用
多くのゲームプラットフォームは、ゲームが起動したときに年齢シグナルをゲームに送信します。これらのシグナルは、プラットフォームによって確認されたユーザーの年齢情報を提供します。k-IDはApple iOS、Google Play、Meta Horizon、およびXboxからのプラットフォーム年齢シグナルをサポートしています。
プラットフォーム年齢シグナルの仕組み
プラットフォーム年齢シグナルは、/age-gate/checkエンドポイントのplatformAgeSignalフィールドを通じてk-IDに渡されます。プラットフォームに応じて、以下の2つの形式のいずれかでシグナルを提供します:
- 年齢範囲(
ageLowとageHigh): プラットフォームが報告する数値の年齢範囲。Apple iOSおよびGoogle Playに使用します。 - カテゴリ(
category): プラットフォーム固有の年齢カテゴリ文字列。Meta HorizonおよびXboxに使用します。
すべてのプラットフォーム年齢シグナルには、プラットフォームを識別するnameフィールド(apple-ios、google-play、meta-horizon、またはxbox)が必要です。これらの2つの形式は相互排他的であり、同じリクエストでcategoryとageLow/ageHighの両方を提供するとエラーが返されます。
Apple iOSとGoogle Play:年齢範囲シグナル
Apple iOSとGoogle Playは、最小年齢と最大年齢を含む年齢範囲シグナルを提供します。これらのプラットフォームを使用する場合、ageLowとageHighを直接渡します。両方のフィールドを一緒に提供する必要があり、値は0 ≤ ageLow ≤ ageHigh ≤ 100を満たす必要があります:
{
"jurisdiction": "US",
"platformAgeSignal": {
"name": "apple-ios",
"ageLow": 16,
"ageHigh": 18,
"declarationType": "guardianPaymentChecked"
}
}
オプションのdeclarationTypeフィールドは、プラットフォームがユーザーの年齢をどのように確認したかに関する補足情報を提供します:
- Apple iOS: AppleのAgeRangeDeclarationからの値(
guardianPaymentCheckedやgovernmentIDCheckedなど) - Google Play: Google Playの年齢シグナルAPIからの値(
VERIFIEDやSUPERVISEDなど)
Meta HorizonとXbox:カテゴリシグナル
Meta HorizonとXboxは、特定の年齢範囲ではなく年齢カテゴリを提供します。これらのプラットフォームでは、category文字列を渡します:
{
"jurisdiction": "GB",
"platformAgeSignal": {
"name": "meta-horizon",
"category": "CH"
}
}
たとえば、Meta HorizonはGetAgeCategory APIを提供しており、CH(子供、10-12歳)、TN(ティーン、13-17歳)、またはAD(成人、18歳以上)などのカテゴリを返します。
/age-gate/get-platform-age-rangeエンドポイントを使用して、プラットフォームの年齢カテゴリを管轄区域固有の年齢範囲(ageLowとageHigh)に変換してから、/age-gate/checkを呼び出すこともできます。
Meta Horizonは、年齢データが利用できないアカウントに対してUNKNOWNを返す場合があります。この場合、k-IDは年齢範囲を解決できないため、プレイヤーから直接年齢を収集するフォールバックを行ってください。
年齢の競合の処理
ゲームがプライマリ年齢シグナル(生年月日や自己申告年齢など)とプラットフォーム年齢シグナルの両方を提供する場合、k-IDは2つの間の競合を検出できます。製品で年齢競合検出が有効になっている場合、プラットフォームがユーザーを申告された年齢よりも若い年齢カテゴリに分類すると、/age-gate/checkエンドポイントは400 AGE_CONFLICTエラーを返します。
たとえば、プレイヤーが18歳であることを示す生年月日を提供したが、プラットフォームが0-12歳の年齢範囲(デジタル未成年者カテゴリ)を報告した場合、k-IDは競合を検出してエラーを返し、ゲームがその不一致を処理できるようにします。
プレイヤーがどの権限を持つべきかを決定する際、k-IDは常にプレイヤーの申告年齢とプラットフォームシグナルのageLowのうち、より保守的な(若い方の)年齢を使用します。これは、プラットフォームシグナルが年齢確認の目的で信頼できると見なされていない場合にも適用されます。信頼できないシグナルでも権限を制限することはできますが、権限を付与することはできません。
プラットフォームシグナルで年齢ゲートを制約する
最初から年齢の競合を防ぐために、ゲームはプラットフォーム年齢シグナルを使用して、プレイヤーが年齢ゲートで提供できる可能な年齢を制限できます。これを行うには、/age-gate/get-requirements APIから返される2つの重要なフィールド、digitalConsentAgeとcivilAgeがあります。
これらのフィールドを使用して、年齢ゲートを以下に制約できます:
- デジタル未成年者: デジタル同意年齢(
digitalConsentAge)までのデジタル未成年者の年齢のみを許可 - デジタル青少年(ティーン): デジタル同意年齢(
digitalConsentAge)と法的年齢(civilAge)の間の年齢値を許可 - 法的成人: 法的年齢(
civilAge)以上の年齢を許可
このアプローチにより、プレイヤーがプラットフォームの確認済み年齢シグナルと競合する年齢を申告できないようになり、不一致を減らし、コンプライアンスを確保します。
信頼できるプラットフォームシグナルと年齢確認しきい値
一部の権限は、有効化される前に信頼できるプラットフォームシグナルからの確認済み年齢を必要とします。これは権限のverifiedAgeThresholdフィールドによって制御され、必要な最小確認年齢を指定します。
たとえば、ブラジルでは、ルートボックスの権限には信頼できるソースからの18歳以上の確認済み年齢が必要です。verifiedAgeThresholdを持つ権限は常にmanagedBy: "PLAYER"であり、保護者が切り替えることはできません。信頼できるソースからの年齢確認のみがそれらを解除できます。
権限にverifiedAgeThresholdがある場合:
- プレイヤーの有効年齢(申告年齢とプラットフォームの
ageLowのうち低い方)がしきい値を下回る場合、権限はPROHIBITEDに設定され、いかなるフローでも有効化できません。チャレンジは発行されません - プレイヤーの有効年齢がしきい値以上であり、かつ信頼できるプラットフォームシグナルが提供されている場合、権限は有効化されます
- プレイヤーの有効年齢がしきい値以上であるが、信頼できるプラットフォームシグナルが利用できない場合、プレイヤーは年齢保証チャレンジを通じて年齢確認を求められます
どのプラットフォームシグナルが信頼できるか?
すべてのプラットフォームシグナルが同じレベルの信頼性を持っているわけではありません。現在、以下が信頼できると見なされています:
- Apple iOS(宣言タイプ:
paymentChecked、governmentIDChecked、guardianPaymentChecked、またはguardianGovernmentIDChecked) - Google Play(宣言タイプ:
VERIFIEDまたはSUPERVISED)
Meta HorizonとXboxからのシグナルは、現在、年齢確認しきい値の目的では信頼できると見なされていません。
プラットフォーム年齢シグナルによるセッションアップグレード
プレイヤーがverifiedAgeThresholdを持つ権限を有効化したい場合、/session/upgrade APIはリクエストされた権限とともにplatformAgeSignalを受け入れます。結果はシグナルによって異なります:
- 信頼できるシグナルがしきい値を満たす場合: 権限は即座に有効化されます(ステータス
PASS)。チャレンジは作成されません - 信頼できるシグナルはないが、プレイヤーの年齢がしきい値を満たす場合: プレイヤーが年齢を確認できるように年齢保証チャレンジが作成されます
- プレイヤーの有効年齢がしきい値を下回る場合: 権限は
PROHIBITEDのままとなり、チャレンジは発行されません。セッションはそのまま返されます
以前に確認された年齢
ゲーム開発者は、プレイヤーが新しいゲームを開始するときに、プレイヤーの年齢を既に知っている場合があります。これは通常、プレイヤーがゲーム開発者に既知のIDでゲームにサインインしたためです。この場合、ゲームは年齢ゲートを表示する代わりに、/age-gate/checkを呼び出し、場所と以前に確認された生年月日を渡すことができます。
年齢シグナル収集方法
年齢シグナルを収集するために利用可能な方法は、管轄区域によって異なります。/age-gate/get-requirements APIは、現在の管轄区域で許可されている方法を指定するapprovedAgeCollectionMethods配列を返します:
date-of-birth: 完全な生年月日(YYYY-MM-DD)age-slider: 年齢範囲またはおおよその年齢選択platform-account: 既存のプラットフォームアカウントの年齢確認を使用
年齢ゲートを表示する場合、ベストプラクティスは、「ニュートラル年齢ゲート」を表示することです。これは、年齢が既に設定されていないため、ユーザーが年齢を設定するためにアクションを取る必要があります。さらに、年齢ゲートが年齢値にスライダーを使用する場合、ESRBは、スライダー年齢ゲートの最大年齢を35にすることを推奨しています。
年齢ステータスの使用
k-IDは特定の機能に関連する豊富な権限設定を提供しますが、一部のゲームは、特定の機能から独立した、より明確なプレイヤーエクスペリエンスを作成する必要がある場合があります。たとえば、ゲームは、プレイヤーが法的成人でない場合、ゲーム内広告をまったく表示しない場合があります。この場合、ゲームはSessionのageStatusフィールドを確認できます。このフィールドは、DIGITAL_MINOR(デジタル同意年齢未満)、DIGITAL_YOUTH(法的年齢未満だが、デジタル同意年齢より大きい)、またはLEGAL_ADULT(法的年齢)のいずれかです。