Korzystanie z interfejsu Play Age Signals API (beta)

Korzystając z interfejsu Play Age Signals API (beta), akceptujesz warunki korzystania z usługi i zobowiązujesz się do przestrzegania wszystkich zasad Google Play dla deweloperów. Aby poprosić o stan i przedział wiekowy użytkownika, 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 przedziałów wiekowych określonych 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 niestandardowe przedziały wiekowe mogą być też zwracane. Google Play automatycznie aktualizuje zapisane w pamięci podręcznej sygnały dotyczące wieku użytkownika w ciągu 2–8 tygodni po jego urodzinach.

Integracja 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) i nowszym. Aby zintegrować interfejs Play Age Signals API z aplikacją, dodaj tę zależność do pliku build.gradle aplikacji:

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

Wysyłanie prośby o sygnały dotyczące wieku

Oto przykład wysyłania prośby o sygnały dotyczące 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+.

Możesz też dostosować domyślne przedziały wiekowe do minimalnego wieku użytkowników Twojej aplikacji , podając te minimalne wartości na stronie Sygnały dotyczące wieku w Konsoli Google Play.

  1. Otwórz stronę Sygnały dotyczące wieku w Konsoli Play.
  2. Na karcie Niestandardowe przedziały wiekowe wpisz maksymalnie 3 minimalne wartości wieku dla swojej aplikacji. Minimalne wartości wieku muszą różnić się o co najmniej 2 lata i można je zmienić raz na rok.
  3. Kliknij Zapisz.

Zwracane przedziały wiekowe zastąpią domyślną odpowiedź interfejsu API. Przykład:

  • Jeśli w Konsoli Google Play ustawisz 1 minimalną wartość wieku (15):

    • W przypadku użytkownika w wieku od 0 do 14 lat zwracane będą wartości ageLower = 0 i ageUpper = 14.
    • W przypadku użytkownika w wieku 15 lat lub starszego zwracana będzie wartość ageLower = 15.
  • Jeśli ustawisz 2 minimalne wartości wieku (13 i 17):

    • W przypadku użytkownika w wieku od 0 do 12 lat zwracane będą wartości ageLower = 0 i ageUpper = 12.
    • W przypadku użytkownika w wieku od 13 do 16 lat zwracane będą wartości ageLower = 13 i ageUpper = 16.
    • W przypadku użytkownika w wieku 17 lat lub starszego zwracana będzie wartość ageLower = 17.
  • Jeśli ustawisz 3 minimalne wartości wieku (11, 13 i 15):

    • W przypadku użytkownika w wieku od 0 do 10 lat zwracane będą wartości ageLower = 0 i ageUpper = 10.
    • W przypadku użytkownika w wieku 11 lub 12 lat zwracane będą wartości ageLower = 11 i ageUpper = 12.
    • W przypadku użytkownika w wieku 13 lub 14 lat zwracane będą wartości ageLower = 13 i ageUpper = 14.
    • W przypadku użytkownika w wieku 15 lat lub starszego zwracana będzie wartość ageLower = 15.

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ź interfejsu API po otwarciu aplikacji. Twoim obowiązkiem jest zapewnianie treści dostosowanych do wieku odbiorcy za pomocą tych sygnałów.

Pole odpowiedzi Wartości Opis
userStatus ZWERYFIKOWANO Google zweryfikowało wiek użytkownika za pomocą uzasadnionej ekonomicznie metody, takiej jak dokument tożsamości wydany przez organ państwowy, karta kredytowa lub oszacowanie wieku na podstawie twarzy. Jeśli userStatus to VERIFIED, możesz zignorować pozostałe pola.

Użyj pól ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
ZADEKLAROWANO Wiek użytkownika został zadeklarowany przez niego, jego rodzica lub opiekuna prawnego.

Użyj pól ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
NADZOROWANE Użytkownik ma nadzorowane konto Google zarządzane przez rodzica, który ustawia jego wiek.

Użyj pól ageLower i ageUpper, aby określić przedział wiekowy użytkownika.

Użyj pola mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę.
NADZOROWANE_OCZEKUJE_NA_ZATWIERDZENIE Użytkownik ma nadzorowane konto Google, a jego rodzic lub opiekun prawny nie zatwierdził jeszcze co najmniej 1 oczekującej istotnej zmiany.

Użyj pól ageLower i ageUpper, aby określić przedział wiekowy użytkownika.

Użyj pola mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę.
NADZOROWANE_ZATWIERDZENIE_ODRZUCONE Użytkownik ma nadzorowane konto Google, a jego rodzic lub opiekun prawny odrzucił zatwierdzenie co najmniej 1 istotnej zmiany.

Użyj pól ageLower i ageUpper, aby określić przedział wiekowy użytkownika.

Użyj pola mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę.
NIEZNANE 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 przejście do Sklepu Play i rozwiązanie problemu ze stanem.
null Albo użytkownik nie znajduje się w odpowiednich jurysdykcjach i regionach.

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

Użyj pól ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
null
Wartość userStatus jest nieznana lub ma wartość null.
ageUpper 2–18 Górna granica (włącznie) przedziału wiekowego nadzorowanego użytkownika.

Użyj pól ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
null Albo wartość userStatus to „nadzorowane”, a wiek użytkownika podany przez rodzica lub opiekuna prawnego jest większy niż 18 lat.

Albo wartość userStatus jest nieznana lub ma wartość null.
mostRecentApprovalDate Znacznik daty Data effective from ostatniej zatwierdzonej istotnej zmiany. Gdy aplikacja jest instalowana, używana jest data ostatniej istotnej zmiany przed instalacją.
null Albo wartość userStatus to „nadzorowane” i nie przesłano żadnej istotnej zmiany.

Albo wartość userStatus to „zweryfikowano”, „nieznane” lub null.
installID Alfanumeryczny identyfikator wygenerowany przez Google Play. Identyfikator przypisany do instalacji nadzorowanych użytkowników przez Google Play, używany do powiadamiania o cofnięciu zatwierdzenia aplikacji. Zapoznaj się z dokumentacją dotyczącą cofnięcia zatwierdzenia aplikacji.
null Wartość userStatus to „zweryfikowano”, „nieznane” lub null.

Przykładowe odpowiedzi dotyczące użytkowników w Brazylii

W Brazylii wartość 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 te informacje:

  • Wartość userStatus będzie równa AgeSignalsVerificationStatus.DECLARED.
  • Wartość ageLower będzie liczbą (np. 13).
  • Wartość ageUpper będzie liczbą lub wartością 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 będzie równa 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 będzie równa null.
  • Pozostałe pola odpowiedzi będą miały wartość null.

Stan użytkownika może zmienić się na DECLARED, gdy jego wiek będzie można udostępnić.

Przykładowe odpowiedzi dotyczące użytkowników w stanach USA

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

W przypadku zweryfikowanego użytkownika otrzymasz te informacje:

  • Wartość userStatus będzie równa AgeSignalsVerificationStatus.VERIFIED.
  • Wartość ageLower będzie liczbą (np. 18).
  • Wartość ageUpper będzie liczbą lub wartością null (np. null).
  • Pozostałe pola odpowiedzi będą miały wartość null.

W przypadku nadzorowanego użytkownika otrzymasz te informacje:

  • Wartość userStatus będzie równa AgeSignalsVerificationStatus.SUPERVISED.
  • Wartość ageLower będzie liczbą (np. 13).
  • Wartość ageUpper będzie liczbą lub wartością null (np. 15).
  • mostRecentApprovalDate będzie obiektem daty Java (np. 2026-01-01) lub null (jeśli nie zatwierdzono żadnej istotnej zmiany).
  • Wartość installID będzie alfanumerycznym identyfikatorem wygenerowanym przez Google Play (np. 550e8400-e29b-41d4-a716-446655441111).

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

  • Wartość userStatus będzie równa AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • Wartość ageLower będzie liczbą (np. 13).
  • Wartość ageUpper będzie liczbą lub wartością null (np. 15).
  • mostRecentApprovalDate będzie obiektem daty Java (np. 2026-01-01) lub null (jeśli nie zatwierdzono żadnej istotnej zmiany).
  • Wartość installID będzie alfanumerycznym identyfikatorem wygenerowanym przez Google Play (np. 550e8400-e29b-41d4-a716-446655441111).

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

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

Strategia ponawiania

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

Wartość numeryczna kodu błędu Kod błędu Opis Możliwość ponowienia
-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 przeładowaniem pamięci urządzenia. Poproś użytkownika o zaktualizowanie aplikacji Sklep Play. Ponów 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 Play Age Signals SDK nie jest już obsługiwana. Poproś użytkownika o zaktualizowanie aplikacji do nowszej wersji, która korzysta z najnowszej wersji pakietu Play Age Signals SDK. 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