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ą 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.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 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 wiek, który kwalifikuje go do nowej kategorii wiekowej, Google Play automatycznie zaktualizuje zapisane sygnały wieku tego użytkownika w ciągu 2–8 tygodni od jego urodzin.
(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ą one ulec zmianie 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 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 | 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 wartość pola userStatus to 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 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, którzy ukończyli 18 lat lub nie. Aby uzyskać sygnał dotyczący wieku z Google Play, poproś użytkownika o odwiedzenie Sklepu Play w celu rozwiązania problemu z jego statusem. | |
null |
Wszyscy pozostali użytkownicy zwracają tę wartość. Jeśli wartość pola userStatus to null, możesz zignorować pozostałe pola. |
|
ageLower |
0–18 | Dolna granica (włącznie) zakresu wieku nadzorowanego użytkownika.
Użyj parametró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 parametrów 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 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ść
userStatustoAgeSignalsVerificationStatus.VERIFIED. - Pozostałe pola odpowiedzi będą puste.
W przypadku nadzorowanego użytkownika otrzymasz:
- Wartość
userStatustoAgeSignalsVerificationStatus.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 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ść 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 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 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 |