権限
k-ID Regulatory Hubの権限は、世界中の1つ以上の管轄区域の規制で扱われるゲーム機能の分類を表します。権限は、ゲームのCompliance Studioで設定されます。ゲーム機能に一致する各k-ID権限は、Compliance Studioで有効にする必要があります。
権限とは?
権限は、親の同意が必要な場合や年齢制限がある可能性のあるゲーム内の機能または機能を表します。各権限は、以下に基づいてプレイヤーに対して有効または無効にできます:
- 年齢と管轄区域
- 親の同意(必要な場合)
- Compliance Studioでの権限の設定
権限構造
セッション内の各権限には、以下の構造があります:
{
"enabled": true,
"managedBy": "PLAYER",
"name": "text-chat-private"
}
管轄区域が機能を解除する前に確認済み年齢を要求する場合、一部の権限には verifiedAgeThreshold フィールドも含まれます:
{
"enabled": false,
"managedBy": "PLAYER",
"name": "loot-boxes-paid-gameplay-impacting",
"verifiedAgeThreshold": 18
}
権限フィールド
| フィールド | 型 | 説明 |
|---|---|---|
name | string | 権限の識別子(たとえば、text-chat-private、loot-boxes-paid-gameplay-impacting) |
enabled | boolean | 権限が現在プレイヤーに対して有効になっているかどうか |
managedBy | string | この権限を制御できる人。PLAYER、GUARDIAN、または PROHIBITED のいずれか(下記参照) |
verifiedAgeThreshold | integer | 高リスク権限にのみ存在します。この権限を有効にするために必要な最小確認済み年齢。プレイヤーの確認済み年齢がこの閾値以上になるまで、同意に関係なく enabled は false のままです。高リスク権限のための年齢保証を参照 |
managedBy の値:
PLAYER: プレイヤー自身が親の同意なしでこの権限を有効/無効にできます。verifiedAgeThresholdが存在する場合、プレイヤーはenabledがtrueになる前に年齢保証を通過する必要があります。GUARDIAN: 信頼できる大人のみがこの権限を有効または無効にできます。PROHIBITED: この権限は、管轄区域で利用できないか、プレイヤーの年齢がverifiedAgeThresholdを下回って現在の年齢ではどの手段でも解除できないため、現在のプレイヤーには許可されません。
managedByは時間の経過とともに変更される可能性がありますmanagedByフィールドは静的ではありません。プレイヤーが年齢アップし、親の同意が不要になった場合、以前はmanagedBy: "GUARDIAN"だった権限がmanagedBy: "PLAYER"に変更される可能性があります。プレイヤーが/session/upgrade APIを介してPLAYER管理の権限を有効にすることをリクエストすると、チャレンジを作成せずに自動的に有効になります。アプリケーションは、時間の経過とともにセッションを比較することで、これらの変更を処理する必要があります。
誰が権限を有効にできるか?
ゲームコードは、各k-ID権限を使用して、ゲーム内の対応する機能へのアクセスを制御する必要があります。権限のenabledフィールドがtrueの場合、これは機能をゲーム内のプレイヤーに対して有効にできることを意味します。enabledフィールドがfalseの場合、機能をオフにする必要があります。
一部の管轄区域では、プレイヤーが特定の年齢の場合、プレイヤーが機能にアクセスすることが許容される場合でも、ゲームが特定の機能をデフォルトでオフにする必要があります(これは「デフォルトのプライバシー」要件と呼ばれることがあります)。この場合、enabledはfalseで、managedByフィールドにはPLAYERが含まれます。
機能が信頼できる大人によってのみオンまたはオフにできる場合、managedByフィールドの値はGUARDIANです。機能が現在のプレイヤーに対して利用できない場合、managedByフィールドはPROHIBITEDです。これは、機能がプレイヤーの管轄区域で禁止されているか、プレイヤーの年齢がverifiedAgeThresholdを下回って現在の年齢では満たせないためです。権限がPROHIBITEDの場合、機能をオフの状態で表示するのではなく、ユーザーエクスペリエンスから完全に削除するのが適切です。
プレイヤーが年齢アップし、親の同意が不要になった場合、以前はmanagedBy: "GUARDIAN"だった権限がmanagedBy: "PLAYER"に変更される可能性があり、プレイヤーが直接制御できるようになります。プレイヤーが/session/upgrade APIを介してPLAYER管理の権限を有効にすることをリクエストすると、チャレンジを作成せずに自動的に有効になります。ゲームは、プレイヤーがこれらの権限を管理できるUIコントロールを提供する必要があります。
高リスク権限と年齢保証
一部の権限は同意以上のものを必要とします:確認済み年齢が必要です。確認済み年齢とは、単に自己申告の生年月日ではなく、強力な確認経路(政府IDチェック済みのプラットフォームシグナルやAgeKit+チャレンジなど)で確認されたものです。
これらの権限には verifiedAgeThreshold 整数フィールドが含まれます。現在これはブラジル(BR)に適用されます:
| 権限 | verifiedAgeThreshold |
|---|---|
profiling | 18 |
targeted-ads | 18 |
loot-boxes-paid-cosmetic-only | 18 |
loot-boxes-paid-gameplay-impacting | 18 |
direct-marketing | 12 |
標準権限との違い
| 動作 | 標準(GUARDIAN管理) | 高リスク(verifiedAgeThreshold) |
|---|---|---|
| 保護者の同意だけで解除できる | はい | いいえ |
| 年齢ゲートでの確認済みプラットフォームシグナルで満たせる | いいえ | はい |
| 未満たされていない場合に年齢保証チャレンジが必要 | いいえ | はい |
プレイヤーが若すぎる場合に PROHIBITED として表示 | はい(管轄区域の禁止) | はい(閾値を下回る年齢) |
verifiedAgeThreshold を満たす方法
権限の閾値を満たす方法は2つあります:
-
年齢ゲートでの確認済みプラットフォームシグナル。 プラットフォーム年齢シグナルが
POST /age-gate/checkに渡され、そのシグナルが確認済みと見なされ(たとえばApple iOSgovernmentIDCheckedまたはGoogle PlayVERIFIED)、ageLow >= verifiedAgeThresholdの場合、k-IDはセッションにageVerificationを記録し、権限は即座にenabled: trueになります。 -
/session/upgradeを介した年齢保証。 閾値がまだ満たされていない場合、権限名を指定してPOST /session/upgradeを呼び出すと、標準的な親の同意チャレンジではなくCHALLENGE_SESSION_UPGRADE_BY_AGE_ASSURANCEチャレンジがトリガーされます。プレイヤーはAgeKit+で年齢確認を完了し、成功すると権限が解除されます。
プレイヤーが最初に閾値を下回る年齢を提供し、後で申し立てを希望する場合は、高リスク機能のための年齢保証でk-IDプラットフォームシグナルを使用して年齢ゲートを再起動する方法を含む完全な回復フローを参照してください。
ゲーム機能への権限のマッピング
k-ID Regulatory Hubの権限は、世界中の1つ以上の管轄区域の規制で扱われるゲーム機能の分類を表します。権限は、ゲームのCompliance Studioで設定されます。ゲーム機能に一致する各k-ID権限は、Compliance Studioで有効にする必要があります。選択されたk-ID権限は、親が子供にゲームをプレイするための同意を与える際に親に提示されます。
k-ID権限にマッピングされたゲーム内の機能を表示する場合、Sessionをチェックして、機能が有効になっているかどうか、およびプレイヤーがそれをオンにすることが許可されているかを確認する必要があります。
利用可能な権限
以下の権限はCompliance Studioで利用できます:
ソーシャル権限
- オンラインマルチプレイヤー (
multiplayer) - リーダーボードとランキング (
leaderboards-and-rankings) - グループに参加 (
join-groups) - 公開プロフィール (
public-profile) - カスタムアバター (
custom-avatar) - カスタムユーザー名 (
custom-username) - テキストチャット(プライベート) (
text-chat-private) - テキストチャット(公開) (
text-chat-public) - ボイスチャット (
voice-chat) - ビデオチャット (
video-chat) - オンラインステータス (
online-status) - 公開フレンドリスト (
public-friend-list) - フレンドリクエストの送信/承認 (
send-accept-friend-requests) - サードパーティチャットへのリンク (
link-to-third-party-chat) - バーチャルイベント (
virtual-events) - ソーシャルメディアへの共有 (
share-to-social-media)
マーケティング権限
- パーソナライズされた推奨 (
personalized-recommendations) - ターゲット広告 (
targeted-ads):ブラジルではverifiedAgeThreshold: 18が必要 - プロファイリング (
profiling):ブラジルではverifiedAgeThreshold: 18が必要 - プッシュ通知 (
push-notifications) - ダイレクトマーケティング (
direct-marketing):ブラジルではverifiedAgeThreshold: 12が必要 - フォーラム (
forums)
コマース権限
- ゲーム内購入 (
in-game-purchases) - ルートボックス(有料コスメティックのみ) (
loot-boxes-paid-cosmetic-only):ブラジルではverifiedAgeThreshold: 18が必要 - ルートボックス(有料ゲームプレイに影響) (
loot-boxes-paid-gameplay-impacting):ブラジルではverifiedAgeThreshold: 18が必要 - ルートボックス(コンプガチャ) (
loot-boxes-kompu-gacha) - ギフトの送信 (
send-gifts) - シミュレートされたギャンブル (
simulated-gambling) - バーチャル財産所有 (
virtual-property-ownership)
コンテンツ作成またはデータ共有権限
- カメラアクセス (
camera-access) - ゲームクリップ/スクリーンショットの共有 (
share-game-clips-screenshots) - 写真/ビデオ共有 (
photo-video-sharing) - 正確な位置情報共有 (
real-time-location-sharing) - ユーザー生成コンテンツ (
mods) - ゲームプレイストリーミング (
gameplay-streaming) - ゲームプレイ録画 (
gameplay-recording) - サードパーティストリーミングアプリへのリンク (
link-to-third-party-streaming-app)
高度な権限
- AI生成アバター (
ai-generated-avatars) - 拡張現実 (
augmented-reality) - 成熟した言語 (
mature-language) - モーションデータ (
motion-data) - AIチャットボット (
ai-chatbot)
追加の権限のリクエスト
プレイヤーが権限付きのセッションを受信した後、追加の権限を許可したい場合があります。権限は、以下の理由で不許可になる可能性があります:
- 権限がデフォルトで有効になる年齢閾値を下回っている
- 権限の絶対最小必要年齢を下回っている
- 権限は親/保護者の同意がある場合にのみ有効にでき、同意プロセス中に有効にならなかった
- 権限には
verifiedAgeThresholdがあり、まだ満たされていない(セッションに確認済みプラットフォーム年齢シグナルが記録されていない)
セッションアップグレードAPIの使用
/session/upgrade APIを使用して、追加の権限を有効にできます。作成されるチャレンジの種類は権限によって異なります:
PLAYER管理の権限は、チャレンジなしで即座に有効になります。GUARDIAN管理の権限は、信頼できる大人が完了するためのCHALLENGE_PARENTAL_CONSENTチャレンジを作成します。verifiedAgeThresholdを持つ権限は、CHALLENGE_SESSION_UPGRADE_BY_AGE_ASSURANCEチャレンジを作成します。プレイヤーは親の同意ではなくAgeKit+で年齢確認を完了します。完全なフローについては高リスク機能のための年齢保証を参照してください。
リクエストの例
POST /api/v1/session/upgrade
Content-Type: application/json
Authorization: Bearer your-api-key
{
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"requestedPermissions": [
{
"name": "voice-chat"
}
]
}
チャレンジ付きレスポンスの例
権限が保護者の同意を必要とする場合、レスポンスにはチャレンジが含まれます:
{
"status": "CHALLENGE",
"challenge": {
"challengeId": "683409f1-2930-4132-89ad-827462eed9af",
"oneTimePassword": "ABC123",
"type": "CHALLENGE_PARENTAL_CONSENT",
"url": "https://family.k-id.com/authorize?otp=ABC123"
}
}
チャレンジなしのレスポンスの例
リクエストされたすべての権限がプレイヤーによって有効にできる場合、レスポンスには更新されたセッションが含まれます:
{
"status": "PASS",
"session": {
"sessionId": "608616da-4fd2-4742-82bf-ec1d4ffd8187",
"permissions": [
{
"enabled": true,
"managedBy": "PLAYER",
"name": "voice-chat"
}
]
}
}
親の同意を求める
権限を有効にするために信頼できる大人の同意が必要な場合、レスポンスにchallengeが含まれます。このチャレンジは、QRコード、OTP、またはメールを使用して、初期の年齢ゲートプロセスと同様に共有できます。詳細については、チャレンジを参照してください。
品質向上の違いの1つは、メールアドレスを指定せずに/challenge/send-email APIを使用でき、APIがプレイヤーの権限を最も最近承認した信頼できる大人にメールを送信することです。これにより、プレイヤーはメールアドレスを自分で指定せずに権限変更をリクエストできます。APIを呼び出す前に、セッションのhasApproverEmailフラグをチェックして、セッションに既に関連するメールアドレスがあるかどうかを確認できます。関連するメールアドレスが見つからない場合、/challenge/send-email APIはINVALID_EMAILエラーコードで応答し、QRコードの提供、OTP、またはプレイヤーに信頼できる大人のメールアドレスを入力するよう求めるなど、別の方法にフォールバックする必要があります。
アップグレードフローの処理
- 権限をチェック: アップグレードをリクエストする前に、現在のセッションをチェックして、どの権限が利用可能で、どの権限が保護者の同意を必要とするかを確認する
- アップグレードをリクエスト: リクエストされた権限で
/session/upgradeを呼び出す - チャレンジを処理: チャレンジが返された場合、初期のVPCフローと同じワークフローに従う
- セッションを更新: 同意が付与されたら、
/session/getを使用して更新されたセッションを取得する