Age signals
An age signal is information about a user's age that can be used to determine what permissions and features they should have access to. Developers provide age signals to k-ID based on what they've collected, and k-ID's interfaces (VPC or Age Verification) verify and process these age signals to ensure compliance.
What's an age signal?
An age signal can come from various sources that developers might have access to:
- Date of birth: The user's date of birth, which can be provided in formats such as
YYYY,YYYY-MM, orYYYY-MM-DD - Self-attested age: Age information provided directly by the user (for example, through an age gate)
- Age estimation: Estimated age from facial age estimation technology
- Platform age signal: Age information provided by game platforms (Meta, Xbox, PlayStation) when a game launches
- Verified age: Age that has been verified through ID document verification or other trusted methods
How k-ID handles age signals
k-ID provides interfaces for collecting and verifying age signals:
- Developers provide age signals: If developers have collected age information from any source (platform, existing account), they can provide it to k-ID
- CDK provides collection interfaces: If developers use the CDK, k-ID provides the interface to collect age signals for VPC
- VPC and Age Verification verify age signals: These interfaces are what verify and process the age signals that developers provide
Using platform age signals
Many game platforms (Meta, Xbox, PlayStation) send age platform-specific signals to a game when it launches. These signals provide age information about the user that has been verified by the platform.
Handling platform age signals
When the game shows an age gate, it's possible that the age given by the player is outside the range given by the platform-specific age signal. In this case, to be compliant, developers should assume the lower of the two values. This ensures that if a platform indicates a user is younger than their claimed age, the platform signal takes precedence for compliance purposes.
It's up to developers to handle discrepancies between age signals and ensure compliance by using the more restrictive age when there's a conflict.
Constraining age gates with platform signals
To prevent the discrepancy in the first place, the game can use the platform age signal to limit the possible ages the player can give in the age gate. To do this, there are two important fields, digitalConsentAge and civilAge, that are returned from the /age-gate/get-requirements API.
Using these fields, you can constrain the age gate to:
- Digital minors: Only allow ages for a digital minor up to the age of digital consent (
digitalConsentAge) - Digital youth (teens): Only allow age values between the age of digital consent (
digitalConsentAge) and civil age (civilAge) - Legal adults: Allow ages at or greater than the civil age (
civilAge)
This approach ensures that players can't claim an age that conflicts with the platform's verified age signal, reducing discrepancies and ensuring compliance.
Example implementation
When receiving a platform age signal, developers can use it to:
- Pre-populate or constrain the age gate based on the platform signal
- Validate user input against the platform signal
- Use the more restrictive age when there's a discrepancy
Developers should handle any conflicts between age signals by using the more restrictive age to ensure compliance.
Previously verified age
Sometimes game developers already know the age of a player when the player starts a new game. This is usually because the player has signed in to the game with an identity known to the game developer. In this case, the game can avoid displaying the age gate, and instead just call /age-gate/check, passing in the location and previously verified date of birth.
Age signal collection methods
The methods available for collecting age signals vary by jurisdiction. The /age-gate/get-requirements API returns an approvedAgeCollectionMethods array that specifies which methods are allowed in the current jurisdiction:
date-of-birth: Full date of birth (YYYY-MM-DD)age-slider: Age range or approximate age selectionplatform-account: Using existing platform account age verification
When showing an age gate, a best practice is to show a "neutral age gate," one which doesn't have an age already set so the user has to take action to set an age. Additionally, if the age gate uses a slider for the age value, it's recommended by the ESRB that the maximum age in a slider age gate should be 35.
Using age status
While k-ID provides a wealth of permission settings that pertain to specific features, some games might need to create a more distinct player experience independent of any one feature. For example, a game might not show any in-game ads at all if a player isn't a legal adult. In this case the game can check the ageStatus field in the Session. This field can be either DIGITAL_MINOR (below the age of digital consent), DIGITAL_YOUTH (below the civil age, but greater than the age of digital consent), or LEGAL_ADULT (civil age).