跳到主要内容

平台年龄信号

游戏平台(Apple iOS、Google Play、Xbox、Meta Horizon 以及 k-ID 本身)可以提供关于玩家的年龄数据。这些数据可以连同自报年龄一起传递给 k-ID,或者取代自报年龄。k-ID 使用这些数据在适当时抑制年龄门控、解决年龄冲突,并且当信号被认为已验证时,无需额外验证步骤即可满足年龄验证要求。

平台年龄信号与高风险功能的年龄保证协同工作。例如,已验证的 Apple iOS 信号既可以跳过年龄门控,又可以在巴西解锁战利品箱权限,无需单独的验证步骤。

从这里开始

在以下情况下使用此功能集:

  • 重用平台已知的玩家年龄信息
  • 为已验证成人信号跳过年龄门控
  • 解锁高风险权限(如巴西战利品箱和定向广告),无需再次要求玩家验证
  • 检测平台年龄信号与自报年龄冲突的情况

快速集成路径

如果您的游戏有…发送给 k-ID通常发生的事
来自 Apple iOS、Google Play 或 k-ID 的已验证成人信号GET /age-gate/get-requirementsPOST /age-gate/check 中都传入平台信号可以跳过年龄门控,已验证年龄权限可立即启用
未验证信号,如 Xbox 或 Meta Horizonget-requirementscheck 中传入平台信号k-ID 仍可将其用于保守年龄解析,但不能满足已验证年龄权限
基于类别的平台信号直接传入类别,或先用 POST /age-gate/get-platform-age-range 转换k-ID 将类别解析为特定司法管辖区的年龄范围
完全没有平台信号您的常规年龄门控输入适用标准年龄门控流程,高风险权限可能之后需要年龄保证

API 映射

以下是开发者在集成过程中最常用的端点:

端点何时调用重要性
GET /age-gate/get-requirements显示年龄门控之前告知您是否显示门控以及是否有已验证年龄权限仍需保证
GET /session/getcheck 或挑战完成后刷新权限并检查 ageVerification
POST /age-gate/check始终在获取玩家年龄输入后调用创建或更新会话,并在已验证平台信号允许时在会话上记录已验证年龄
POST /session/upgrade玩家尝试使用高风险功能时立即启用所请求的权限,或创建年龄保证挑战
POST /age-gate/get-platform-age-range仅用于基于类别的平台信号将平台类别转换为 ageLowageHigh

端到端流程

推荐请求顺序

  1. 在启动时获取平台信号。 如果平台公开了年龄数据,请尽早获取,以便在 get-requirementscheck 中都能使用。
  2. 调用 GET /age-gate/get-requirements 这告知您是否显示年龄门控以及是否有权限仍需已验证年龄。
  3. 始终调用 POST /age-gate/check 即使跳过门控,您仍需调用 check 来创建或更新会话。
  4. 存储 sessionId 和当前权限。 这是游戏应用于控制功能访问的依据。
  5. 仅在需要时调用 POST /session/upgrade 当玩家主动尝试使用尚未启用的高风险功能时执行此操作。
提示

如果 shouldDisplayfalse 但您实际上没有可发送的平台信号,请以 age: 1 调用 POST /age-gate/check 作为保守后备。

POST /age-gate/check 如何使用平台信号

关键概念

PlatformAgeSignal 对象

描述平台报告年龄信号的统一对象。提供 category 同时提供 ageLowageHigh,不要两者都提供。

{
"name": "apple-ios",
"ageLow": 18,
"ageHigh": 25,
"declarationType": "governmentIDChecked",
"verificationId": null
}
字段类型必填描述
namestring平台标识符:apple-iosgoogle-playxboxmeta-horizonk-id
categorystring平台特定年龄类别(例如 digital-youthTNteen
ageLowinteger平台提供的最低年龄(岁)。应与 ageHigh 配对使用。
ageHighinteger平台提供的最高年龄(岁)。应与 ageLow 配对使用。
declarationTypestring平台确定年龄的方式(例如 governmentIDCheckedVERIFIED
verificationIdstring (UUID)仅用于 k-id 信号:引用已完成的 k-ID 验证记录

支持的平台

平台接受的输入已验证声明类型备注
apple-iosageLow + ageHighpaymentCheckedgovernmentIDCheckedguardianPaymentCheckedguardianGovernmentIDChecked类别输入返回 400
google-playageLow + ageHighVERIFIEDSUPERVISED类别输入返回 400
Xboxcategorychildteenadult无(不验证年龄要求)范围取决于司法管辖区
meta-horizoncategoryCHTNAD无(不验证年龄要求)范围取决于司法管辖区(参见 Meta Horizon
k-IDcategorydigital-minordigital-youthadultKIDVerified(服务器解析)已验证声明需要来自 Compliance Studio 中同一组织的有效 verificationId

已验证和未验证信号

平台信号被认为已验证仅当 declarationType 在该平台的已验证集合中时。已验证信号可以:

  • 抑制年龄门控shouldDisplay = false),当信号表明是成人(ageLow >= civilAge)时
  • 满足权限的年龄验证阈值(例如,无需单独验证步骤即可启用战利品箱)
  • 在会话上记录 ageVerification,用于未来的权限检查

未验证信号(例如 Xbox、Meta Horizon,或自声明的 Apple 或 Google 信号)对于年龄冲突检测和保守年龄解析仍然有用,但无法绕过验证要求。

已验证年龄阈值

某些权限在启用前需要经过验证的年龄。在这些情况下,权限包含 verifiedAgeThreshold 整数字段。

例如,在巴西,loot-boxes-paid-cosmetic-onlyloot-boxes-paid-gameplay-impactingtargeted-adsprofiling 需要已验证年龄 18direct-marketing 需要已验证年龄 12。如果玩家的有效年龄低于阈值,权限变为 PROHIBITED。如果玩家满足阈值但尚未验证年龄,权限保持 enabled: false,直到:

年龄冲突检测

当主要年龄参数(dateOfBirthagekuid)和 platformAgeSignal 都提供给 /age-gate/check 时,系统比较它们的年龄类别:

  • 平台比自报年龄小(例如,平台显示"儿童"但玩家说"成人"):返回 AGE_CONFLICT(400 错误)
  • 平台比自报年龄大: 允许;使用更保守(更低)的年龄
  • 相同类别: 无冲突;正常进行
信息

年龄冲突检测是每个开发者的功能标志。联系 k-ID 以启用。

后续步骤