Expo analytics, without a native build
Most analytics SDKs need a config plugin and a development build. Apparent's has no native code, so it works in Expo Go and with every EAS Update.
Add it
$ npx expo install apparent-expo @react-native-async-storage/async-storage expo-application expo-localization
// Start it in the root layout (app/_layout.tsx) or App.tsx
import { Apparent } from "apparent-expo";
Apparent.init({ apiUrl: "https://in.apparent.fyi", app: "my-app", key: "<your key>" });
// expo-router, in the root layout:
import { useApparentScreens } from "apparent-expo/router";
useApparentScreens();
// The actions that matter
Apparent.track("sign_up");Why it fits Expo
- Works in Expo Go: no config plugin, no prebuild.
- Every Expo Router screen, from one line in the root layout.
- Ships with EAS Update: no store release to change what you track.
- No ATT prompt, no IP kept.

Questions
Does it work in Expo Go?
Yes. The SDK has no native code of its own.
Does it need a config plugin?
No. Install the package and call init once.
Does it record Expo Router screens?
Yes, every one, from useApparentScreens() in the root layout.
Does Firebase Analytics work in Expo Go?
No. React Native Firebase needs a development build, which is why many Expo apps look for another option.
Also read
- App analytics for solo developers
- Analytics for apps you built with AI
- Add analytics to your app with an AI coding agent
- An MCP server for your app's analytics
- The best analytics for your first app
- App analytics without the ATT prompt
- Privacy-first analytics for mobile apps
- SDKs for iOS, Android, React Native and Flutter
- Apparent compared with Mixpanel, PostHog, Amplitude and Firebase