跳到主要内容

重要概念

要将 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:YYYYYYYY-MMYYYY-MM-DD。游戏所在的司法管辖区决定是否必须在玩家首次开始游戏时询问其年龄。如果该司法管辖区要求玩家提供年龄,则应显示一个用于收集出生日期的用户界面元素。这被称为 年龄门槛

image

在显示年龄门槛时,最佳实践是显示一个“中立年龄门槛”,即不预先设置任何年龄,用户必须采取行动设置一个年龄。此外,如果年龄门槛使用滑块来设置年龄值,ESRB 建议滑块的最大年龄应为 35 岁。

如果当前司法管辖区不需要显示年龄门槛,则玩家可以继续进行,且其出生日期将不会被分配。

确认玩家年龄

在允许的司法管辖区,可以使用 k-ID 面部年龄估算功能来估算玩家的年龄,以确定其是否与玩家在年龄门槛中提供的出生日期匹配。使用面部年龄估算将大大增加玩家如实报告年龄的可能性。在使用这种方法时,需要处理以下几种情况:

  • 面部年龄估算的年龄范围包含或高于玩家提供的出生日期。在这种情况下,可以使用提供的出生日期。
  • 面部年龄估算的年龄范围低于自报年龄。在这种情况下,建议假设年龄范围中的最低年龄。应通知用户年龄不匹配,然后可以要求玩家重新声明一个在范围内的较低年龄,或者对年龄估算结果提出上诉。

处理未获得家长同意的未成年用户

如果玩家提供的年龄需要家长同意,游戏必须决定在家长同意之前该如何处理。有几种可能的处理方式,包括完全阻止访问并等待家长同意挑战屏幕,或允许玩家有限访问游戏的“数据精简”版本。

在下图示例中,玩家在显示同意挑战窗口时被阻止继续。

Challenge

将 k-ID 权限与游戏功能匹配

k-ID 全球合规数据库中的权限代表了全球一个或多个司法管辖区法规所涉及的游戏功能分类。这些权限是在发布者门户中为游戏配置的。每个与游戏功能匹配的 k-ID 权限应在 k-ID 开发者门户中启用(如下图所示)。家长在为孩子授予游戏许可时会看到这些已选择的 k-ID 权限,并可以启用或禁用。

Dev Portal Permissions

以下是家长在 k-ID 家庭门户中授予同意时看到的权限示例。

Family Permissions

在显示与 k-ID 权限映射的游戏功能时,应检查 Session 以查看该功能是否启用,以及玩家是否被允许打开它。有关如何处理 k-ID 权限的更多详细信息,请参阅文档中的 Permissions 部分。

下表列出了可以在发布者门户中管理的可用权限:

组别权限
ai-customizationai-generated-avatars
ai-chatbot
communicationtext-chat-private
voice-chat
video-chat
link-to-third-party-chat
communityforums
chat-rooms-public
join-groups
virtual-events
content-moderationmature-language
mods
content-sharinggameplay-streaming
gameplay-recording
share-game-clips-screenshots
link-to-third-party-streaming-app
game-controlshaptic-feedback
movement-speed-adjustment
smooth-locomotion
disable-boundary-settings
augmented-reality
gameplaymultiplayer
pvp
leaderboard-and-rankings
marketingdirect-marketing
targeted-ads
contextual-ads
notificationpush-notifications
disable-safety-prompts
privacyprofiling
motion-data
camera-access
real-time-location-sharing
photo-video-sharing
profile-customizationcustom-username
custom-avatar
profile-visibilitypublic-profile
online-status
recommendationspersonalized-recommendations
socialpublic-friend-list
send-accept-friend-requests
social-mediashare-to-social-media
link-to-social-media-account
virtual-economyin-game-purchases
in-game-currency
loot-boxes
send-gifts
auctions
virtual-property-ownership
virtual-marketplace