Cómo usar la API de Play Age Signals (beta)

Cuando usas la API de Play Age Signals (beta), aceptas las Condiciones del Servicio y te comprometes a cumplir con todas las políticas para desarrolladores de Google Play. Para solicitar el estado y el rango de edad del usuario, debes llamar a la API desde tu app en el tiempo de ejecución. La API de Play Age Signals solo devuelve datos de los usuarios que se encuentran en regiones en las que la ley exige que Play proporcione datos de categorías de edad.

Play devuelve un rango de edad basado en los rangos de edad definidos por la jurisdicción y las regiones aplicables. Las edades predeterminadas que devuelve la API en las jurisdicciones y regiones aplicables son 0-12, 13-15, 16-17 y 18+, pero es posible que se reciban rangos de edad personalizados. Google Play actualiza automáticamente los indicadores de edad almacenados en caché de un usuario entre 2 y 8 semanas después de su cumpleaños.

Cómo integrar la API de Play Age Signals a tu app

La API de Play Age Signals es compatible con teléfonos, dispositivos plegables y tablets que ejecutan Android 6.0 (nivel de API 23) y versiones posteriores. Para integrar la API de Play Age Signals a tu app, agrega la siguiente dependencia al archivo build.gradle de tu app:

implementation 'com.google.android.play:age-signals:0.0.3'

Cómo solicitar indicadores de edad

El siguiente es un ejemplo de cómo realizar una solicitud de indicadores de edad:

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.
          }
        });

(Opcional) Cómo recibir rangos de edad personalizados

Los rangos de edad predeterminados que devuelve la API en las jurisdicciones y regiones aplicables son 0-12, 13-15, 16-17 y 18+.

Como alternativa, para personalizar los rangos de edad predeterminados según las edades mínimas de tu app, puedes proporcionar estas edades mínimas para tu app en la página Indicadores de edad de Google Play Console.

  1. Ve a la página Indicadores de edad en Play Console.
  2. En la pestaña Rangos de edad personalizados, ingresa hasta tres edades mínimas para tu app. Las edades mínimas deben tener una diferencia de al menos 2 años y se pueden cambiar una vez al año.
  3. Haz clic en Guardar.

Los rangos de edad que se devuelvan anularán la respuesta predeterminada de la API. Por ejemplo:

  • Si estableces una edad mínima (15) en Google Play Console, sucederá lo siguiente:

    • Para un usuario de 0 a 14 años, se mostrará ageLower = 0 y ageUpper = 14.
    • Para un usuario de 15 años o más, se mostrará ageLower = 15.
  • Si estableces dos edades mínimas (13 y 17), sucederá lo siguiente:

    • Para un usuario de 0 a 12 años, se mostrará ageLower = 0 y ageUpper = 12.
    • Para un usuario de 13 a 16 años, se mostrará ageLower = 13 y ageUpper = 16.
    • Para un usuario de 17 años o más, se mostrará ageLower = 17.
  • Si estableces tres edades mínimas (11, 13 y 15), sucederá lo siguiente:

    • Para un usuario de 0 a 10 años, se mostrará ageLower = 0 y ageUpper = 10.
    • Para un usuario de 11 o 12 años, se mostrará ageLower = 11 y ageUpper = 12.
    • Para un usuario de 13 o 14 años, se mostrará ageLower = 13 y ageUpper = 14.
    • Para un usuario de 15 años o más, se mostrará ageLower = 15.

Respuestas de indicadores de edad

La respuesta de la API de Play Age Signals (beta) incluye los siguientes campos y valores. Los valores están sujetos a cambios. Si quieres obtener los valores más recientes, solicita una respuesta de la API cuando se abra tu app. Es tu responsabilidad proporcionar experiencias adecuadas para la edad con estos indicadores.

Campo de respuesta Valores Descripción
userStatus VERIFICADO Google verificó la edad del usuario con un método comercialmente razonable, como un documento de identidad emitido por el Gobierno, una tarjeta de crédito o una estimación facial de la edad. Si userStatus es VERIFIED, puedes ignorar los otros campos.

Usa ageLower y ageUpper para determinar el rango de edad del usuario.
DECLARADO El usuario, su madre, padre o tutor legal declaró su edad.

Usa ageLower y ageUpper para determinar el rango de edad del usuario.
SUPERVISADO El usuario tiene una Cuenta de Google supervisada que administra una madre o un padre que establece su edad.

Usa ageLower y ageUpper para determinar el rango de edad del usuario.

Usa mostRecentApprovalDate para determinar el último cambio significativo que se aprobó.
SUPERVISED_APPROVAL_PENDING El usuario tiene una Cuenta de Google supervisada, y su madre o padre supervisor aún no aprobó uno o más cambios significativos pendientes.

Usa ageLower y ageUpper para determinar el rango de edad del usuario.

Usa mostRecentApprovalDate para determinar el último cambio significativo que se aprobó.
SUPERVISED_APPROVAL_DENIED El usuario tiene una Cuenta de Google supervisada, y su madre o padre supervisor rechazó la aprobación de uno o más cambios significativos.

Usa ageLower y ageUpper para determinar el rango de edad del usuario.

Usa mostRecentApprovalDate para determinar el último cambio significativo que se aprobó.
DESCONOCIDO Se desconoce la edad del usuario, y este se encuentra en una jurisdicción o región aplicable.

Solo aplicable a los estados de EE.UU.: Para obtener un indicador de edad de Google Play, pídele al usuario que visite Play Store para resolver su estado.
null O bien el usuario no se encuentra en las jurisdicciones y regiones aplicables.

O bien el usuario no comparte su edad con las apps.
ageLower De 0 a 18 Es el límite inferior (inclusive) del rango de edad de un usuario supervisado.

Usa ageLower y ageUpper para determinar el rango de edad del usuario.
null
userStatus es desconocido o null.
ageUpper De 2 a 18 Es el límite superior (inclusive) del rango de edad de un usuario supervisado.

Usa ageLower y ageUpper para determinar el rango de edad del usuario.
null O bien el userStatus está supervisado y la edad que certificó la madre o el padre del usuario es superior a 18 años.

O bien el userStatus es desconocido o null.
mostRecentApprovalDate Marca de tiempo Es la fecha effective from del cambio significativo más reciente que se aprobó. Cuando se instala una app, se usa la fecha del cambio significativo más reciente anterior a la instalación.
null O bien el userStatus está supervisado y no se envió ningún cambio significativo.

O bien el userStatus está verificado, es desconocido o null.
installID Es un ID alfanumérico generado por Play. Es un ID que Google Play asigna a las instalaciones de usuarios supervisados y que se usa para notificarte la revocación de la aprobación de la app. Revisa la documentación para obtener información sobre las aprobaciones de apps revocadas.
null El userStatus está verificado, es desconocido o null.

Ejemplos de respuestas para usuarios en Brasil

En Brasil, userStatus solo puede ser DECLARED, UNKNOWN o null.

Para un usuario que declaró su edad y la comparte con las apps, recibirías lo siguiente:

  • userStatus sería AgeSignalsVerificationStatus.DECLARED.
  • ageLower sería un número (por ejemplo, 13).
  • ageUpper sería un número o null (por ejemplo, 15).
  • Los demás campos de respuesta serían null.

Para un usuario cuya edad se desconoce, recibirías lo siguiente:

  • userStatus sería AgeSignalsVerificationStatus.UNKNOWN.
  • Los demás campos de respuesta serían null.

Para un usuario cuya edad no se comparte con las apps, recibirías lo siguiente:

  • userStatus sería null.
  • Los demás campos de respuesta serían null.

El estado del usuario puede cambiar a DECLARED una vez que la edad del usuario esté disponible para compartir.

Ejemplos de respuestas para usuarios en estados de EE.UU.

En los estados de EE.UU. aplicables, userStatus puede ser VERIFIED, SUPERVISED, SUPERVISED_APPROVAL_PENDING, SUPERVISED_APPROVAL_DENIED, UNKNOWN, o null.

Para un usuario verificado, recibirías lo siguiente:

  • userStatus sería AgeSignalsVerificationStatus.VERIFIED.
  • ageLower sería un número (por ejemplo, 18).
  • ageUpper sería un número o null (por ejemplo, null).
  • Los demás campos de respuesta serían null.

Para un usuario supervisado, recibirías lo siguiente:

  • userStatus sería AgeSignalsVerificationStatus.SUPERVISED.
  • ageLower sería un número (por ejemplo, 13).
  • ageUpper sería un número o null (por ejemplo, 15).
  • mostRecentApprovalDate sería un objeto de fecha de Java (por ejemplo, 2026-01-01) o null (si no se aprobó ningún cambio significativo).
  • installID sería un ID alfanumérico generado por Play (por ejemplo, 550e8400-e29b-41d4-a716-446655441111).

Para un usuario supervisado con una aprobación de cambio significativo pendiente, recibirías lo siguiente:

  • userStatus sería AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_PENDING.
  • ageLower sería un número (por ejemplo, 13).
  • ageUpper sería un número o null (por ejemplo, 15).
  • mostRecentApprovalDate sería un objeto de fecha de Java (por ejemplo, 2026-01-01) o null (si no se aprobó ningún cambio significativo).
  • installID sería un ID alfanumérico generado por Play (por ejemplo, 550e8400-e29b-41d4-a716-446655441111).

Cómo controlar los códigos de error de la API

Si tu app realiza una solicitud a la API de Play Age Signals y la llamada falla, tu app recibe un código de error. Estos errores pueden ocurrir por varios motivos, como que la app de Play Store esté desactualizada.

Estrategia de reintentos

Cuando el usuario está en una sesión, te recomendamos que implementes una estrategia de reintento con una cantidad máxima de intentos como condición de salida para que el error interrumpa la experiencia del usuario lo menos posible.

Valor numérico del código de error Código de error Descripción Se puede volver a intentar
-1 API_NOT_AVAILABLE La API de Play Age Signals no está disponible. Es posible que la versión de la app de Play Store instalada en el dispositivo sea antigua.

Posible resolución
  • Pídele al usuario que actualice Play Store.
-2 PLAY_STORE_NOT_FOUND No se encontró ninguna app de Play Store en el dispositivo. Pídele al usuario que instale o habilite Play Store.
-3 NETWORK_ERROR No se encontró ninguna red disponible. Pídele al usuario que compruebe la conexión.
-4 PLAY_SERVICES_NOT_FOUND Los Servicios de Play no están disponibles o la versión es demasiado antigua. Pídele al usuario que instale o actualice los Servicios de Play.
-5 CANNOT_BIND_TO_SERVICE No se pudo realizar la vinculación al servicio de Play Store. Esto puede deberse a que tienes instalada una versión anterior de Play Store en el dispositivo o a que la memoria del dispositivo está sobrecargada. Pídele al usuario que actualice la app de Play Store. Vuelve a intentarlo con una retirada exponencial.
-6 PLAY_STORE_VERSION_OUTDATED La app de Play Store debe actualizarse. Pídele al usuario que actualice la app de Play Store.
-7 PLAY_SERVICES_VERSION_OUTDATED Los Servicios de Play deben actualizarse. Pídele al usuario que actualice los Servicios de Play.
-8 CLIENT_TRANSIENT_ERROR Se produjo un error transitorio en el dispositivo del cliente. Implementa una estrategia de reintento con una cantidad máxima de intentos como condición de salida. Si el problema persiste, pídele al usuario que vuelva a intentarlo más tarde.
-9 APP_NOT_OWNED Google Play no instaló la app. Pídele al usuario que obtenga tu app de Google Play. No
-10 SDK_VERSION_OUTDATED Ya no se admite la versión del SDK de Play Age Signals. Pídele al usuario que actualice tu app a una versión posterior que use una versión reciente del SDK de Play Age Signals. No
-100 INTERNAL_ERROR Error interno desconocido. Implementa una estrategia de reintento con una cantidad máxima de intentos como condición de salida. Si el problema persiste, pídele al usuario que vuelva a intentarlo más tarde. Si falla de forma constante, comunícate con la asistencia para desarrolladores de Google Play, incluye la API de Play Age Signals en el asunto y proporciona la mayor cantidad posible de detalles técnicos (como un informe de errores). No