跳到主要内容

年龄信号

年龄信号是 k-ID 用于确定玩家应该拥有哪些权限和功能的玩家年龄信息。开发者从他们拥有的任何来源提供年龄信号,k-ID 处理这些信号以确保合规性。

年龄信号的类型

类型描述
出生日期由玩家直接提供。接受的格式:YYYYYYYY-MMYYYY-MM-DD
自我声明的年龄玩家通过年龄门控输入的近似年龄
年龄估计来自面部年龄估计技术的估计年龄
平台年龄信号来自游戏平台(Apple iOS、Google Play、Xbox、Meta Horizon 或 k-ID)的年龄数据。请参阅平台年龄信号
已验证年龄通过 ID 文档验证或先前的 k-ID 验证记录确认的年龄

k-ID 如何处理年龄信号

  • 开发者提供年龄信号:如果您已从任何来源(平台、现有账户、先前会话)收集了年龄信息,请将其传递给 k-ID。k-ID 会合并所有可用信号并使用最保守的结果。
  • CDK 提供收集接口:如果您使用 CDK,k-ID 提供年龄门控 UI 和收集流程。
  • VPC 和年龄验证处理信号:这些接口验证并对您提供的信号采取行动,以确定玩家可以访问的内容。

平台年龄信号

游戏平台可以在游戏启动时发送年龄数据。将此信号传递给 k-ID 可以:

  • 对于平台年龄信号被视为已验证的玩家,跳过年龄门控
  • 在高风险权限(例如,巴西的开箱)上满足年龄验证阈值,无需单独的步骤
  • 当平台年龄与自我声明的年龄相矛盾时检测年龄冲突

有关集成详细信息、支持的平台、已验证的声明类型以及 PlatformAgeSignal 请求的形式,请参阅平台年龄信号

主要年龄与平台年龄之间的年龄冲突

当主要年龄(出生日期、自我声明的年龄或 kuid)和平台年龄信号都发送到 POST /age-gate/check 时,k-ID 可以比较两者:

  • 平台显示玩家比其自我声明的年龄类别年轻:返回 400 AGE_CONFLICT,以便您的游戏可以处理这种差异
  • 平台显示玩家比其自我声明的年龄年长:没有冲突;k-ID 使用更保守(更年轻)的年龄
  • 相同的年龄类别:没有冲突;请求正常进行
年龄冲突检测是可选启用的

此功能默认未启用。请联系 k-ID 为您的产品启用年龄冲突检测。

即使未启用冲突检测,k-ID 在权限解析时始终使用两个年龄中较低的一个:未经验证的平台信号仍然可以限制访问,但不能授予访问权限。

使用平台信号约束年龄门控

为了从一开始就防止年龄冲突,请使用平台信号来限制玩家在年龄门控中可以输入的年龄。/age-gate/get-requirements 响应包括两个司法管辖区特定的边界值:

  • digitalConsentAge:玩家所在司法管辖区的数字同意年龄
  • civilAge:民事成年年龄

使用这些来约束您的年龄门控 UI:

平台类别限制输入为
儿童(ageLow < digitalConsentAge仅低于 digitalConsentAge 的年龄
青少年(ageLowdigitalConsentAgecivilAge 之间)digitalConsentAgecivilAge 之间的年龄
成人(ageLowcivilAge等于或大于 civilAge 的年龄

这确保玩家不能声称与平台已经报告的年龄直接矛盾的年龄。

先前验证的年龄

如果您已经知道玩家的年龄(例如,他们已登录到您的平台保存有出生日期的账户),则不需要显示年龄门控。直接使用先前验证的 dateOfBirth 调用 POST /age-gate/check。k-ID 将根据该信息创建会话,而不会提示玩家输入。

年龄信号收集方法

允许收集年龄信号的方法因司法管辖区而异。GET /age-gate/get-requirements 响应包括一个 approvedAgeCollectionMethods 数组:

方法描述
date-of-birth完整出生日期(YYYY-MM-DD
age-slider年龄范围或近似年龄选择
platform-account来自现有平台账户的年龄验证

显示年龄门控时,请使用中性门控(未预先选择年龄),以便玩家必须主动设置年龄。如果使用滑块,ESRB 建议将最大显示年龄限制为 35 岁。

使用年龄状态

虽然权限控制单独的功能,但某些游戏需要更粗略的玩家体验,与整体年龄相关。Session 对象包括一个 ageStatus 字段:

含义
DIGITAL_MINOR低于数字同意年龄
DIGITAL_YOUTH等于或大于数字同意年龄,但低于民事成年年龄
LEGAL_ADULT等于或大于民事成年年龄

例如,游戏可能会对任何不是 LEGAL_ADULT 的玩家抑制所有游戏内广告,独立于任何特定的权限设置。