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.
- W Konsoli Play otwórz stronę Sygnały dotyczące wieku.
- 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.
- 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 = 0iageUpper = 14. - W przypadku osoby, która ma co najmniej 15 lat, funkcja zwróci wartość
ageLower = 15.
- W przypadku osoby w wieku od 0 do 14 lat zwraca wartości
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 = 0iageUpper = 12. - W przypadku osoby w wieku 13–16 lat funkcja zwróci wartości
ageLower = 13iageUpper = 16. - W przypadku osoby, która ma co najmniej 17 lat, funkcja zwróci wartość
ageLower = 17.
- W przypadku dziecka w wieku od 0 do 12 lat zwraca wartości
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 = 0iageUpper = 10. - W przypadku 11- lub 12-latka zwróci wartości
ageLower = 11iageUpper = 12. - W przypadku 13- lub 14-latka zwracane są wartości
ageLower = 13iageUpper = 14. - W przypadku osoby, która ma co najmniej 15 lat, funkcja zwróci wartość
ageLower = 15.
- W przypadku dziecka w wieku od 0 do 10 lat zwraca wartości
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 ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
|
| ZADEKLAROWANE | Wiek użytkownika został zadeklarowany przez niego, jego rodzica lub opiekuna prawnego.
Użyj symboli ageLower i ageUpper, 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 ageLower i ageUpper, 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 ageLower i ageUpper, 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 ageLower i ageUpper, 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 ageLower i ageUpper, 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 ageLower i ageUpper, 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ść
userStatustoAgeSignalsVerificationStatus.DECLARED. ageLowerto liczba (np. 13).ageUpperto liczba lubnull(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ść
userStatustoAgeSignalsVerificationStatus.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ść
userStatustonull. - 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ść
userStatustoAgeSignalsVerificationStatus.VERIFIED. ageLowerto liczba (np. 18).ageUpperto liczba lubnull(np.null).- Pozostałe pola odpowiedzi będą miały wartość
null.
W przypadku nadzorowanego użytkownika otrzymasz:
- Wartość
userStatustoAgeSignalsVerificationStatus.SUPERVISED. ageLowerto liczba (np. 13).ageUpperto liczba lubnull(np. 15).mostRecentApprovalDatebędzie obiektem daty w języku Java (np.2026-01-01) lubnull(jeśli nie zatwierdzono istotnej zmiany).installIDto 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ść
userStatusto:AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING. ageLowerto liczba (np. 13).ageUpperto liczba lubnull(np. 15).mostRecentApprovalDatebędzie obiektem daty w języku Java (np.2026-01-01) lubnull(jeśli nie zatwierdzono istotnej zmiany).installIDto 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
|
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 |