v0 preview
AgeSignal SDK
Add age-aware behavior to your Expo or React Native app in under five minutes.
Install
Add the SDK to your Expo project.
npx expo install @agesignal/expo Wrap your app in the provider
The provider initializes the SDK and exposes the signal via hooks.
// App.tsx
import { AgeSignalProvider } from "@agesignal/expo"
export default function App() {
return (
<AgeSignalProvider apiKey={process.env.EXPO_PUBLIC_AGESIGNAL_KEY}>
<RootNavigator />
</AgeSignalProvider>
)
} Request an age signal
Use useAgeSignal() in any component. The signal can come from onboarding, the OS, or an app-store API.
import { useAgeSignal } from "@agesignal/expo"
function Onboarding() {
const { signal, request, loading } = useAgeSignal()
if (!signal) {
return <Button onPress={request}>Continue</Button>
}
return signal.isMinor ? <MinorHome /> : <AdultHome />
} Adapt app behavior
Branch on the signal and apply minor-safe defaults — the whole point of the SDK.
if (signal.isMinor) {
setAdsMode("contextual")
setDiscoveryMode("safe")
hideFeature("dm")
enablePrivateDefaults()
} Audit log
Log age-related decisions locally so you can show your work later.
await AgeSignal.log({
decision: "disabled_personalized_ads",
reason: "signal.isMinor === true",
}) Platforms
- Expo SDK 50+ (managed and dev client)
- Bare React Native 0.73+
- iOS 16+ — wires into emerging Apple age-signal APIs
- Android 13+ — wires into Google age-signal APIs