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 sygnały dotyczące wieku w pamięci podręcznej 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'
Żądanie sygnałów dotyczących 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.
- Otwórz stronę Sygnały dotyczące wieku w Konsoli Play.
- Na karcie Niestandardowe przedziały wiekowe wpisz maksymalnie 3 minimalne progi wiekowe dla swojej aplikacji. Minimalne progi wiekowe muszą różnić się o co najmniej 2 lata i można je zmienić raz na rok.
- Kliknij Zapisz.
Zwracane przedziały wiekowe zastąpią domyślną odpowiedź interfejsu API. Przykład:
Jeśli w Konsoli Google Play ustawisz 1 minimalny próg wiekowy (15 lat):
- W przypadku użytkownika w wieku od 0 do 14 lat zwrócimy
ageLower = 0iageUpper = 14. - W przypadku użytkownika w wieku 15 lat lub starszego zwrócimy
ageLower = 15.
- W przypadku użytkownika w wieku od 0 do 14 lat zwrócimy
Jeśli ustawisz 2 minimalne progi wiekowe (13 i 17 lat):
- W przypadku użytkownika w wieku od 0 do 12 lat zwrócimy
ageLower = 0iageUpper = 12. - W przypadku użytkownika w wieku od 13 do 16 lat zwrócimy
ageLower = 13iageUpper = 16. - W przypadku użytkownika w wieku 17 lat lub starszego zwrócimy
ageLower = 17.
- W przypadku użytkownika w wieku od 0 do 12 lat zwrócimy
Jeśli ustawisz 3 minimalne progi wiekowe (11, 13 i 15 lat):
- W przypadku użytkownika w wieku od 0 do 10 lat zwrócimy
ageLower = 0iageUpper = 10. - W przypadku użytkownika w wieku 11 lub 12 lat zwrócimy
ageLower = 11iageUpper = 12. - W przypadku użytkownika w wieku 13 lub 14 lat zwrócimy
ageLower = 13iageUpper = 14. - W przypadku użytkownika w wieku 15 lat lub starszego zwrócimy
ageLower = 15.
- W przypadku użytkownika w wieku od 0 do 10 lat zwrócimy
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, gdy aplikacja się otworzy. Ponosisz odpowiedzialność za 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 ma wartość 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ę. |
|
| OCZEKIWANIE_NA_ZATWIERDZENIE_NADZORU | 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ę. |
|
| ODRZUCONE_ZATWIERDZENIE_NADZORU | 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 |
Od 0 do 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 |
userStatus jest nieznany lub ma wartość null. |
|
ageUpper |
Od 2 do 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 userStatus ma wartość „nadzorowany”, a wiek użytkownika podany przez rodzica lub opiekuna prawnego jest wyższy niż 18 lat.
Albo userStatus jest nieznany 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 userStatus ma wartość „nadzorowany” i nie przesłano żadnej istotnej zmiany.
Albo userStatus ma wartość „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 |
userStatus ma wartość „zweryfikowano”, „nieznane” lub null. |
Przykładowe odpowiedzi dotyczące użytkowników w Brazylii
W Brazylii userStatus może mieć tylko wartość DECLARED,
UNKNOWN, lub null.
W przypadku użytkownika, który zadeklarował swój wiek i udostępnia go aplikacjom, otrzymasz te informacje:
userStatusbędzie mieć wartośćAgeSignalsVerificationStatus.DECLARED.ageLowerbędzie liczbą (np. 13).ageUpperbędzie liczbą lub wartościąnull(np. 15).- Pozostałe pola odpowiedzi będą mieć wartość
null.
W przypadku użytkownika, którego wiek jest nieznany, otrzymasz te informacje:
userStatusbędzie mieć wartośćAgeSignalsVerificationStatus.UNKNOWN.- Pozostałe pola odpowiedzi będą mieć wartość
null.
W przypadku użytkownika, którego wiek nie jest udostępniany aplikacjom, otrzymasz te informacje:
userStatusbędzie mieć wartośćnull.- Pozostałe pola odpowiedzi będą mieć 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 dotyczące użytkowników w stanach USA
W odpowiednich stanach USA userStatus może mieć wartość VERIFIED,
SUPERVISED, SUPERVISED_APPROVAL_PENDING,
SUPERVISED_APPROVAL_DENIED, UNKNOWN, lub
null.
W przypadku zweryfikowanego użytkownika otrzymasz te informacje:
userStatusbędzie mieć wartośćAgeSignalsVerificationStatus.VERIFIED.ageLowerbędzie liczbą (np. 18).ageUpperbędzie liczbą lub wartościąnull(np.null).- Pozostałe pola odpowiedzi będą mieć wartość
null.
W przypadku nadzorowanego użytkownika otrzymasz te informacje:
userStatusbędzie mieć wartośćAgeSignalsVerificationStatus.SUPERVISED.ageLowerbędzie liczbą (np. 13).ageUpperbędzie liczbą lub wartościąnull(np. 15).mostRecentApprovalDatebędzie obiektem daty Java (np.2026-01-01) lubnull(jeśli nie zatwierdzono żadnej istotnej zmiany).installIDbę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:
userStatusbędzie mieć wartośćAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.ageLowerbędzie liczbą (np. 13).ageUpperbędzie liczbą lub wartościąnull(np. 15).mostRecentApprovalDatebędzie obiektem daty Java (np.2026-01-01) lubnull(jeśli nie zatwierdzono żadnej istotnej zmiany).installIDbę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 żądanie 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żna ponowić |
|---|---|---|---|
| -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 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 SDK Play Age Signals nie jest już obsługiwana. Poproś użytkownika o zaktualizowanie aplikacji do nowszej wersji, która korzysta z najnowszej wersji pakietu SDK Play Age Signals. | 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 |