Korzystając z interfejsu Play Age Signals API (beta), akceptujesz warunki korzystania z 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 w przypadku użytkowników z regionów, w których prawo wymaga od Google Play udostępniania danych o kategoriach wiekowych.
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 od 18 wzwyż, ale mogą się one zmieniać w zależności od wymagań regionalnych.
Integrowanie interfejsu Play Age Signals API z aplikacją
Interfejs Play Age Signals API jest obsługiwany na Androidzie 6.0 (poziom interfejsu API 23) i nowszych wersjach.
Aby zintegrować interfejs Play Age Signals API z aplikacją, dodaj ten ciąg do pliku build.gradle aplikacji:
implementation 'com.google.android.play:age-signals:0.0.2'
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 SUPERVISED, VERIFIED, 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. } });
Sygnały dotyczące wieku są przechowywane przez Google Play na urządzeniu dla każdego użytkownika. Gdy użytkownik z nadzorowanym kontem Google osiągnie nowy przedział wiekowy, Google Play automatycznie zaktualizuje sygnały wieku w pamięci podręcznej w ciągu 2–8 tygodni od daty urodzin użytkownika.
(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 i 18+. W przyszłości mogą się one zmienić w zależności od lokalnych wymagań.
Możesz też dostosować 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. Interfejs Age Signals API zwraca dostosowane przedziały wiekowe. Na przykład jeśli podasz minimalne progi wiekowe 9, 15 i 17 lat, 14-letni użytkownik będzie mieścił się w zakresie wiekowym 10–15 lat.
Aby dostosować zakresy wieku 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 przedziały wiekowe wpisz maksymalnie 3 minimalne wieki użytkowników Twojej 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 dostarczanie treści odpowiednich dla wieku użytkowników na podstawie tych sygnałów.
| Pole odpowiedzi | Wartości | Opis |
|---|---|---|
userStatus |
ZWERYFIKOWANO | Użytkownik ma ukończone 18 lat. Google potwierdził wiek użytkownika za pomocą uzasadnionej komercyjnie metody, takiej jak dokument tożsamości wydany przez organ państwowy, karta kredytowa lub szacowanie wieku na podstawie twarzy. Jeśli w polu userStatus wybierzesz wartość VERIFIED, możesz zignorować pozostałe pola. |
| NADZOROWANE | Użytkownik ma nadzorowane konto Google zarządzane przez rodzica, który określa jego wiek.
Użyj ikon ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
Użyj ikony mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę. |
|
| SUPERVISED_APPROVAL_PENDING | Użytkownik ma nadzorowane konto Google, a rodzic sprawujący nad nim nadzór nie zatwierdził jeszcze co najmniej jednej oczekującej istotnej zmiany.
Użyj ikon ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
Użyj ikony 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 ikon ageLower i ageUpper, aby określić przedział wiekowy użytkownika.
Użyj ikony mostRecentApprovalDate, aby określić ostatnią zatwierdzoną istotną zmianę. |
|
| NIEZNANY | Użytkownik znajduje się w odpowiedniej jurysdykcji lub regionie, ale nie jest zweryfikowany ani nie podlega nadzorowi. Mogą to być użytkownicy powyżej lub poniżej 18 roku życia. Aby uzyskać sygnał wieku z Google Play, poproś użytkownika o odwiedzenie Sklepu Play w celu rozwiązania problemu ze statusem. | |
null |
Wszyscy pozostali użytkownicy zwracają tę wartość. Jeśli w polu userStatus wybierzesz wartość null, możesz zignorować pozostałe pola. |
|
ageLower |
0–18 | Dolna granica (włącznie) zakresu wieku nadzorowanego użytkownika.
Użyj atrybutów ageLower i ageUpper, aby określić przedział wiekowy użytkownika. |
null |
Pole userStatus jest nieznane lub puste. |
|
ageUpper |
2–18 | Górna granica (włącznie) zakresu wieku nadzorowanego użytkownika.
Użyj atrybutów ageLower i ageUpper, aby określić przedział wiekowy użytkownika. |
null |
Albo userStatus jest nadzorowany, a wiek użytkownika podany przez rodzica lub opiekuna prawnego jest wyższy niż 18 lat.
Lub userStatus jest zweryfikowany, nieznany lub pusty. |
|
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 pusty. |
|
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 jest zweryfikowany, nieznany lub pusty. |
Przykładowe odpowiedzi
Zweryfikowany użytkownik otrzyma:
- Wartość
userStatusbędzie wynosićAgeSignalsVerificationStatus.VERIFIED. - Pozostałe pola odpowiedzi będą puste.
W przypadku nadzorowanego użytkownika otrzymasz:
- Wartość
userStatusbędzie wynosićAgeSignalsVerificationStatus.SUPERVISED. ageLowerto liczba (np. 13).ageUpperbędzie liczbą (np. 15).mostRecentApprovalDatebędzie obiektem daty w języku Java (np.2026-01-01) lub pusty (jeśli nie zatwierdzono żadnej 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 te informacje:
- Wartość
userStatusto:AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING ageLowerto liczba (np. 13).ageUpperbędzie liczbą (np. 15).mostRecentApprovalDatebędzie obiektem daty w języku Java (np.2026-01-01) lub pusty (jeśli nie zatwierdzono żadnej 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 Twoja 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ąpić 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ść liczbowa 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 Play są niedostępne lub ich wersja jest zbyt stara. Poproś użytkownika o zainstalowanie, zaktualizowanie lub włączenie Usług 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 Play wymagają aktualizacji. Poproś użytkownika o zaktualizowanie Usług 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 |
| -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 |