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

Si 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, llama 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 etarios definidos por las regiones y jurisdicciones aplicables. Las edades predeterminadas que devuelve la API en las jurisdicciones y regiones aplicables son de 0 a 12, de 13 a 15, de 16 a 17 y mayores de 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.

Integra la API de Play Age Signals en 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 en tu app, agrega la siguiente dependencia al archivo build.gradle de tu app:

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

Solicita indicadores de edad

A continuación, se muestra 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) Recibe 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 en la página Indicadores de edad de Google Play Console. Los rangos etarios que se devuelvan anularán la respuesta predeterminada de la API. Por ejemplo, si proporcionas edades mínimas de 9, 15 y 17, un usuario de 14 años se incluirá en el rango de edad de 10 a 15 años.

Para personalizar los rangos de edad predeterminados que devuelve la API de Age Signals, puedes proporcionar las edades mínimas de tu app:

  1. Ve a la página Indicadores de edad en Play Console.
  2. En la pestaña Rangos de edades 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.

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 deseas 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 SE VERIFICÓ 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 demás campos.

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

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

Usa ageLower y ageUpper para determinar el rango etario 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 etario 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 etario 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 se aplica a los estados de EE.UU.: Para obtener un indicador de edad de Google Play, pídale al usuario que visite Play Store para resolver su estado.
null O bien el usuario no se encuentra en las regiones y jurisdicciones aplicables.

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

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

Usa ageLower y ageUpper para determinar el rango etario del usuario.
null Cualquiera de las siguientes opciones: El userStatus está supervisado y la edad certificada por la madre o el padre del usuario es mayor de 18 años.

O bien el userStatus es desconocido o null.
mostRecentApprovalDate Marca de fecha 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 userStatus se verificó, se desconoce o es 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 sobre la revocación de la aprobación de la app. Revisa la documentación sobre las aprobaciones de apps revocadas.
null userStatus se verificó, es desconocido o null.

Ejemplos de respuestas para los usuarios en Brasil

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

En el caso de 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.

En el caso de un usuario cuya edad se desconoce, recibirías lo siguiente:

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

En el caso de un usuario cuya edad no se comparte con las apps, recibirás 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 se pueda compartir su edad.

Ejemplos de respuestas para usuarios de 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.

En el caso de un usuario verificado, recibirás 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.

En el caso de un usuario supervisado, recibirás 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).

En el caso de 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, recibirá un código de error. Estos errores pueden ocurrir por varios motivos, como que la app de Play Store esté desactualizada.

Estrategia de reintentos

En situaciones en las que el usuario está en una sesión, recomendamos implementar 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 solució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 su 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 desde 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 el equipo de 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