重要概念
要将 k-ID 集成到游戏中,需要完成以下步骤:
获取玩家位置和出生日期
为了实现 k-ID 年龄验证和同意工作流程,游戏必须获取有关玩家的两项信息:玩家的位置(或司法管辖区)以及玩家的出生日期。
位置
虽然玩家可以自行声明其位置,但获取位置信息的首选方法是调用游戏中的服务,该服务通过玩家的 IP 地址提供信息。位置字符串可以是 ISO 3166-1 alpha-2 国家代码(例如 US)或 ISO 3166-2 子区域代码(例如 US-CA)。建议尽可能提供子区域代码,因为即使某个地区当前没有本地化法规,将来也可能会有。通过提供子区域代码,可以确保随着法规的变化调整玩家的权限。
注意事项:
- 某些游戏可能已经实施了检测和防止位置欺骗的保护措施(例如通过 VPN)。请确保发送到 k-ID API 的位置已经过这些工具验证,以避免配置错误。
- 作为最佳实践,当玩家首次启动游戏时,其司法管辖区被认为是静态的,除非客户提交支持请求,否则无法更改——这样可以避免玩家通过“论坛购物”启用其司法管辖区中本应被禁用 的功能。
获取玩家 IP 地址位置的一个示例是调用类似 https://ipinfo.io/json 的服务,其结果类似于以下 JSON:
{
"ip": "136.62.180.67",
"hostname": "XX-XX-XX-XX.googlefiber.net",
"city": "Austin",
"region": "Texas",
"country": "US",
"timezone": "America/Chicago",
"readme": "https://ipinfo.io/missingauth"
}
出生日期
出生日期是一个字符串,可以采用以下任意格式提供给 API:YYYY
、YYYY-MM
或 YYYY-MM-DD
。是否要求游戏玩家在首次开始游戏时提供年龄取决于司法管辖区。如果司法管辖区要求玩家提供年龄,则应显示一个用户界面元素以收集出生日期,这被称为 年龄门。
显示年龄门时的最佳实践是显示一个“中性年龄门”,即不预设任何年龄值,用户必须手动设置年龄。此外,如果年龄门使用滑块选择年龄值,ESRB 建议滑块年龄门中的最大年龄应为 35。
如果当前司法管辖区不需要显示年龄门,玩家可以直接继续,无需进一步检查,其出生日期将未分配。
确保玩家年龄
在允许的司法管辖区中,可以使用 k-ID 面部年龄估算功能来估算玩家的年龄,以确定其是否与玩家在年龄门中提供的出生日期相符。使用面部年龄估算将显著提高玩家年龄真实性。采用此方法时,需要处理以下几种情况:
- 面部年龄估算的年龄范围包含或高于玩家提供的出生日期。在这种情况下,可以使用提供的出生日期。
- 年龄范围低于玩家声明的年龄。在这种情况下,建议假设年龄范围中的最低年龄。用户应被告知其年龄不匹配,然后可以要求玩家重新声明在范围内的较低年龄,或对年龄估算提出申诉。
处理未获得家长同意的未成年用户
如果玩家提供的年龄需要家长同意,游戏必须决定在家长同意之前的处理方式。可能的做法包括完全阻止访问并等待家长同意挑战界面,或提供游戏的“数据精简版”体验。
在以下示例中,玩家在显示同意挑战窗口时被阻止继续。
将 k-ID 权限与游戏功能匹配
k-ID 全球合规数据库中的权限表示游戏功能的分类,这些功能在全球一个或多个司法管辖区的法规中有所涉及。权限在厂商门户中为游戏配置。与游戏功能匹配的每个 k-ID 权限都应在 k-ID 厂商门户中启用(如下图所示)。选择的 k-ID 权限将 在家长为孩子授予游戏同意时呈现给家长,用于启用或禁用。
以下是家长在 k-ID 家庭门户中授予同意时看到的示例:
显示映射到 k-ID 权限的游戏功能时,应检查 Session
,以确定功能是否启用,以及玩家是否允许启用该功能。有关如何处理 k-ID 权限的更多详细信息,请参阅文档中的权限部分。
下表列出了厂商门户中可管理的权限:
权限组Group | 权限Permission |
---|---|
ai-customization | ai-generated-avatars |
ai-chatbot | |
communication | text-chat-private |
voice-chat | |
video-chat | |
link-to-third-party-chat | |
community | forums |
chat-rooms-public | |
join-groups | |
virtual-events | |
content-moderation | mature-language |
mods | |
content-sharing | gameplay-streaming |
gameplay-recording | |
share-game-clips-screenshots | |
link-to-third-party-streaming-app | |
game-controls | haptic-feedback |
movement-speed-adjustment | |
smooth-locomotion | |
disable-boundary-settings | |
augmented-reality | |
gameplay | multiplayer |
pvp | |
leaderboard-and-rankings | |
marketing | direct-marketing |
targeted-ads | |
contextual-ads | |
notification | push-notifications |
disable-safety-prompts | |
privacy | profiling |
motion-data | |
camera-access | |
real-time-location-sharing | |
photo-video-sharing | |
profile-customization | custom-username |
custom-avatar | |
profile-visibility | public-profile |
online-status | |
recommendations | personalized-recommendations |
social | public-friend-list |
send-accept-friend-requests | |
social-media | share-to-social-media |
link-to-social-media-account | |
virtual-economy | in-game-purchases |
in-game-currency | |
loot-boxes | |
send-gifts | |
auctions | |
virtual-property-ownership | |
virtual-marketplace |