Placement-by-placement product behavior

iOS Paywall & Gate Plan

Design contract

Use the Midnight Studio system from the supplied artifact: four full-page decision moments and contextual bottom sheets at the exact tap. All surfaces route through one paywall coordinator and one pending-action mechanism.

iOS responsibilities

Full-page paywalls

PlacementWhenPrimary storyDismissPurchase outcome
OnboardingAfter Wait/Listen, before main tabsFrame Free, 3-day Plus trial, and ProContinue Free; may invoke 50% exit onceComplete onboarding after activation or free choice
Second/extra creationGeneration preflight returns no recurring/one-time creditKeep creating beyond Free allowanceOffer ladder based on persisted stageRetry original generation
Plan & BillingProfile/Settings user actionCompare, upgrade, manage, restoreClose; no forced rescue by defaultRefresh plan screen
Locked generated episodeUser taps personal episode requiring PlusPlay the exact episode they choseReturn to detail; optional rescuePlay episode

Contextual gate sheets

GateTriggerRequired accessResume action
Generation allowanceRecurring/one-time credit or duration denialTier/credit shown by backendSubmit adjusted or paid generation
Higher recurring allowanceUser requests a schedule or generation beyond the weekly creditsTier and remaining weekly credits returned by backendSave or retry after valid access
Document attachNo upload capability, no credits, or file too largePlus/Pro and matching limitOpen picker or choose smaller file
RemixFree user taps RemixTrial/Plus/ProOpen prefilled Remix
Pro sourcesUser taps source monitoring/export/advanced toolProOpen exact tool
TranscriptFree user opens transcript tabTrial/Plus/ProReveal transcript
SpeedFree selects >1×; Plus selects >1.5×Plus for ≤1.5×; Pro for ≤2×Apply selected speed
SoundscapeUser selects locked extended/complete soundscapeCatalog-specific tierSelect soundscape
Explore timeFree weekly playback reaches 45 min + rolloverTrial/Plus/ProResume selected content

Offer presentation flow

  1. Coordinator requests backend offer state and RevenueCat placement offering.
  2. Standard stage presents normal paywall. Close invokes RevenueCat 50% exit paywall once.
  3. After exit close, dismiss all layers, report outcome, persist stage/cooldown.
  4. At a later eligible gate, 50% is primary. Its close invokes 65% exit once.
  5. 65% close ends the flow. Never immediately re-present another modal.
  6. Any purchase waits for entitlement activation, refreshes server snapshot, then resumes pending action.

Trial UI requirements

Feature UI gates

Jump-notification surfaces

NudgeSurfaceEligibilityTap destination
Allowance 80% usedCreate banner/cardFree; no dismissal cooldownPlan paywall at generation placement
Weekly credit readyHome card/inboxFree with available creditCreate with quota context
Trial endingIn-app banner + opted-in local/pushActive trial, ~24h remainingPlan & Billing
Locked feature discoveredOne-time coachmarkFirst transcript/remix/soundscape lockContextual gate
50%/65% campaignHome/inbox, never auto-modalBackend offer-stage eligibleEligible offering

Presentation safety rules

Settings/Profile subscription management

Plan & Billing is a first-class Settings/Profile destination, not only a paywall placement. It displays effective access and usage, opens plan comparison for Free users, opens Apple’s management sheet or RevenueCat Customer Center for App Store subscribers, supports restore, and refreshes after every plan change. Detailed screen states, upgrade/downgrade timing, error behavior, analytics, and QA are defined in the separate iOS Subscription Management IPRD.

iOS telemetry

iOS acceptance matrix