What AppActor owns
- store-facing purchase verification and reconciliation
- customer access state and entitlement evaluation
- offerings and package catalog delivery
- purchase recovery flows such as restore, sync, retry, and queue drain
- Remote Config APIs
- Experiment assignment APIs
- customer profile context, custom attributes, integration IDs, and attribution helpers
What your app still owns
- the paywall UI itself
- package selection UX
- access gating in the product experience
- account and session logic outside the purchase layer
- dashboard-level analytics interpretation and operational playbooks
Product shape across SDKs
The native iOS and Android SDKs are the core implementation surfaces. Flutter and React Native are thin wrappers over those native plugins, which means:- platform-specific capabilities still matter
- feature rollout order often starts in native code
- some helpers throw or no-op on unsupported platforms
- wrapper docs must explain native behavior instead of hiding it
Canonical flow
- Configure the SDK with your public AppActor key.
- Establish or reuse identity, optionally with a stable
appUserId. - Fetch offerings and packages from AppActor.
- Render your own paywall and purchase a package.
- Read
customerInfoand entitlements to decide access. - Use restore, sync, or queue-drain paths when you need recovery behavior.
Why this matters for docs
Competitor-grade docs in this space are strongest when they stay honest about system boundaries:- there is no hidden hosted paywall runtime in these repos
- identity lifecycle affects restore, cache, and attribution semantics
- offline and cached state can influence user-facing access decisions
- purchase recovery paths are similar in name but different in behavior