본문으로 건너뛰기

연령 신호

연령 신호는 사용자가 접근해야 하는 권한과 기능을 결정하는 데 사용할 수 있는 사용자의 연령에 대한 정보입니다. 개발자는 수집한 내용을 기반으로 k-ID에 연령 신호를 제공하고, k-ID의 인터페이스(VPC 또는 연령 확인)는 이러한 연령 신호를 확인하고 처리하여 규정 준수를 보장합니다.

연령 신호란 무엇인가요?

연령 신호는 개발자가 접근할 수 있는 다양한 소스에서 올 수 있습니다:

  • 생년월일: 사용자의 생년월일로 YYYY, YYYY-MM 또는 YYYY-MM-DD 형식으로 제공할 수 있습니다
  • 자가 증명 연령: 사용자가 직접 제공한 연령 정보(예: 연령 게이트를 통해)
  • 연령 추정: 얼굴 연령 추정 기술에서 추정된 연령
  • 플랫폼 연령 신호: 게임이 시작될 때 게임 플랫폼(Apple iOS, Google Play, Meta Horizon, Xbox)에서 제공하는 연령 정보
  • 확인된 연령: ID 문서 확인 또는 기타 신뢰할 수 있는 방법을 통해 확인된 연령

k-ID가 연령 신호를 처리하는 방법

k-ID는 연령 신호를 수집하고 확인하기 위한 인터페이스를 제공합니다:

  • 개발자가 연령 신호 제공: 개발자가 어떤 소스(플랫폼, 기존 계정)에서든 연령 정보를 수집한 경우 k-ID에 제공할 수 있습니다
  • CDK가 수집 인터페이스 제공: 개발자가 CDK를 사용하는 경우 k-ID는 VPC를 위한 연령 신호를 수집하는 인터페이스를 제공합니다
  • VPC 및 연령 확인이 연령 신호 확인: 이러한 인터페이스는 개발자가 제공한 연령 신호를 확인하고 처리합니다

플랫폼 연령 신호 사용

정보

많은 게임 플랫폼이 게임이 시작될 때 연령 신호를 게임에 보냅니다. 이러한 신호는 플랫폼에서 확인한 사용자에 대한 연령 정보를 제공합니다. k-ID는 Apple iOS, Google Play, Meta Horizon, Xbox의 플랫폼 연령 신호를 지원합니다.

플랫폼 연령 신호 작동 방식

플랫폼 연령 신호는 /age-gate/check 엔드포인트의 platformAgeSignal 필드를 통해 k-ID에 전달됩니다. 플랫폼에 따라 두 가지 형식 중 하나로 신호를 제공합니다:

  • 연령 범위 (ageLowageHigh): 플랫폼이 보고한 숫자 연령 범위. Apple iOSGoogle Play에 사용합니다.
  • 카테고리 (category): 플랫폼별 연령 카테고리 문자열. Meta HorizonXbox에 사용합니다.

모든 플랫폼 연령 신호에는 플랫폼을 식별하는 name 필드(apple-ios, google-play, meta-horizon 또는 xbox)가 필요합니다. 이 두 형식은 상호 배타적이며, 동일한 요청에 categoryageLow/ageHigh를 모두 제공하면 오류가 반환됩니다.

Apple iOS 및 Google Play: 연령 범위 신호

Apple iOS와 Google Play는 최소 및 최대 연령이 포함된 연령 범위 신호를 제공합니다. 이러한 플랫폼을 사용할 때는 ageLowageHigh를 직접 전달합니다. 두 필드는 함께 제공해야 하며, 값은 0 ≤ ageLow ≤ ageHigh ≤ 100을 충족해야 합니다:

{
"jurisdiction": "US",
"platformAgeSignal": {
"name": "apple-ios",
"ageLow": 16,
"ageHigh": 18,
"declarationType": "guardianPaymentChecked"
}
}

선택적 declarationType 필드는 플랫폼이 사용자의 연령을 어떻게 확인했는지에 대한 보충 정보를 제공합니다:

Meta Horizon 및 Xbox: 카테고리 신호

Meta Horizon과 Xbox는 특정 연령 범위가 아닌 연령 카테고리를 제공합니다. 이러한 플랫폼의 경우 category 문자열을 전달합니다:

{
"jurisdiction": "GB",
"platformAgeSignal": {
"name": "meta-horizon",
"category": "CH"
}
}

예를 들어, Meta Horizon은 GetAgeCategory API를 제공하며 CH(아동, 10-12세), TN(청소년, 13-17세) 또는 AD(성인, 18세 이상)과 같은 카테고리를 반환합니다.

/age-gate/get-platform-age-range 엔드포인트를 사용하여 플랫폼의 연령 카테고리를 /age-gate/check를 호출하기 전에 관할권별 연령 범위(ageLowageHigh)로 변환할 수도 있습니다.

참고

Meta Horizon은 연령 데이터가 없는 계정에 대해 UNKNOWN을 반환할 수 있습니다. 이 경우 k-ID는 연령 범위를 확인할 수 없으므로 플레이어로부터 직접 연령을 수집하는 방식으로 대체해야 합니다.

연령 충돌 처리

게임이 기본 연령 신호(생년월일 또는 자가 증명 연령 등)와 플랫폼 연령 신호를 모두 제공하는 경우, k-ID는 두 신호 간의 충돌을 감지할 수 있습니다. 제품에 대해 연령 충돌 감지가 활성화된 경우, 플랫폼이 사용자를 주장한 연령보다 더 어린 연령 카테고리에 배치하면 /age-gate/check 엔드포인트가 400 AGE_CONFLICT 오류를 반환합니다.

예를 들어, 플레이어가 18세임을 나타내는 생년월일을 제공했지만 플랫폼이 0-12세의 연령 범위를 보고하는 경우(디지털 미성년자 카테고리에 해당), k-ID는 충돌을 감지하고 게임이 불일치를 처리할 수 있도록 오류를 반환합니다.

Effective age for permissions

권한을 결정할 때 k-ID는 항상 플레이어의 주장한 연령과 플랫폼 신호의 ageLow 중 더 보수적인(더 어린) 연령을 사용합니다. 이는 플랫폼 신호가 연령 확인 목적으로 신뢰할 수 있는 것으로 간주되지 않는 경우에도 적용됩니다. 신뢰할 수 없는 신호도 권한을 제한할 수는 있지만 부여할 수는 없습니다.

플랫폼 신호로 연령 게이트 제한

처음부터 연령 충돌을 방지하기 위해 게임은 플랫폼 연령 신호를 사용하여 플레이어가 연령 게이트에서 제공할 수 있는 가능한 연령을 제한할 수 있습니다. 이를 위해 /age-gate/get-requirements API에서 반환되는 digitalConsentAgecivilAge라는 두 가지 중요한 필드가 있습니다.

이러한 필드를 사용하여 연령 게이트를 다음으로 제한할 수 있습니다:

  • 디지털 미성년자: 디지털 동의 연령(digitalConsentAge)까지의 디지털 미성년자 연령만 허용
  • 디지털 청소년: 디지털 동의 연령(digitalConsentAge)과 민사 연령(civilAge) 사이의 연령 값만 허용
  • 법적 성인: 민사 연령(civilAge) 이상의 연령 허용

이 접근 방식을 통해 플레이어가 플랫폼의 확인된 연령 신호와 충돌하는 연령을 주장할 수 없어 불일치를 줄이고 규정 준수를 보장합니다.

신뢰할 수 있는 플랫폼 신호와 연령 확인 임계값

일부 권한은 활성화되기 전에 신뢰할 수 있는 플랫폼 신호로부터의 확인된 연령이 필요합니다. 이는 권한의 verifiedAgeThreshold 필드에 의해 제어되며, 필요한 최소 확인 연령을 지정합니다.

예를 들어, 브라질에서는 루트 박스 권한에 신뢰할 수 있는 출처로부터 18세 이상의 확인된 연령이 필요합니다. verifiedAgeThreshold가 있는 권한은 항상 managedBy: "PLAYER"이며, 보호자가 전환할 수 없습니다. 신뢰할 수 있는 출처의 연령 확인만이 이를 잠금 해제할 수 있습니다.

권한에 verifiedAgeThreshold가 있는 경우:

  • 플레이어의 유효 연령(주장한 연령과 플랫폼의 ageLow 중 더 낮은 값)이 임계값 미만인 경우, 권한은 PROHIBITED로 설정되며 어떤 흐름으로도 활성화할 수 없습니다. 챌린지가 발행되지 않습니다
  • 플레이어의 유효 연령이 임계값을 충족하거나 초과하 신뢰할 수 있는 플랫폼 신호가 제공된 경우, 권한이 활성화됩니다
  • 플레이어의 유효 연령이 임계값을 충족하거나 초과하지만 신뢰할 수 있는 플랫폼 신호가 없는 경우, 플레이어에게 연령 보증 챌린지를 통한 연령 확인이 요청됩니다

어떤 플랫폼 신호가 신뢰할 수 있나요?

모든 플랫폼 신호가 동일한 수준의 신뢰도를 가지는 것은 아닙니다. 현재 다음이 신뢰할 수 있는 것으로 간주됩니다:

  • Apple iOS: 선언 유형 paymentChecked, governmentIDChecked, guardianPaymentChecked 또는 guardianGovernmentIDChecked
  • Google Play: 선언 유형 VERIFIED 또는 SUPERVISED

Meta Horizon 및 Xbox의 신호는 현재 연령 확인 임계값 목적으로 신뢰할 수 있는 것으로 간주되지 않습니다.

플랫폼 연령 신호를 통한 세션 업그레이드

플레이어가 verifiedAgeThreshold가 있는 권한을 활성화하려는 경우, /session/upgrade API는 요청된 권한과 함께 platformAgeSignal을 수락합니다. 결과는 신호에 따라 달라집니다:

  • 신뢰할 수 있는 신호가 임계값을 충족: 권한이 즉시 활성화됩니다(상태 PASS), 챌린지가 생성되지 않습니다
  • 신뢰할 수 있는 신호가 없지만 플레이어의 연령이 임계값을 충족: 플레이어가 연령을 확인할 수 있도록 연령 보증 챌린지가 생성됩니다
  • 플레이어의 유효 연령이 임계값 미만: 권한은 PROHIBITED로 유지되며 챌린지가 발행되지 않습니다. 세션이 그대로 반환됩니다

이전에 확인된 연령

때때로 게임 개발자는 플레이어가 새 게임을 시작할 때 플레이어의 연령을 이미 알고 있습니다. 이는 일반적으로 플레이어가 게임 개발자에게 알려진 신원으로 게임에 로그인했기 때문입니다. 이 경우 게임은 연령 게이트를 표시하지 않고 대신 위치와 이전에 확인된 생년월일을 전달하여 /age-gate/check를 호출할 수 있습니다.

연령 신호 수집 방법

연령 신호를 수집하는 데 사용할 수 있는 방법은 관할권에 따라 다릅니다. /age-gate/get-requirements API는 현재 관할권에서 허용되는 방법을 지정하는 approvedAgeCollectionMethods 배열을 반환합니다:

  • date-of-birth: 전체 생년월일(YYYY-MM-DD)
  • age-slider: 연령 범위 또는 대략적인 연령 선택
  • platform-account: 기존 플랫폼 계정 연령 확인 사용

연령 게이트를 표시할 때 모범 사례는 연령이 이미 설정되지 않은 "중립 연령 게이트"를 표시하여 사용자가 연령을 설정하기 위해 조치를 취해야 하도록 하는 것입니다. 또한 연령 게이트가 연령 값에 슬라이더를 사용하는 경우 ESRB에서는 슬라이더 연령 게이트의 최대 연령이 35세여야 한다고 권장합니다.

연령 상태 사용

k-ID는 특정 기능과 관련된 풍부한 권한 설정을 제공하지만, 일부 게임은 특정 기능과 독립적으로 더 뚜렷한 플레이어 경험을 만들어야 할 수 있습니다. 예를 들어 게임은 플레이어가 법적 성인이 아닌 경우 게임 내 광고를 전혀 표시하지 않을 수 있습니다. 이 경우 게임은 SessionageStatus 필드를 확인할 수 있습니다. 이 필드는 DIGITAL_MINOR(디지털 동의 연령 미만), DIGITAL_YOUTH(민사 연령 미만이지만 디지털 동의 연령보다 큼) 또는 LEGAL_ADULT(민사 연령)일 수 있습니다.