权限
k-ID 监管中心中的权限代表在全球一个或多个司法管辖区的法规中涉及的游戏功能分类。权限在 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: "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
满足权限阈值有两种方式:
-
年龄门控时的已验证平台信号。 如果平台年龄信号传递给
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 监管中心中的权限代表在全球一个或多个司法管辖区的法规中涉及的游戏功能分类。权限在 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。此挑战可以通过使用二维码、OTP 或电子邮件与初始年龄门控流程类似地共享。更多信息,请参阅 挑战。
一个生活质量差异是可以在不指定电子邮件地址的情况下使用 /challenge/send-email API,API 会向最近为玩家批准权限的可信成人发送电子邮件。这使玩家能够在不自己指定电子邮件地址的情况下请求权限更改。您可以在调用 API 之前检查 Session 中的 hasApproverEmail 标志,以确定会话是否已有关联的电子邮件地址。如果未找到关联的电子邮件地址,/challenge/send-email API 会响应 INVALID_EMAIL 错误代码,您必须回退到另一种方法,例如提供二维码、OTP 或要求玩家输入其可信成人的电子邮件地址。
处理升级流程
- 检查权限:在请求升级之前,检查当前会话以查看哪些权限可用以及哪些需要监护人同意
- 请求升级:使用请求的权限调用
/session/upgrade - 处理挑战:如果返回挑战,遵循与初始 VPC 流程相同的工作流
- 更新会话:一旦授予同意,使用
/session/get检索更新的会话