다중 제품 승인
다중 제품 승인을 사용하면 단일 동의 흐름에서 여러 제품을 부모에게 승인 요청으로 제시할 수 있습니다. 이를 통해 신뢰할 수 있는 성인 동의 프로세스의 마찰을 줄여 개인정보 보호 규정을 준수하면서 가족이 게임과 서비스에 더 쉽게 액세스할 수 있습니다.
이점
- 신뢰할 수 있는 성인 마찰 감소: 신뢰할 수 있는 성인이 각 제품에 대해 별도의 동의 흐름을 거치는 대신 여러 제품을 한 번에 승인할 수 있습니다
- 아동 경험 개선: 아동이 동시에 여러 제품에 액세스하여 대기 시간과 중단된 동의 흐름을 줄입니다
- 유연한 구성: 플랫폼 아키텍처와 사용자 요구 사항을 기반으로 함께 번들로 묶을 제품 선택
- 규정 준수 유지: 번들의 모든 제품이 개별 권한 설정과 규제 요구 사항을 유지합니다

사용 사례
다중 제품 승인은 다음에 이상적입니다:
- 플랫폼 + 게임: 여러 게임이 의존하는 계정 시스템이나 플랫폼이 있는 경우
- 게임 컬렉션: 가족이 일반적으로 함께 액세스하려는 여러 관련 게임을 제공하는 경우
- 계층형 액세스: 동시에 승인할 수 있는 핵심 서비스와 선택적 추가 기능이 있는 경우
구성 옵션
다중 제품 승인을 구현하는 세 가지 방법이 있습니다:
1. 제품 번들링(정적 구성)
Compliance Studio를 통해 동의 흐름에서 자동으로 함께 나타나는 제품을 구성합니다.
구성 방법:
- Compliance Studio에서 제품 선택
- 구성으로 이동하고 다중 제품 승인 섹션 내에서 편집 클릭
- 다중 제품 승인 활성화 옆의 토글 클릭
- 현재 제품과 번들로 묶을 제품 선택
- 테스트로 푸시 클릭

신뢰할 수 있는 성인 경험 - 부모가 기본 제품에 대한 동의 요청을 받으면 번들로 묶인 제품이 자동으로 포함되어 표시됩니다. 신뢰할 수 있는 성인은 승인하지 않으려는 번들 제품을 제거할 수 있습니다.
최적 용도: 일반적으로 함께 사용되지만 하드 종속성이 없는 제품
2. 필수 제품(필수 종속성)
제품이 작동하는 데 필요한 다른 제품으로 표시합니다. 이는 일반적으로 제품이 플랫폼이나 계정 시스템에 의존하는 경우 사용됩니다.
구성 방법:
- Compliance Studio에서 제품 선택
- 구성으로 이동하고 다중 제품 승인 섹션 내에서 편집 클릭
- 다중 제품 승인 활성화 옆의 토글 클릭
- 필수 제품 아래에서 이 제품과 함께 승인해야 하는 제품 선택
- 테스트로 푸시 클릭
신뢰할 수 있는 성인 경험 - 필수 제품은 동의 흐름에서 제거할 수 없습니다. 신뢰할 수 있는 성인은 두 제품을 함께 승인하거나 동의 요청을 완전히 거부해야 합니다.
중요한 제한 사항:
- 제품은 하나의 필수 제품만 가질 수 있습니다
- 필수 제품 자체가 다른 필수 제품을 요구할 수 없습니다(연쇄 없음)
- 편의를 위해서가 아니라 실제 종속성에만 사용하세요
최적 용도: 다른 제품에 대한 액세스 없이는 작동할 수 없는 제품(예: 플랫폼 계정이 필요한 게임)
3. 동적 번들링(API 기반)
API를 사용하여 동의 Challenge를 생성할 때 프로그래밍 방식으로 번들로 묶을 제품을 선택합니다.
사용 방법:
포함하려는 특정 제품 ID로 /challenge/create-bulk API 엔드포인트를 호출합니다:
{
"jurisdiction": "US-CA",
"requestedProductIds": [123, 456, 789],
"kuid": "12b9fa0e-6d6d-4903-a1fc-f2233027b71d"
}
신뢰할 수 있는 성인 경험 - 신뢰할 수 있는 성인은 이 동의 요청에 대해 정의한 특정 제품 번들을 봅니다.
최적 용도:
- 사용자 동작을 기반으로 한 컨텍스트 번들링
- 다양한 제품 조합의 A/B 테스트
- 함께 제공할 제품을 결정하는 복잡한 로직
모범 사례
적절한 접근 방식 선택
- 번들링 사용: 제품이 자주 함께 사용되지만 기술적 종속성이 없는 경우
- 필수 제품 사용: 한 제품이 다른 제품 없이는 실제로 작동할 수 없는 경우에만
- 동적 번들링 사용: 런타임 유연성이나 컨텍스트 제품 선택이 필요한 경우
구성 팁
- 간단하게 시작: 필수 제품만으로 시작한 다음 필요에 따라 번들링 추가
- 신뢰할 수 있는 성인 여정 고려: 하나의 번들에 너무 많은 제품으로 부모를 압도하지 마세요
- 흐름 테스트: 라이브 전에 테스트 모드를 사용하여 부모 경험 확인
- 종속성 문서화: 개발 팀을 위해 어떤 제품이 다른 제품에 의존하는지 명확한 기록 유지
권한 고려 사항
여러 제품이 번들로 묶일 때:
- 신뢰할 수 있는 성인은 모든 제품의 모든 권한의 합집합을 봅니다
- 각 제품은 자체 권한 구성을 유지합니다
- 신뢰할 수 있는 성인은 각 제품에 대한 권한을 개별적으로 허용하거나 거부할 수 있습니다
- 번들로 묶인 제품의 모든 데이터 공개가 함께 제시됩니다
일반적인 패턴
패턴 1: 계정 및 여러 게임
구성:
- 계정 시스템 제품(필수 제품 없음)
- 게임 A: 계정 시스템을 필수 제품으로
- 게임 B: 계정 시스템을 필수 제품으로
- 게임 C: 계정 시스템을 필수 제품으로
결과 - 모든 게임 승인은 자동으로 계정 시스템 승인을 요구하지만 부모는 한 번에 여러 게임을 승인할 수 있습니다.
계정 시스템 통합 - 여러 게임에 걸친 계정 시스템과 통합할 때 각 게임에 대해 하나의 k-ID 제품을 만들고 계정 시스템 자체에 대해 별도의 k-ID 제품을 만드는 것이 일반적입니다. 이는 모든 게임 또는 계정 자체에 공통되거나 전역적인 권한 및 공개를 나타내는 데 유용합니다.
제품이 계정 시스템에 매핑되면 각 게임에 대해 두 개의 Session 객체가 검색됨을 의미합니다: 하나는 게임에 매핑된 k-ID 제품용이고 다른 하나는 계정 시스템에 매핑된 k-ID 제품용입니다. k-ID API는 API 키로 제품 범위가 지정됩니다. 계정 시스템에 매핑된 k-ID 제품에 액세스하려는지 게임에 매핑된 k-ID 제품에 액세스하려는지에 따라 올바른 API 키를 사용해야 합니다.
VPC용 제품 컨텍스트 - 게임이 모두 플레이하려면 계정이 필요한 경우 계정 생성 프로세스에서 VPC를 트리거할 수 있습니다. 그러나 동의 요청은 부모가 무엇에 동의하는지 알 수 있도록 게임별로 구체적이어야 합니다. k-ID API는 VPC를 트리거할 때 사용되는 API 키를 기반으로 동의 프로세스 중에 부모에게 제시해야 하는 제품을 결정합니다.
실제로 계정 시스템에 k-ID를 통합하려면 계정 설정 시 계정 생성 프로세스를 트리거한 게임을 결정하고 이를 k-ID API 키에 매핑할 수 있어야 합니다.
패턴 2: 선택적 추가 기능이 있는 게임 제품군
구성:
- 메인 게임: 필수 제품 없음
- 확장 팩 A: 메인 게임을 필수 제품으로, 메인 게임과 번들로 묶음
- 확장 팩 B: 메인 게임을 필수 제품으로, 메인 게임과 번들로 묶음
결과 - 신뢰할 수 있는 성인은 하나의 흐름에서 선택적 확장과 함께 메인 게임을 승인할 수 있습니다.
패턴 3: 플랫폼 접근 방식
구성:
- 플랫폼 제품: 필수 제품 없음
- 소셜 기능: 플랫폼을 필수로, 플랫폼과 번들로 묶음
- 프리미엄 콘텐츠: 플랫폼을 필수로, 플랫폼과 번들로 묶음
결과 - 신뢰할 수 있는 성인은 추가 기능을 위한 쉬운 추가 기능과 함께 플랫폼 액세스를 승인합니다.
기술 세부 사항
웹훅 이벤트
웹훅 이벤트 구조에 대한 자세한 내용은 Challenge.StateChange를 참조하세요.
부모가 다중 제품 번들을 승인하면 승인된 각 제품에 대해 별도의 Challenge.StateChange 웹훅 이벤트를 받게 됩니다. 모든 세션은 동일한 kuid(k-ID 사용자 ID)를 공유하므로 동일한 아동과 연결할 수 있습니다.
세션 관리
번들의 각 승인된 제품은 자체 sessionId로 자체 세션을 생성합니다. 다음을 수행해야 합니다:
- 플레이어의
kuid와 연결된 모든 세션 캐시 - 각 제품에 대한 권한을 확인할 때 적절한 세션 사용
- 관련
sessionId또는kuid및 제품 API 키로/session/get를 사용하여 세션 쿼리
제품 간 세션 액세스를 위한 kuid 사용
k-ID는 신뢰할 수 있는 성인 동의를 받은 모든 플레이어에 대해 kuid(k-ID 사용자 ID)라는 전역 식별자를 노출합니다. kuid는 Session 객체의 속성으로 반환됩니다. 여러 게임에 걸쳐 계정 시스템과 통합할 때 Session에 kuid가 있으면 계정 시스템의 플레이어 신원과 연결해야 합니다. 이를 통해 올바른 제품에 대한 적절한 API 키를 사용하고 kuid만 매개변수로 제공하여 /session/get를 호출하여 모든 k-ID 제품에 대한 k-ID 세션이 있는 경우 검색할 수 있습니다.
신뢰할 수 있는 성인이 자녀가 하나 이상의 제품을 플레이할 수 있도록 동의를 부여하면 승인된 각 제품에 대해 등록된 웹훅 엔드포인트가 eventType이 Challenge.StateChange로 설정되어 호출됩니다. 각 Session 객체는 플레이어에 대해 동일한 kuid를 가집니다. 웹훅에 대한 자세한 내용은 웹훅을 참조하세요.
여러 제품에 대한 세션 캐싱
계정 시스템과 통합할 때 여러 제품의 세션이 캐시됩니다. Session 객체는 모두 k-ID 제품 ID를 키로 사용하여 계정 시스템의 맵으로 캐시할 수 있습니다. 플레이어가 새 게임을 플레이하려고 시도하면 Session 객체를 포함하는 맵을 제품 ID로 쿼리할 수 있으며, Session이 이미 있는 경우 플레이어는 추가 신뢰할 수 있는 성인 동의 없이 계속할 수 있습니다.
API 엔드포인트
- 정적 구성: Compliance Studio UI
- 동적 번들링:
/challenge/create-bulk - 세션 검색:
/session/get?kuid={kuid}(API 키와 연결된 제품의 세션 반환)
엣지 케이스 및 고려 사항
연령 최소 요구 사항
규칙 - 아동은 번들의 모든 제품에 대한 연령 요구 사항을 충족해야 합니다.
필수 제품이 이를 의존하는 제품보다 더 높은 연령 최소값을 가진 경우 해당 연령 미만의 아동은 두 제품 모두에 대한 액세스가 거부됩니다.
예시:
- 게임 A: 최소 연령 10세, 계정 시스템을 필수 제품으로 요구
- 계정 시스템: 최소 연령 13세
결과 - 게임 A의 구성된 최소값이 10세임에도 불구하고 아동은 게임 A에 액세스하려면 최소 13세여야 합니다.
모범 사례 - 종속 제품의 연령 최소값을 필수 제품의 연령 최소값과 같거나 더 높게 설정하세요.
권한 처리
규칙 - 신뢰할 수 있는 성인은 번들로 묶인 모든 제품에서 가장 제한적인 권한 요구 사항을 승인해야 합니다.
제품이 함께 번들로 묶일 때 k-ID는 모든 제품에 걸쳐 각 권한을 평가하고 가장 제한적인 설정을 적용합니다:
- 권한이 어떤 제품에서 필수인 경우 전체 번들에 대해 필수가 됩니다
- 권한이 한 제품에서 선택적이지만 다른 제품에서 필수인 경우 필수가 됩니다
- 신뢰할 수 있는 성인은 동의 흐름을 완료하기 위해 모든 필수 권한을 부여해야 합니다
예시:
- 게임 A: "음성 채팅"은 선택적(부모가 선택할 수 있음)
- 계정 시스템(게임 A에 필수): "음성 채팅"은 필수(부모가 승인해야 함)
결과 - 게임 A만으로는 선택적으로 만들었을 것이지만 신뢰할 수 있는 성인은 동의를 부여하기 위해 "음성 채팅"을 승인해야 합니다.
모범 사례:
- 가능한 경우 종속 제품 간 권한 요구 사항 정렬
- 부모가 보는 결합된 권한 세트 검토
- 특정 권한이 플랫폼 수준에서 필요한지 게임 수준에서 필요한지 고려