Play Age Signals API (베타) 사용

Play Age Signals API (베타)를 사용하면 서비스 약관에 동의하고 모든 Google Play 개발자 정책을 준수하는 데 동의하는 것으로 간주됩니다. 사용자의 상태와 연령대를 요청하려면 런타임에 앱에서 API를 호출합니다. Play 연령 신호 API는 법에 따라 Play에서 연령 카테고리 데이터를 제공해야 하는 지역에 거주하는 사용자의 데이터만 반환합니다.

Play는 관련 관할권 및 지역에서 정의한 연령대를 기반으로 연령대를 반환합니다. API가 관련 관할권 및 지역에서 반환하는 기본 연령은 0~12세, 13~15세, 16~17세, 18세 이상이지만 지역 요구사항에 따라 변경될 수 있습니다.

앱에 Play Age Signals API 통합

Play Age Signals API를 앱에 통합하려면 앱의 build.gradle 파일에 다음 종속 항목을 추가하세요.

implementation 'com.google.android.play:age-signals:0.0.1-beta01'

연령 신호 요청

다음은 연령 신호 요청을 만드는 예입니다.

// Create an instance of a manager
AgeSignalsManager ageSignalsManager =
    AgeSignalsManagerFactory.create(ApplicationProvider.getApplicationContext());

// Request an age signals check
ageSignalsManager
    .checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener(
        ageSignalsResult -> {
          // Store the install ID for later...
          String installId = ageSignalsResult.installId();

          if (ageSignalsResult
              .userStatus()
              .equals(AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED)) {
            // Disallow access ...
          } else {
            // Do something else if the user is SUPERVISED, VERIFIED, etc.
          }
        });

연령 신호는 Google Play에서 각 사용자의 기기에 저장됩니다. 감독 대상 Google 계정을 사용하는 사용자가 새로운 연령대로 바뀌면 Google Play에서는 사용자의 생일 후 2~8주 이내에 해당 사용자의 캐시된 연령 신호를 자동으로 업데이트합니다.

(선택사항) 맞춤 연령대 수신

API가 관련 관할권 및 지역에서 반환하는 기본 연령대는 0~12세, 13~15세, 16~17세, 18세 이상입니다. 이는 향후 현지 요구사항에 따라 변경될 수 있습니다.

또는 앱의 최소 연령에 따라 연령대를 맞춤설정하려면 Google Play Console의 연령 신호 페이지에서 앱의 최소 연령을 제공하면 됩니다. Age Signals API는 맞춤설정된 연령대를 반환합니다. 예를 들어 최소 연령을 9, 15, 17세로 제공하는 경우 14세 사용자는 10~15세 연령대에 속합니다. 최소 연령은 2세 이상 차이가 나야 하며 연 1회 변경할 수 있습니다.

Age Signals API가 반환하는 연령대를 맞춤설정하려면 앱의 최소 연령을 제공하세요.

  1. Play Console에서 연령 신호 페이지로 이동합니다.
  2. 앱 사용 가능 최소 연령 탭에 앱의 최소 연령을 최대 3개까지 입력합니다.
  3. 저장을 클릭합니다.

연령 신호 응답

Play Age Signals API (베타) 응답에는 다음 필드와 값이 포함됩니다. 값은 변경될 수 있습니다. 최신 값을 원한다면 앱이 열릴 때 API 응답을 요청하세요. 이러한 신호를 사용하여 연령에 적합한 환경을 제공할 책임은 사용자에게 있습니다.

응답 필드 설명
userStatus 인증됨 사용자가 만 18세 이상입니다. Google은 정부 발급 신분증, 신용카드, 얼굴 연령 추정과 같은 상업적으로 합리적인 방법을 사용하여 사용자의 연령을 확인했습니다.
감독 대상 사용자에게 부모가 연령을 설정한 감독 대상 Google 계정이 있습니다. ageLowerageUpper를 사용하여 사용자의 연령대를 파악합니다.
SUPERVISED_APPROVAL_PENDING 사용자에게 감독 대상 Google 계정이 있으며, 감독 부모가 아직 하나 이상의 대기 중인 중요한 변경사항을 승인하지 않았습니다. ageLowerageUpper를 사용하여 사용자의 연령대를 파악합니다. mostRecentApprovalDate를 사용하여 승인된 마지막 중요한 변경사항을 확인합니다.
SUPERVISED_APPROVAL_DENIED 사용자에게 관리 대상 Google 계정이 있으며, 관리 대상 사용자의 부모가 하나 이상의 중요한 변경사항을 승인하지 않았습니다. ageLowerageUpper를 사용하여 사용자의 연령대를 파악합니다. mostRecentApprovalDate를 사용하여 승인된 마지막 중요한 변경사항을 확인합니다.
UNKNOWN 사용자가 관련 관할권 및 지역에서 인증되지 않았거나 감독되지 않습니다. 이러한 사용자는 18세 이상일 수도 있고 미만일 수도 있습니다. Google Play에서 연령 신호를 받으려면 사용자에게 Play 스토어를 방문하여 상태를 해결하도록 요청하세요.
비어 있음(빈 값) 다른 모든 사용자는 이 값을 반환합니다.
ageLower 0~18 감독 대상 사용자의 연령 범위의 하한 (포함)입니다. ageLowerageUpper을 사용하여 사용자의 연령대를 확인합니다.
비어 있음 (빈 값)
userStatus을 알 수 없거나 비어 있습니다.
ageUpper 2~18 감독 대상 사용자의 연령 범위의 상한 (포함)입니다. ageLowerageUpper을 사용하여 사용자의 연령대를 확인합니다.
비어 있음(빈 값) 또는 userStatus이 관리 대상이고 사용자의 부모가 증명한 연령이 18세를 초과합니다. 또는 userStatus가 확인되었거나, 알 수 없거나, 비어 있습니다.
mostRecentApprovalDate 날짜 스탬프 승인된 가장 최근의 중요한 변경사항의 effective from 날짜입니다. 앱이 설치되면 설치 전 가장 최근의 중요한 변경사항의 날짜가 사용됩니다.
비어 있음(빈 값) userStatus가 감독되고 있으며 제출된 큰 변경사항이 없습니다. 또는 userStatus가 확인되었거나, 알 수 없거나, 비어 있습니다.
installID Play에서 생성된 영숫자 ID입니다. Google Play에서 감독 대상 사용자 설치에 할당한 ID로, 앱 승인 취소를 알리는 데 사용됩니다. 앱 승인 취소 관련 문서를 검토합니다.
비어 있음(빈 값) userStatus이 확인되었거나, 알 수 없거나, 비어 있습니다.

API 오류 코드 처리

앱이 Play Age Signals API (베타) 요청을 하고 호출이 실패하면 앱에 오류 코드가 수신됩니다. 이러한 오류는 Play 스토어 앱이 최신 버전이 아닌 등 다양한 이유로 발생할 수 있습니다.

재시도 전략

사용자가 세션을 진행 중인 상황에서는 오류가 사용자 경험을 최대한 방해하지 않도록 최대 재시도 횟수를 종료 조건으로 사용하는 재시도 전략을 구현하는 것이 좋습니다.

오류 코드의 숫자 값 오류 코드 설명 재시도 가능
-1 API_NOT_AVAILABLE Play Age Signals API를 사용할 수 없습니다. 기기에 설치된 Play 스토어 앱 버전이 오래되었을 수 있습니다.

가능한 해결 방법
  • 사용자에게 Play 스토어를 업데이트하라고 요청합니다.
-2 PLAY_STORE_NOT_FOUND 기기에서 Play 스토어 앱을 찾을 수 없습니다. 사용자에게 Play 스토어를 설치하거나 사용 설정해 달라고 요청합니다.
-3 NETWORK_ERROR 사용 가능한 네트워크를 찾을 수 없습니다. 사용자에게 연결 상태를 확인하라고 요청합니다.
-4 PLAY_SERVICES_NOT_FOUND Play 서비스를 사용할 수 없거나 버전이 너무 오래되었습니다. 사용자에게 Play 서비스를 설치하거나 업데이트하거나 사용 설정해 달라고 요청합니다.
-5 CANNOT_BIND_TO_SERVICE Play 스토어의 서비스에 바인딩할 수 없습니다. 기기에 이전 Play 스토어 버전이 설치되어 있거나 기기 메모리가 과부하되었기 때문일 수 있습니다. 사용자에게 Play 스토어 앱을 업데이트하라고 요청합니다. 지수 백오프로 다시 시도합니다.
-6 PLAY_STORE_VERSION_OUTDATED Play 스토어 앱을 업데이트해야 합니다. 사용자에게 Play 스토어 앱을 업데이트하라고 요청합니다.
-7 PLAY_SERVICES_VERSION_OUTDATED Play 서비스를 업데이트해야 합니다. 사용자에게 Play 서비스를 업데이트하라고 요청합니다.
-8 CLIENT_TRANSIENT_ERROR 클라이언트 기기에 일시적인 오류가 발생했습니다. 최대 시도 횟수를 종료 조건으로 사용하는 재시도 전략을 구현합니다. 그래도 문제가 해결되지 않으면 사용자에게 나중에 다시 시도하도록 요청합니다.
-9 APP_NOT_OWNED Google Play에서 앱을 설치하지 않았습니다. 사용자에게 Google Play에서 앱을 다운로드하도록 요청합니다. 아니요
-100 INTERNAL_ERROR 알 수 없는 내부 오류입니다. 최대 시도 횟수를 종료 조건으로 사용하는 재시도 전략을 구현합니다. 그래도 문제가 해결되지 않으면 사용자에게 나중에 다시 시도하도록 요청합니다. 일관되게 실패하는 경우 Google Play 개발자 지원팀에 문의하고 제목에 Play Age Signals API를 포함하고 버그 신고와 같은 기술 세부정보를 최대한 많이 포함하세요. 아니요