In diesem Dokument wird beschrieben, wie du Altersinformationen mit der Play Age Signals API anfordern kannst.
Das Play Age Signals SDK 0.0.4 führt eine Architektur mit zwei Funktionen ein, die Anfragen zu Altersinformationen vereinfachen und unser auf Nutzerauswahl basierendes Modell unterstützen soll. So forderst du Altersinformationen an:
Rufe die Methode requestAgeSignalsAccess(Activity) auf, die ageSignalsStatus zurückgibt. Der Wert von ageSignalsStatus kann SHARED,
NOT_SHARED oder VERIFICATION_REQUIRED sein.
- Wenn
ageSignalsStatus == NOT_SHAREDist, erhält deine App in der API-Antwort keine Altersinformationen. - Wenn
ageSignalsStatus == SHAREDist, rufe die MethodecheckAgeSignals()auf. Wenn der Nutzer oder Elternteil entschieden hat, die Altersinformationen weiterzugeben, erhältst du sie als Teil der API-Antwort und kannst entscheiden, wie du mit der Antwort umgehst. - Wenn
ageSignalsStatus == VERIFICATION_REQUIREDist, ist das Alter des Nutzers unbekannt und der Nutzer befindet sich in einem anwendbaren Rechtssystem oder einer anwendbaren Region, in der die Altersüberprüfung und die Weitergabe von Altersinformationen obligatorisch sind. Wenn du in diesen Regionen Altersinformationen von Google Play erhalten möchtest, bitte den Nutzer, den Play Store aufzurufen, um seinen Status zu überprüfen.
Die Methode requestAgeSignalsAccess(Activity) gibt je nachdem, ob die obligatorische Weitergabe von Altersinformationen in einer Region gilt, unterschiedliche Werte zurück:
- Für berechtigte Nutzer in US-Bundesstaaten mit Gesetzen, die App-Shops dazu verpflichten, Entwicklern bestätigte Altersinformationen zur Verfügung zu stellen, wird der In-App-Prompt nicht ausgelöst.
Stattdessen werden Nutzer aufgefordert, ihr Alter zu bestätigen oder die Elternaufsicht einzurichten, wenn sie die Google Play Store App aufrufen. Verwende den Wert von
ageSignalsStatus, um den Überprüfungsstatus zu bestimmen:- Wenn der Nutzer den Altersnachweis abgeschlossen hat oder die Elternaufsicht aktiv ist, ist der Wert von
ageSignalsStatusgleichSHARED. - Wenn der Nutzer sein Alter noch nicht bestätigt oder die Elternaufsicht noch nicht eingerichtet hat, ist der Wert von
ageSignalsStatusgleichVERIFICATION_REQUIRED. Weitere Informationen findest du unter Änderungen bei Google Play aufgrund anstehender App-Shop-Gesetze für Nutzer in bestimmten US-Bundesstaaten.
- Wenn der Nutzer den Altersnachweis abgeschlossen hat oder die Elternaufsicht aktiv ist, ist der Wert von
- Für Nutzer in anderen Regionen, in denen die Weitergabe von Altersinformationen auf der Entscheidung des Nutzers oder Elternteils basiert:
- Wenn die Einstellung des Nutzers Vor dem Weitergeben fragen lautet, wird der In-App-Prompt
angezeigt. Wenn der Nutzer zustimmt, sein Alter weiterzugeben, ist der Wert von
ageSignalsStatusgleichSHARED, andernfallsNOT_SHARED. - Wenn die Einstellung des Nutzers Immer weitergeben lautet, wird der In-App-Prompt nicht
angezeigt und der Wert von
ageSignalsStatusist gleichSHARED. - Wenn die Einstellung des Nutzers Nie weitergeben lautet, wird der In-App-Prompt nicht
angezeigt und der Wert von
ageSignalsStatusist gleichNOT_SHARED. - Bei Nutzern mit Elternaufsicht können Eltern in den Einstellungen der Family Link App auswählen, ob das Alter ihres Kindes weitergegeben werden soll. Wenn die Eltern die Weitergabe des
Alters auswählen, ist der Wert von
ageSignalsStatusgleichSHARED, andernfalls gleichNOT_SHARED.
- Wenn die Einstellung des Nutzers Vor dem Weitergeben fragen lautet, wird der In-App-Prompt
angezeigt. Wenn der Nutzer zustimmt, sein Alter weiterzugeben, ist der Wert von
Informationen zur Weitergabe von Altersinformationen bei Google Play, einschließlich des In-App-Prompts und der Freigabeeinstellungen für Altersgruppen, findest du unter Weitergabe von Informationen zur Altersgruppe bei Google Play.
Im folgenden Beispiel wird gezeigt, wie du Altersinformationen anforderst:
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);
});
}
Wichtige Punkte zum Code
- Die Methode
requestAgeSignalsAccess(Activity)führt eine blockierende Überprüfung des aktuellen Status der Altersinformationen und der Weitergabe von Altersinformationen des Nutzers durch. - Nachdem du
requestAgeSignalsAccess(Activity)aufgerufen hast, zeigt Google Play nur für Nutzer ohne Elternaufsicht einen integrierten In-App-Prompt an. Eltern von Nutzern mit Elternaufsicht können das Alter ihres Kindes weitergeben, indem sie die Freigabeeinstellungen für das Alter in der Family Link App verwalten. - Wenn der Nutzer die Weitergabe von Altersinformationen ablehnt oder den Prompt schließt, wird der In-App-Prompt einige Male angezeigt, bevor er unterdrückt wird.
- Die Methode
checkAgeSignals()ruft den Wert der Altersinformationen in der API-Antwort ab. Diese Methode gibtageRangeSource,ageUpper,ageLowerund andere wichtige Änderungswerte zurück.