En este documento, se describe cómo solicitar indicadores de edad con la API de Play Age Signals.
El SDK de Play Age Signals 0.0.4 presenta una arquitectura de dos funciones diseñada para simplificar las solicitudes de indicadores de edad y admitir nuestro modelo basado en la elección del usuario. Para solicitar indicadores de edad, usa este flujo de trabajo de alto nivel:
Llama al método requestAgeSignalsAccess(Activity), que devuelve ageSignalsStatus. El valor de ageSignalsStatus puede ser SHARED, NOT_SHARED o VERIFICATION_REQUIRED.
- Si es
ageSignalsStatus == NOT_SHARED: Tu app no recibirá indicadores de edad en la respuesta de la API. - Si es
ageSignalsStatus == SHARED, llama al métodocheckAgeSignals(). Si el usuario o su madre o padre decidieron compartir los indicadores de edad, recibirás estos indicadores como parte de la respuesta de la API y podrás decidir cómo controlar la respuesta. - Si es
ageSignalsStatus == VERIFICATION_REQUIRED: Se desconoce la edad del usuario y este se encuentra en una jurisdicción o región aplicable en la que la verificación de edad y el uso compartido de indicadores de edad son obligatorios. Para obtener un indicador de edad de Google Play en estas regiones, pídele al usuario que visite Play Store para resolver su estado.
El método requestAgeSignalsAccess(Activity) devuelve valores diferentes según si la divulgación obligatoria de la edad se aplica en una región:
- En el caso de los usuarios que cumplen con los requisitos en los estados de EE.UU. con leyes que exigen que las tiendas de aplicaciones proporcionen información de edad verificada a los desarrolladores, no se activa el mensaje integrado en la app.
En su lugar, se les pedirá a los usuarios que verifiquen o configuren la supervisión cuando visiten la app de Play Store. Usa el valor de
ageSignalsStatuspara determinar el estado de verificación:- Si el usuario completó la verificación de edad o la supervisión parental está activa, el valor de
ageSignalsStatusesSHARED. - Si el usuario aún no verificó su edad ni configuró la supervisión, el valor de
ageSignalsStatusesVERIFICATION_REQUIRED. Para obtener más información, consulta Cambios en Google Play relacionados con las próximas leyes sobre tiendas de aplicaciones para usuarios de los estados de EE.UU. aplicables.
- Si el usuario completó la verificación de edad o la supervisión parental está activa, el valor de
- Para los usuarios de otras regiones en las que el uso compartido de la edad se basa en la elección del usuario o de su madre o padre, se aplica lo siguiente:
- Si el parámetro de configuración del usuario es Preguntar antes de compartir, se muestra el mensaje en la app. Si el usuario acepta compartir su edad, el valor de
ageSignalsStatusesSHARED; de lo contrario, esNOT_SHARED. - Si el parámetro de configuración del usuario es Siempre compartir, no se muestra el mensaje integrado en la app y el valor de
ageSignalsStatusesSHARED. - Si el parámetro de configuración del usuario es Nunca compartir, no se muestra el mensaje en la app y el valor de
ageSignalsStatusesNOT_SHARED. - En el caso de los usuarios supervisados, las madres o los padres pueden optar por compartir la edad de sus hijos o hijas en la configuración de la app de Family Link. Si los padres deciden compartir la edad, el valor de
ageSignalsStatusseráSHARED; de lo contrario, seráNOT_SHARED.
- Si el parámetro de configuración del usuario es Preguntar antes de compartir, se muestra el mensaje en la app. Si el usuario acepta compartir su edad, el valor de
En la siguiente imagen, se muestra la configuración del rango de edad de Preguntar antes de compartir en la configuración de Play.
En la siguiente imagen, se muestra la solicitud de uso compartido del rango de edad en la app que se muestra a los usuarios cuando se solicita la edad a través de la API y su parámetro de configuración es Preguntar antes de compartir.
En la siguiente imagen, se muestra cómo el usuario puede habilitar o inhabilitar el uso compartido de la edad para una app específica.
En el siguiente ejemplo, se muestra cómo solicitar indicadores de edad:
Kotlin
// 1. Initialize the AgeSignalsManager (usually in onCreate or class initialization)
val ageSignalsManager = AgeSignalsManagerFactory.create(applicationContext)
// 2. Request or check for age signals access.
// Passing the current Activity allows the Play Store to render the age sharing prompt UI if required.
val accessRequest = AgeSignalsAccessRequest.builder()
.setActivity(this)
.build()
ageSignalsManager.requestAgeSignalsAccess(accessRequest)
.addOnSuccessListener { accessResult ->
if (accessResult.ageSignalsStatus() == AgeSignalsStatus.SHARED) {
// The user (or parent) has agreed to share age range, or is in an eligible auto-share region.
// Retrieve the actual age signals.
retrieveAgeSignals(ageSignalsManager)
} else {
// Age signals are not shared (user didn't share age range, parent rejected the request, or not eligible).
}
}
.addOnFailureListener { exception ->
// Handle API/Play Store connection and system errors
handleAgeSignalsError(exception)
}
private fun retrieveAgeSignals(manager: AgeSignalsManager) {
// 3. Perform the actual age signals query once sharing is active.
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener { ageSignalsResult ->
val installId = ageSignalsResult.installId()
val ageLower = ageSignalsResult.ageLower()
val ageUpper = ageSignalsResult.ageUpper()
val significantChangeDate = ageSignalsResult.significantChangeApprovalDate()
val ageRangeSource = ageSignalsResult.ageRangeSource()
if (ageLower != null) {
if (ageUpper != null) {
// The user is in a specific closed age range [ageLower, ageUpper] (e.g. [13, 15])
} else {
// The user is in the highest open-ended age band [ageLower, null] (e.g. [18, null])
}
} else {
// Both bounds are null: The user is not sharing their age (e.g. they are a verified adult)
}
}
.addOnFailureListener { exception ->
handleAgeSignalsError(exception)
}
}
Java
// 1. Initialize the AgeSignalsManager (usually in onCreate or class initialization)
AgeSignalsManager ageSignalsManager = AgeSignalsManagerFactory.create(getApplicationContext());
// 2. Request or check for age signals access.
// Passing the current Activity allows the Play Store to render the age sharing prompt UI if required.
AgeSignalsAccessRequest accessRequest = AgeSignalsAccessRequest.builder()
.setActivity(this)
.build();
ageSignalsManager.requestAgeSignalsAccess(accessRequest)
.addOnSuccessListener(accessResult -> {
Integer status = accessResult.ageSignalsStatus();
if (status == AgeSignalsStatus.SHARED) {
// The user (or parent) has agreed to share age range, or is in an eligible auto-share region.
// Retrieve the actual age signals.
retrieveAgeSignals(ageSignalsManager);
} else {
// Age signals are not shared (user didn't share age range, parent rejected the request, or not eligible).
}
})
.addOnFailureListener(exception -> {
// Handle API/Play Store connection and system errors
});
private void retrieveAgeSignals(AgeSignalsManager manager) {
// 3. Perform the actual age signals query once sharing is active.
manager.checkAgeSignals(AgeSignalsRequest.builder().build())
.addOnSuccessListener(ageSignalsResult -> {
String installId = ageSignalsResult.installId();
Integer ageLower = ageSignalsResult.ageLower();
Integer ageUpper = ageSignalsResult.ageUpper();
Date significantChangeDate = ageSignalsResult.significantChangeApprovalDate();
@AgeRangeSource Integer ageRangeSource = ageSignalsResult.ageRangeSource();
if (ageLower != null) {
if (ageUpper != null) {
// The user is in a specific closed age range [ageLower, ageUpper] (e.g. [13, 15])
} else {
// The user is in the highest open-ended age band [ageLower, null] (e.g. [18, null])
}
} else {
// Both bounds are null: The user is not sharing their age (e.g. they are a verified adult)
}
})
.addOnFailureListener(exception -> {
handleAgeSignalsError(exception);
});
}
Puntos clave sobre el código
- El método
requestAgeSignalsAccess(Activity)realiza una verificación de bloqueo de los indicadores de edad actuales del usuario y el estado de uso compartido de los indicadores de edad. - Después de llamar a
requestAgeSignalsAccess(Activity), Play muestra un mensaje integrado en la app solo para los usuarios no supervisados. Las madres y los padres de usuarios supervisados pueden compartir la edad de sus hijos o hijas administrando la configuración de uso compartido de la edad en la app de Family Link. - Si el usuario descarta o rechaza el uso compartido de la edad, se mostrará el mensaje en la app varias veces antes de que se deje de mostrar.
- El método
checkAgeSignals()obtiene el valor de los indicadores de edad en la respuesta de la API. Este método devuelveageRangeSource,ageUpper,ageLowery otros valores de cambio significativos.