Push & re-engagement
One line of code for tokens, a segmented composer for sending, and retargeting links that measure the comeback honestly.
Setup is one line
import { registerForPush } from "@fictura/sdk";
// After YOUR permission moment — the SDK never prompts on its own.
const granted = await registerForPush();Delivery rides Expo's push service by default, so there are no APNs or FCM keys to upload. Users who granted permission before the SDK arrived are picked up silently at launch. (Expo Go can't receive push since SDK 53 — use a dev build.) Apps that configure OneSignal credentials get a second channel: sends that carry a deep-link route go through OneSignal automatically, since Expo taps can't deep-link there — and on that channel the result reports sends only, without the failed/pruned breakdown.
Sending
Dashboard → Push: title, body, and an audience — all, paid, trial, or free, each with a live recipient count, or a single user looked up by id for support cases. The result reports exactly what happened: sent, failed, and dead tokens pruned.
Win-backs, honestly measured
The cancelled churn state is your win-back window — auto-renew is off but access hasn't lapsed, and will_renew: false in the entitlement marks the same users server-side. Pair the push with a retargeting link (Links → new link → win-back preset): a click from a user Fictura has already attributed counts as a re-engagement, not an install, which keeps a comeback campaign from inflating acquisition numbers for your existing users. (A device Fictura has never attributed still books a first-touch install — retargeting links change how known users count, not unknown ones.)
No scheduler yet
Push today is a manual, one-shot composer — there are no scheduled or triggered campaigns. When a send matters, it's deliberate: pick the segment, write the message, send it.