Используя API Play Age Signals (бета-версия), вы соглашаетесь с условиями обслуживания и обязуетесь соблюдать все правила для разработчиков Google Play . Чтобы запросить статус пользователя и его возрастной диапазон, вы вызываете API из своего приложения во время выполнения. API Play Age Signals возвращает данные только для пользователей из регионов, где Play обязан по закону предоставлять данные о возрастных категориях.
Play возвращает возрастной диапазон, основанный на возрастных группах, определенных соответствующей юрисдикцией и регионом. По умолчанию API возвращает следующие возрастные диапазоны в соответствующих юрисдикциях и регионах: 0-12, 13-15, 16-17 и 18+, но могут быть получены и пользовательские возрастные диапазоны . Google Play автоматически обновляет кэшированные данные о возрасте пользователя в течение 2-8 недель после дня рождения пользователя.
Интегрируйте API Play Age Signals в ваше приложение.
API Play Age Signals поддерживается на телефонах, складных устройствах и планшетах под управлением Android 6.0 (уровень API 23) и выше. Для интеграции API Play Age Signals в ваше приложение добавьте следующую зависимость в файл build.gradle вашего приложения:
implementation 'com.google.android.play:age-signals:0.0.3'
Запросить возрастные сигналы
Вот пример запроса на предоставление возрастных сигналов:
Котлин
// 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. } });
(Необязательно) Возможность выбора возрастных диапазонов
В соответствующих юрисдикциях и регионах API возвращает следующие возрастные диапазоны: 0-12, 13-15, 16-17 и 18+.
В качестве альтернативы, чтобы настроить возрастные диапазоны по умолчанию в соответствии с минимальным возрастом, установленным для вашего приложения, вы можете указать эти минимальные возрастные значения на странице « Возрастные сигналы» в консоли Google Play. Возвращаемые возрастные диапазоны будут переопределять ответ API по умолчанию. Например, если вы укажете минимальный возраст 9, 15 и 17 лет, 14-летний пользователь попадет в возрастной диапазон 10-15 лет.
Чтобы настроить диапазоны возрастов по умолчанию, возвращаемые API Age Signals, вы можете указать минимальный возраст для вашего приложения:
- Перейдите на страницу «Возрастные сигналы» в вашей игровой консоли.
- На вкладке «Настраиваемые возрастные диапазоны» введите до трех минимальных возрастных категорий для вашего приложения. Разница между минимальными возрастными категориями должна составлять не менее 2 лет, и их можно изменять один раз в год.
- Нажмите « Сохранить ».
Возраст сигнализирует о реакции
Ответ API Play Age Signals (бета-версия) включает следующие поля и значения. Значения могут изменяться. Чтобы получить самые актуальные значения, запросите ответ API при открытии вашего приложения. Вы несете ответственность за предоставление контента, соответствующего возрасту пользователя, с использованием этих сигналов.
| Поле ответа | Ценности | Описание |
|---|---|---|
userStatus | ПРОВЕРЕНО | Google подтвердил возраст пользователя с помощью коммерчески обоснованного метода, такого как удостоверение личности государственного образца, кредитная карта или оценка возраста по лицу. Если userStatus имеет VERIFIED , остальные поля можно игнорировать.Используйте ageLower и ageUpper для определения возрастного диапазона пользователя. |
| ЗАЯВЛЕНО | Возраст пользователя был указан самим пользователем, его родителем или законным опекуном. Используйте ageLower и ageUpper для определения возрастного диапазона пользователя. | |
| ПОД НАДЗОРОМ | У пользователя есть контролируемый аккаунт Google, которым управляет родитель, устанавливающий его возраст. Используйте ageLower и ageUpper для определения возрастного диапазона пользователя.Используйте mostRecentApprovalDate , чтобы определить последнее существенное изменение, которое было утверждено. | |
| Ожидается одобрение под наблюдением | У пользователя есть контролируемый аккаунт Google, и родитель, осуществляющий надзор, еще не одобрил одно или несколько существенных изменений, ожидающих утверждения. Используйте ageLower и ageUpper для определения возрастного диапазона пользователя.Используйте mostRecentApprovalDate , чтобы определить последнее существенное изменение, которое было утверждено. | |
| ОТКАЗ В ОДОБРЕНИИ ПОД КОНТРОЛЕМ | У пользователя есть контролируемый аккаунт Google, и родитель, осуществляющий надзор, отказал в одобрении одного или нескольких существенных изменений. Используйте ageLower и ageUpper для определения возрастного диапазона пользователя.Используйте mostRecentApprovalDate , чтобы определить последнее существенное изменение, которое было утверждено. | |
| НЕИЗВЕСТНЫЙ | Возраст пользователя неизвестен, и пользователь находится в соответствующей юрисдикции или регионе. Применимо только к штатам США: чтобы получить информацию о возрасте пользователя из Google Play, попросите пользователя посетить Play Store, чтобы уточнить свой возраст. | |
null | Для всех остальных пользователей возвращается это значение. Если userStatus равен null , остальные поля можно игнорировать. | |
ageLower | от 0 до 18 | Нижняя граница (включительно) возрастного диапазона пользователя, за которым ведется наблюдение. Используйте значения ageLower и ageUpper для определения возрастного диапазона пользователя. |
null | userStatus неизвестно или null . | |
ageUpper | от 2 до 18 | Верхняя граница (включительно) возрастного диапазона пользователя, за которым ведется наблюдение. Используйте значения ageLower и ageUpper для определения возрастного диапазона пользователя. |
null | Либо userStatus находится под наблюдением, либо возраст родителя пользователя, подтвержденный документально, превышает 18 лет.Или же userStatus неизвестен или null . | |
mostRecentApprovalDate | Штамп даты | Дата effective from последнего утвержденного существенного изменения. При установке приложения используется дата последнего внесенного существенного изменения, предшествующего установке. |
null | Либо userStatus находится под контролем и существенных изменений не было внесено.Или userStatus имеет значение verified, unknown или null . | |
installID | Сгенерированный игрой буквенно-цифровой идентификатор. | Идентификатор, присваиваемый Google Play контролируемым установкам приложений, используется для уведомления вас об отзыве разрешения на установку приложения. Ознакомьтесь с документацией по отзыву разрешений на установку приложений . |
null | userStatus может быть проверенным, неизвестным или null . |
Примеры ответов для пользователей из Бразилии
В Бразилии userStatus может быть только DECLARED и UNKNOWN .
Пользователю, указавшем свой возраст, будет предоставлена следующая информация:
-
userStatusбудет иметь значениеAgeSignalsVerificationStatus.DECLARED. -
ageLowerбудет числом (например, 13). -
ageUpperбудет числом илиnull(например, 15). - Остальные поля ответа будут
null.
Для пользователя, возраст которого неизвестен, вы получите следующее:
-
userStatusбудет иметь значениеAgeSignalsVerificationStatus.UNKNOWN. - Остальные поля ответа будут
null.
Статус пользователя может измениться с UNKNOWN на DECLARED , как только возраст пользователя станет доступен для публикации.
Примеры ответов для пользователей из штатов США
В соответствующих штатах США userStatus может быть VERIFIED , SUPERVISED , SUPERVISED_APPROVAL_PENDING , SUPERVISED_APPROVAL_DENIED , UNKNOWN или null .
Подтвержденный пользователь получит следующее:
-
userStatusбудет иметь значениеAgeSignalsVerificationStatus.VERIFIED. - В качестве
ageLowerможно использовать число (например, 18). -
ageUpperбудет либо числом, либоnull(например,null). - Остальные поля ответа будут
null.
Для пользователя, находящегося под наблюдением, вы получите следующее:
-
userStatusбудет иметь значениеAgeSignalsVerificationStatus.SUPERVISED. -
ageLowerбудет числом (например, 13). -
ageUpperбудет числом илиnull(например, 15). - Объект
mostRecentApprovalDateбудет представлять собой объект Java Date (например,2026-01-01) илиnull(если существенных изменений не было утверждено). -
installIDэто сгенерированный Play идентификатор, состоящий из букв и цифр (например,550e8400-e29b-41d4-a716-446655441111).
Для пользователя, находящегося под наблюдением и ожидающего утверждения существенного изменения, вы получите следующее:
-
userStatusбудет иметь значениеAgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING. -
ageLowerбудет числом (например, 13). -
ageUpperбудет числом илиnull(например, 15). - Объект
mostRecentApprovalDateбудет представлять собой объект Java Date (например,2026-01-01) илиnull(если существенных изменений не было утверждено). -
installIDэто сгенерированный Play идентификатор, состоящий из букв и цифр (например,550e8400-e29b-41d4-a716-446655441111).
Обработка кодов ошибок API
Если ваше приложение отправляет запрос к API Play Age Signals, и вызов завершается неудачей, приложение получает код ошибки. Эти ошибки могут возникать по разным причинам, например, из-за устаревшей версии приложения из Play Store.
Стратегия повторной попытки
В ситуациях, когда пользователь находится в сессии, мы рекомендуем реализовать стратегию повторных попыток с ограничением максимального количества попыток в качестве условия завершения, чтобы ошибка как можно меньше нарушала пользовательский опыт.
| Числовое значение кода ошибки | Код ошибки | Описание | Повторная попытка |
|---|---|---|---|
| -1 | API_НЕ_ДОСТУПЕН | API Play Age Signals недоступен. Возможно, установлена устаревшая версия приложения Play Store на устройстве. Возможное решение
| Да |
| -2 | PLAY_STORE_NOT_FOUND | Приложение Play Store на устройстве не обнаружено. Предложите пользователю установить или включить Play Store. | Да |
| -3 | СЕТЬ_ОШИБКА | Сеть не найдена. Предложите пользователю проверить наличие подключения. | Да |
| -4 | PLAY_SERVICES_NOT_FOUND | Сервисы Play недоступны или их версия слишком устарела. Предложите пользователю установить, обновить или включить сервисы Play. | Да |
| -5 | CANNOT_BIND_TO_SERVICE | Не удалось подключиться к сервису в Play Store. Это может быть связано с тем, что на устройстве установлена старая версия Play Store или перегружена память устройства. Предложите пользователю обновить приложение Play Store. Повторите попытку с экспоненциальной задержкой. | Да |
| -6 | PLAY_STORE_VERSION_OUTDATED | Приложение Play Store необходимо обновить. Предложите пользователю обновить приложение Play Store. | Да |
| -7 | PLAY_SERVICES_VERVION_OUTDATED | Необходимо обновить Play Services. Попросите пользователя обновить Play Services. | Да |
| -8 | CLIENT_TRANSIENT_ERROR | Произошла временная ошибка на клиентском устройстве. Реализуйте стратегию повторных попыток с ограничением максимального количества попыток в качестве условия завершения. Если проблема не решена, попросите пользователя попробовать позже. | Да |
| -9 | APP_NOT_OWNED | Приложение не было установлено через Google Play. Предложите пользователю загрузить ваше приложение из Google Play. | Нет |
| -10 | SDK_VERSION_OUTDATED | Поддержка версии SDK Play Age Signals прекращена. Попросите пользователя обновить ваше приложение до более поздней версии, использующей последнюю версию SDK Play Age Signals. | Нет |
| -100 | ВНУТРЕННЯЯ ОШИБКА | Неизвестная внутренняя ошибка. Реализуйте стратегию повторных попыток с максимальным количеством попыток в качестве условия завершения. Если проблема по-прежнему не решается, попросите пользователя попробовать позже. Если сбой повторяется постоянно, обратитесь в службу поддержки разработчиков Google Play , указав в теме письма API Play Age Signals и предоставив как можно больше технических подробностей (например, отчет об ошибке). | Нет |
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2026-02-26 UTC.