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:
- W Konsoli Play otwórz stronę Sygnały dotyczące wieku.
- 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.
- 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 ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
|
| ZADEKLAROWANE | Wiek użytkownika został podany 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ę. |
|
| 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 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 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ść
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.
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ść
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:
userStatusbędzie mieć wartość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 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 |