This document explains the age signal responses returned by the Play Age Signals API.
(Optional) Receive custom age ranges
The default age ranges that the API returns are 0-12, 13-15,
16-17, and 18+.
Alternatively, to customize the default age ranges according to your app's minimum ages, you can provide these minimum ages for your app on the Age signals page in your Google Play Console.
- Go to the Age signals page in your Play Console.
- On the Custom age ranges tab, enter up to three minimum ages for your app. Minimum ages must be at least 2 years apart and can be changed once annually.
- Click Save.
The age ranges returned will override the default API response. For example:
- If you set one minimum age (15) in the Google Play Console:
- A 0 to 14 year old will return
ageLower = 0andageUpper = 14. - A 15+ year old will return
ageLower = 15.
- A 0 to 14 year old will return
- If you set two minimum ages (13 and 17):
- A 0 to 12 year old, will return
ageLower = 0andageUpper = 12. - A 13 to 16 year old will return
ageLower = 13andageUpper = 16. - A 17+ year old will return
ageLower = 17.
- A 0 to 12 year old, will return
- If you set three minimum ages (11, 13 and 15):
- A 0 to 10 year old will return
ageLower = 0andageUpper = 10. - An 11 or 12 year old will return
ageLower = 11andageUpper = 12. - A 13 or 14 year old will return
ageLower = 13andageUpper = 14. - A 15+ year old will return
ageLower = 15.
- A 0 to 10 year old will return
Age signals response fields
The Play Age Signals API (beta) response includes the following fields and values. You are responsible for providing age-appropriate experiences using these signals.
| Response field | Type | Values | Description |
|---|---|---|---|
| ageRangeSource | Enum |
|
|
| ageLower | Integer |
|
The inclusive lower bound of the user's age range. Combine it with ageUpper to determine the band.
Returns null if ageSignalsStatus is NOT_SHARED or VERIFICATION_REQUIRED. |
| ageUpper | Integer |
|
The inclusive upper bound of the user's age range.
Returns null for the highest band (for example, 18+) or if ageSignalsStatus is NOT_SHARED or VERIFICATION_REQUIRED. |
| significantChangeStatus | Enum |
|
This only returns a non-null value in jurisdictions where significant changes are applicable.
|
| significantChangeApprovalDate | Date |
|
The effective date of the most recently approved significant change. All changes with effective dates prior to this date are also approved. Returns null if no changes exist.
Combine it with `significantChangeStatus` to get the approval status for this significant change |
| installId | String |
|
An ID assigned to supervised user installs by Google Play, used for the purposes of notifying you of revoked app approval. Review the documentation for revoked app approvals. |
Example 1
For a user who verified their age by using Digital ID and shares it with apps, you receive the following:
ageRangeSourceisAgeRangeSource.TIER_D.ageLoweris a number (for example, 18).ageUpperisnull.- Other response fields are
null.
Example 2
For an adult user who declared their age (self-declared) and shares it with apps, you receive the following:
ageRangeSourceisAgeRangeSource.TIER_A.ageLoweris a number (for example, 18).ageUpperisnull.- Other response fields is
null.
Example 3
For a supervised minor user whose age is managed by a guardian who has shared it with apps, you receive the following:
ageRangeSourceisAgeRangeSource.TIER_B.ageLoweris a number (for example, 13).ageUpperis a number (for example, 15).- Other response fields is
null.
Example 4
For a user who has not agreed (or whose parent has not agreed) to age sharing, you receive the following:
ageRangeSourceisnull.ageLowerisnull.ageUpperisnull.- Other response fields is
null.
Example 5
For an adult user with an assessed age verified by using age estimation methods (such as selfie assessment, credit card, or Tax ID) who shares it with apps, you receive the following:
ageRangeSourceisAgeRangeSource.TIER_C.ageLoweris a number (for example, 18).ageUpperisnull.- Other response fields is
null.
Example 6
For a supervised minor user whose age is managed by a guardian, with an approved significant change and active install tracking, you receive the following:
ageRangeSourceisAgeRangeSource.TIER_B.ageLoweris a number (for example, 13).ageUpperis a number (for example, 15).significantChangeStatusisSignificantChangeStatus.APPROVED.significantChangeApprovalDateis a Date (for example, "2026-01-15").installIdis a string identifier (for example, "abc123xyz789").