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 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 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 i 18+, ale mogą być też zwracane niestandardowe przedziały wiekowe. 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.

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+.

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

  1. W Konsoli Play otwórz stronę Sygnały dotyczące wieku.
  2. Na karcie Niestandardowe przedziały 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.

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

  • Jeśli w Konsoli Google Play ustawisz jeden minimalny wiek (15 lat):

    • W przypadku osoby w wieku od 0 do 14 lat zwraca wartości ageLower = 0ageUpper = 14.
    • W przypadku osoby, która ma co najmniej 15 lat, funkcja zwróci wartość ageLower = 15.
  • Jeśli ustawisz 2 minimalne progi wiekowe (13 i 17 lat):

    • W przypadku dziecka w wieku od 0 do 12 lat zwraca wartości ageLower = 0ageUpper = 12.
    • W przypadku osoby w wieku 13–16 lat funkcja zwróci wartości ageLower = 13ageUpper = 16.
    • W przypadku osoby, która ma co najmniej 17 lat, funkcja zwróci wartość ageLower = 17.
  • Jeśli ustawisz 3 minimalne progi wiekowe (11, 13 i 15 lat):

    • W przypadku dziecka w wieku od 0 do 10 lat zwraca wartości ageLower = 0ageUpper = 10.
    • W przypadku 11- lub 12-latka zwróci wartości ageLower = 11ageUpper = 12.
    • W przypadku 13- lub 14-latka zwracane są wartości ageLower = 13 i ageUpper = 14.
    • W przypadku osoby, która ma co najmniej 15 lat, funkcja zwróci 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ź z interfejsu API po otwarciu aplikacji. Odpowiadasz za dostarczanie 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, takiej jak dokument tożsamości wydany przez organ państwowy, karta kredytowa lub szacowanie wieku na podstawie twarzy. Jeśli wartość pola 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ł zadeklarowany 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ę.
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 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 aplikacjom 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 nadzorowanego użytkownika 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 te 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.

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

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) lubnull (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:

  • Wartość userStatus to: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) lubnull (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 starszej 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