Korzystanie z interfejsu Play Age Signals API (beta)

Korzystając z interfejsu Play Age Signals API (wersja beta), akceptujesz warunki usługi i zgadzasz się przestrzegać wszystkich zasad Google Play dla deweloperów. Aby poprosić o stan użytkownika i przedział wiekowy, wywołaj interfejs API z aplikacji w czasie działania. Interfejs Play Age Signals API zwraca dane tylko o użytkownikach z regionów, w których Google Play musi udostępniać dane o kategoriach wiekowych zgodnie z przepisami prawa.

Google Play zwraca przedział wiekowy na podstawie grup wiekowych zdefiniowanych w odpowiednich jurysdykcjach i regionach. Domyślne przedziały wiekowe zwracane przez interfejs API w odpowiednich jurysdykcjach i regionach to 0–12, 13–15, 16–17 oraz 18+, ale mogą być też zwracane niestandardowe przedziały wiekowe. Google Play automatycznie aktualizuje sygnały wieku w pamięci podręcznej użytkownika w ciągu 2–8 tygodni po jego urodzinach.

Integrowanie interfejsu Play Age Signals API z aplikacją

Interfejs Play Age Signals API jest obsługiwany na telefonach, urządzeniach składanych i tabletach z Androidem 6.0 (poziom interfejsu API 23) lub nowszym. Aby zintegrować interfejs Play Age Signals API z aplikacją, dodaj do pliku build.gradle aplikacji tę zależność:

implementation 'com.google.android.play:age-signals:0.0.3'

Prośba o sygnały dotyczące wieku

Oto przykład wysyłania żądania sygnałów dotyczących wieku:

Kotlin

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

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

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

Java

// 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.
          }
        });

(Opcjonalnie) Otrzymywanie niestandardowych przedziałów wiekowych

Domyślne przedziały wiekowe zwracane przez interfejs API w odpowiednich jurysdykcjach i regionach to 0–12, 13–15, 16–17 oraz 18+.

Aby dostosować domyślne przedziały wiekowe do minimalnego wieku użytkowników Twojej aplikacji, możesz podać te minimalne progi wiekowe na stronie Sygnały dotyczące wieku w Konsoli Google Play. Zwrócone przedziały wiekowe zastąpią domyślną odpowiedź interfejsu API. Na przykład jeśli podasz minimalne progi wiekowe 9, 15 i 17 lat, 14-letni użytkownik będzie mieścił się w przedziale wiekowym 10–15 lat.

Aby dostosować domyślne przedziały wiekowe zwracane przez interfejs Age Signals API, możesz podać minimalny wiek użytkowników Twojej aplikacji:

  1. W Konsoli Play otwórz stronę Sygnały dotyczące wieku.
  2. Na karcie Niestandardowe zakresy wiekowe wpisz maksymalnie 3 minimalne progi wiekowe dla swojej aplikacji. Muszą one różnić się o co najmniej 2 lata i można je zmienić raz na rok.
  3. Kliknij Zapisz.

Odpowiedzi na sygnały dotyczące wieku

Odpowiedź interfejsu Play Age Signals API (beta) zawiera te pola i wartości. Wartości mogą ulec zmianie. Jeśli chcesz uzyskać najnowsze wartości, poproś o odpowiedź z interfejsu API po otwarciu aplikacji. Odpowiadasz za zapewnienie treści odpowiednich dla wieku użytkowników na podstawie tych sygnałów.

Pole odpowiedzi Wartości Opis
userStatus ZWERYFIKOWANO Google potwierdził wiek użytkownika za pomocą uzasadnionej ekonomicznie metody, np. dokumentu tożsamości wydanego przez organ państwowy, karty kredytowej lub szacowania wieku na podstawie twarzy. Jeśli wartość userStatus to VERIFIED, możesz zignorować pozostałe pola.

Użyj symboli ageLowerageUpper, aby określić przedział wiekowy użytkownika.
ZADEKLAROWANE Wiek użytkownika został podany przez niego, jego rodzica lub opiekuna prawnego.

Użyj symboli ageLowerageUpper, aby określić przedział wiekowy użytkownika.
NADZOROWANE Użytkownik ma nadzorowane konto Google zarządzane przez rodzica, który określa jego wiek.

Użyj symboli ageLowerageUpper, aby określić przedział wiekowy użytkownika.

Użyj mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę.
SUPERVISED_APPROVAL_PENDING Użytkownik ma nadzorowane konto Google, a rodzic sprawujący nadzór nie zatwierdził jeszcze co najmniej jednej oczekującej istotnej zmiany.

Użyj symboli ageLowerageUpper, aby określić przedział wiekowy użytkownika.

Użyj mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę.
SUPERVISED_APPROVAL_DENIED Użytkownik ma nadzorowane konto Google, a rodzic sprawujący nad nim nadzór odrzucił zatwierdzenie co najmniej jednej istotnej zmiany.

Użyj symboli ageLowerageUpper, aby określić przedział wiekowy użytkownika.

Użyj mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę.
NIEZNANY Wiek użytkownika jest nieznany, a użytkownik znajduje się w odpowiedniej jurysdykcji lub regionie.

Dotyczy tylko stanów USA: aby uzyskać sygnał dotyczący wieku z Google Play, poproś użytkownika o wejście do Sklepu Play w celu rozwiązania problemu z jego statusem.
null Użytkownik nie znajduje się w odpowiednich jurysdykcjach i regionach.

Lub użytkownik nie udostępnia aplikacji swojego wieku.
ageLower 0–18 Dolna granica (włącznie) przedziału wiekowego nadzorowanego użytkownika.

Użyj ikon ageLowerageUpper, aby określić przedział wiekowy użytkownika.
null
Plik userStatus jest nieznany lub null.
ageUpper 2–18 Górna granica (włącznie) przedziału wiekowego nadzorowanego użytkownika.

Użyj ikon ageLowerageUpper, aby określić przedział wiekowy użytkownika.
null Albo userStatus jest nadzorowany, a rodzic użytkownika potwierdził, że ma on ukończone 18 lat.

Lub userStatus jest nieznany lub null.
mostRecentApprovalDate Datestamp effective from data ostatniej zatwierdzonej istotnej zmiany. Gdy aplikacja jest instalowana, używana jest data ostatniej istotnej zmiany przed instalacją.
null Albo userStatus jest nadzorowany i nie przesłano żadnych istotnych zmian.

Lub userStatus jest zweryfikowany, nieznany lub null.
installID Alfanumeryczny identyfikator wygenerowany przez Google Play. Identyfikator przypisany do instalacji użytkownika nadzorowanego przez Google Play, używany do powiadamiania Cię o cofnięciu zatwierdzenia aplikacji. Zapoznaj się z dokumentacją dotyczącą cofniętych zatwierdzeń aplikacji.
null userStatus została zweryfikowana, jest nieznana lub null.

Przykładowe odpowiedzi dla użytkowników w Brazylii

W Brazylii userStatus może być tylko DECLARED, UNKNOWN lub null.

W przypadku użytkownika, który zadeklarował swój wiek i udostępnia go aplikacjom, otrzymasz następujące informacje:

  • Wartość userStatus to AgeSignalsVerificationStatus.DECLARED.
  • ageLower to liczba (np. 13).
  • ageUpper to liczba lub null (np. 15).
  • Pozostałe pola odpowiedzi będą miały wartość null.

W przypadku użytkownika, którego wiek jest nieznany, otrzymasz te informacje:

  • Wartość userStatus to AgeSignalsVerificationStatus.UNKNOWN.
  • Pozostałe pola odpowiedzi będą miały wartość null.

W przypadku użytkownika, którego wiek nie jest udostępniany aplikacjom, otrzymasz te informacje:

  • Wartość userStatus to null.
  • Pozostałe pola odpowiedzi będą miały wartość null.

Stan użytkownika może zmienić się na DECLARED, gdy wiek użytkownika będzie dostępny do udostępnienia.

Przykładowe odpowiedzi dla użytkowników ze stanów USA

W odpowiednich stanach USA wartość userStatus może wynosić VERIFIED, SUPERVISED, SUPERVISED_APPROVAL_PENDING, SUPERVISED_APPROVAL_DENIED, UNKNOWN lub null.

Zweryfikowany użytkownik otrzyma:

  • Wartość userStatus to AgeSignalsVerificationStatus.VERIFIED.
  • ageLower to liczba (np. 18).
  • ageUpper to liczba lub null (np. null).
  • Pozostałe pola odpowiedzi będą miały wartość null.

W przypadku nadzorowanego użytkownika otrzymasz:

  • Wartość userStatus to AgeSignalsVerificationStatus.SUPERVISED.
  • ageLower to liczba (np. 13).
  • ageUpper to liczba lub null (np. 15).
  • mostRecentApprovalDate będzie obiektem daty w języku Java (np. 2026-01-01) lub null (jeśli nie zatwierdzono istotnej zmiany).
  • installID to alfanumeryczny identyfikator wygenerowany przez Google Play (np.550e8400-e29b-41d4-a716-446655441111).

W przypadku nadzorowanego użytkownika, który oczekuje na zatwierdzenie istotnej zmiany, otrzymasz:

  • userStatus będzie mieć wartość AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower to liczba (np. 13).
  • ageUpper to liczba lub null (np. 15).
  • mostRecentApprovalDate będzie obiektem daty w języku Java (np. 2026-01-01) lub null (jeśli nie zatwierdzono istotnej zmiany).
  • installID to alfanumeryczny identyfikator wygenerowany przez Google Play (np.550e8400-e29b-41d4-a716-446655441111).

Obsługa kodów błędów interfejsu API

Jeśli aplikacja wyśle żądanie do interfejsu Play Age Signals API i wywołanie się nie powiedzie, otrzyma kod błędu. Błędy te mogą występować z różnych powodów, np. z powodu nieaktualnej aplikacji Sklep Play.

Strategia ponawiania

W sytuacjach, gdy użytkownik jest w sesji, zalecamy wdrożenie strategii ponawiania z maksymalną liczbą prób jako warunkiem zakończenia, aby błąd jak najmniej zakłócał działanie aplikacji.

Wartość numeryczna kodu błędu Kod błędu Opis Retryable
-1 API_NOT_AVAILABLE Interfejs Play Age Signals API jest niedostępny. Wersja aplikacji Sklep Play zainstalowana na urządzeniu może być stara.

Możliwe rozwiązanie
  • Poproś użytkownika o zaktualizowanie Sklepu Play.
Tak
-2 PLAY_STORE_NOT_FOUND Na urządzeniu nie znaleziono aplikacji Sklep Play. Poproś użytkownika o zainstalowanie lub włączenie Sklepu Play. Tak
-3 NETWORK_ERROR Nie znaleziono dostępnej sieci. Poproś użytkownika o sprawdzenie połączenia. Tak
-4 PLAY_SERVICES_NOT_FOUND Usługi Google Play są niedostępne lub ich wersja jest zbyt stara. Poproś użytkownika o zainstalowanie, zaktualizowanie lub włączenie Usług Google Play. Tak
-5 CANNOT_BIND_TO_SERVICE Nie udało się powiązać z usługą w Sklepie Play. Może to być spowodowane zainstalowaniem na urządzeniu starej wersji Sklepu Play lub przepełnieniem pamięci urządzenia. Poproś użytkownika o zaktualizowanie aplikacji Sklep Play. Podejmij ponowną próbę ze wzrastającym czasem do ponowienia. Tak
-6 PLAY_STORE_VERSION_OUTDATED Aplikacja Sklep Play wymaga aktualizacji. Poproś użytkownika o zaktualizowanie aplikacji Sklep Play. Tak
-7 PLAY_SERVICES_VERSION_OUTDATED Usługi Google Play wymagają aktualizacji. Poproś użytkownika o zaktualizowanie Usług Google Play. Tak
-8 CLIENT_TRANSIENT_ERROR Na urządzeniu klienta wystąpił przejściowy błąd. Wdróż strategię ponawiania z maksymalną liczbą prób jako warunkiem zakończenia. Jeśli problem nadal występuje, poproś użytkownika o ponowną próbę później. Tak
-9 APP_NOT_OWNED Aplikacja nie została zainstalowana przez Google Play. Poproś użytkownika o pobranie aplikacji z Google Play. Nie
-10 SDK_VERSION_OUTDATED Wersja pakietu SDK sygnałów o wieku w Google Play nie jest już obsługiwana. Poproś użytkownika o zaktualizowanie aplikacji do nowszej wersji, która korzysta z najnowszej wersji pakietu SDK sygnałów dotyczących wieku w Google Play. Nie
-100 INTERNAL_ERROR Nieznany błąd wewnętrzny. Wdróż strategię ponawiania z maksymalną liczbą prób jako warunkiem zakończenia. Jeśli problem nadal występuje, poproś użytkownika o ponowną próbę później. Jeśli próby nadal będą wypadać negatywnie, skontaktuj się z zespołem pomocy Google Play dla deweloperów, w temacie podaj „Play Age Signals API” i podaj jak najwięcej szczegółów technicznych (np. raport o błędach). Nie