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