@apex-inc/react-native
v0.3.0
Published
Apex measurement SDK for React Native — events, identify, screen, and offline-queued delivery over the Apex ingest API.
Maintainers
Readme
@apex-inc/react-native
Apex measurement SDK for React Native — events, identify, screen, and offline-queued delivery over the Apex ingest API. Pure TypeScript; no native modules required for core event tracking.
Install
npm install @apex-inc/react-native
# optional but recommended for persistence across cold starts:
npm install @react-native-async-storage/async-storageUsage
import { Apex } from "@apex-inc/react-native";
import AsyncStorage from "@react-native-async-storage/async-storage";
await Apex.initialize({
workspaceKey: "prj_…",
platform: "ios", // or "android"
storage: AsyncStorage, // omit to use in-memory (session-only)
apiKey: "apex_uk_…", // optional: enables identity auto-stitch
});
await Apex.track("app_open");
await Apex.track("purchase", { value: 9.99, currency: "USD" });
await Apex.identify("user_123", { plan: "pro" });
await Apex.screen("Home");
await Apex.flush(); // force-send (also auto-flushes at `flushAt`)
await Apex.reset(); // on logoutBehavior
- Stable visitor id persisted via the injected storage (survives cold starts when AsyncStorage is provided).
- Offline queue persisted between launches; flushed in batches to
POST /api/events. - Delivery semantics: 2xx clears the batch; 4xx stops flushing (events retained); 5xx / network errors retry with exponential backoff (1s, 2s, 4s) then retain for the next flush.
- Sessions rotate after 30 minutes of inactivity.
Deferred / not yet included
- Native modules for IDFA/GAID + deferred deep-link resolution (these pair with the Tier 1.1 ingest wiring and require native code).
- Publishing: this package is built and tested but not yet published to
the
@apex-incnpm org (pending org access).
Development
npm install
npm test # vitest
npm run verify # typecheck + test + build