Monetization

Placements

Drop one line of code at every monetization moment, then decide what happens from the dashboard — no app release required.

The hardest part of testing a paywall isn't the paywall — it's the wiring. Every time you want to show a different screen, gate a different feature, or try a different offer, someone has to touch the app, rebuild it, and wait on a review. Placements remove that loop entirely. You mark the moments in your app where monetization could happen, and from then on you decide what those moments do from the Superwall dashboard — without shipping a build.

Mark the moment once, decide what happens later

A placement is a named event you register at a point in your app — onboarding finishing, a workout starting, a premium button getting tapped. You add it with a single call to register(), and that's the last time engineering needs to be involved. From there, the placement becomes a remotely-configurable hook: it can trigger a paywall, gate a feature, or do nothing at all, and you change that decision from the dashboard.

See the register() reference

Because the behavior lives server-side, the same line of code can show one paywall today and a completely different experiment tomorrow. You can even add placements you don't use yet and switch them on when you're ready — no redeploy, no waiting on the next release train.

Gate features without hard-coding paywall logic

Pass a feature closure to register() and the placement becomes an access gate. Whether that closure runs is decided by the paywall's gating mode, not by code branches in your app:

  • Gated — the feature runs only after the user subscribes or already has the entitlement.

  • Non-gated — the feature runs immediately, with the paywall shown as a soft prompt.

The important part: you flip between gated and non-gated from the dashboard, so the same placement can hard-gate a feature in one experiment and softly nudge in the next — no new code, no new build.

Learn about feature gating

Send context, target precisely

Every placement can carry parameters — the source screen, a plan tier, a content category, anything you know at that moment. Those parameters flow into the dashboard, where you can filter audiences on them, personalize paywall copy with the values, and forward them to your analytics. One caffeineLogged placement with a source parameter can drive a different paywall for onboarding than it does for a deep-linked return visit.

Standard and custom placements

Custom placements are the app-specific events you name yourself. Alongside them, Superwall fires standard placements automatically — app installs, session starts, failed transactions, survey responses — so you can build campaigns around lifecycle and recovery moments without instrumenting them yourself. Both types feed the same campaigns and audience rules.

Browse standard placements

Built for experiments, not one-offs

Because placements decouple "where" from "what," they're the foundation for running real experiments. A single paywall can serve many placements, and a single placement can route to different paywalls per audience. You can:

  • A/B test which paywall, offer, or onboarding flow a moment triggers — and read the results per placement.

  • Pause a placement to kill an experiment instantly, or resume it for a promotion, all without an app update.

  • Cache your most important campaign first with priority placements so first-launch and onboarding paywalls appear with zero loading delay.

Why teams reach for placements

Growth and marketing teams consistently want the same thing: to test paywalls, offers, and onboarding fast, without queuing behind engineering or a release cycle. Placements are what make that possible. The engineering work is a one-time instrumentation pass; everything after that — what shows, to whom, when, and whether it gates — is a dashboard decision the growth team owns.

Get started

Add the SDK, register your first placement, and wire it into a campaign:

More features

App-to-Web Checkout Send U.S. iOS users from your paywall to a Stripe checkout in Safari, then link the purchase back to the app automatically — no IAP, no auth. Monetization
Audience Targeting Decide exactly which users see which paywall — by user attributes, behavior, device, and subscription state — and change it without shipping a build. Monetization
Campaigns Decide which paywall every user sees, and A/B test new ones, from the dashboard — no app release required. Monetization

Book a demo

Tell us a little about your app and we'll match you with the right person.

  • A personalized walkthrough of the paywall builder
  • Guidance on your monetization and pricing strategy
  • Custom implementation recommendations for your stack
  • A look at proven paywall templates
  • Revenue-optimization best practices

Get started

Build, test, and optimize your paywalls

Join 10,000+ apps using Superwall to grow subscription revenue without shipping an app update.

Start for free

No credit card required