年龄信号
年龄信号是关于用户年龄的信息,可用于确定他们应该拥有哪些权限和功能。开发者根据他们收集的内容向 k-ID 提供年龄信号,k-ID 的接口(VPC 或年龄验证)验证并处理这些年龄信号以确保合规性。
什么是年龄信号?
年龄信号可以来自开发者可能访问的各种来源:
- 出生日期:用户的出生日期,可以以
YYYY、YYYY-MM或YYYY-MM-DD等格式提供 - 自我声明的年龄:用户直接提供的年龄信息(例如,通过年龄门控)
- 年龄估计:来自面部年龄估计技术的估计年龄
- 平台年龄信号:游戏启动时游戏平台(Meta、Xbox、PlayStation)提供的年龄信息
- 已验证年龄:通过 ID 文档验证或其他可信方法验证的年龄
k-ID 如何处理年龄信号
k-ID 提供用于收集和验证年龄信号的接口:
- 开发者提供年龄信号:如果开发者从任何来源(平台、现有账户)收集了年龄信息,他们可以将其提供给 k-ID
- CDK 提供收集接口:如果开发者使用 CDK,k-ID 提供接口来收集 VPC 的年龄信号
- VPC 和年龄验证验证年龄信号:这些接口验证和处理开发者提供的年龄信号
使用平台年龄信号
许多游戏平台(Meta、Xbox、PlayStation)在游戏启动时向游戏发送特定于平台的年龄信号。这些信号提供已由平台验证的用户年龄信息。
处理平台年龄信号
当游戏显示年龄门控时,玩家给出的年龄可能超出平台特定年龄信号给出的范围。在这种情况下,为了合规,开发者应该假设两个值中较低的值。这确保了如果平台表明用户比他们声称的年龄更小,平台信号在合规目的上优先。
由开发者处理年龄信号之间的差异,并在存在冲突时使用更严格的年龄来确保合规性。
使用平台信号约束年龄门控
为了防止首先出现差异,游戏可以使用平台年龄信号来限制玩家在年龄门控中可以给出的可能年龄。为此,有两个重要字段,digitalConsentAge 和 civilAge,它们从 /age-gate/get-requirements API 返回。
使用这些字段,您可以将年龄门控约束为:
- 数字未成年人:只允许数字未成年人的年龄达到数字同意年龄(
digitalConsentAge) - 数字青年(青少年):只允许数字同意年龄(
digitalConsentAge)和民事年龄(civilAge)之间的年龄值 - 合法成年人:允许民事年龄(
civilAge)或更大的年龄
这种方法确保玩家不能声称与平台已验证年龄信号冲突的年龄,减少差异并确保合规性。
实施示例
当收到平台年龄信号时,开发者可以使用它来:
- 根据平台信号预填充或约束年龄门控
- 根据平台信号验证用户输入
- 当存在差异时使用更严格的年龄
开发者应该通过使用更严格的年龄来处理年龄信号之间的任何冲突,以确保合规性。
先前验证的年龄
有时游戏开发者在玩家开始新游戏时已经知道玩家的年龄。这通常是因为玩家使用游戏开发者已知的身份登录游戏。在这种情况下,游戏可以避免显示年龄门控,而是调用 /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(民事年龄)。