Using Superwall for Onboarding Flows
Due to the flexible nature of our paywalls and SDK, you can easily use Superwall for onboarding flows.
Superwall's flexible paywall system can be used for building engaging onboarding experiences. With multi-page paywalls, dynamic content, and powerful targeting rules, you can create interactive onboarding flows without shipping app updates. Here's a quick guide on how to get up and running.
Creating an onboarding campaign
Start by creating a campaign specifically for onboarding:
- Navigate to Campaigns in the dashboard sidebar
- Click + New Campaign
- Name it something like "User Onboarding"
- Add a placement to trigger your onboarding flow
Triggering onboarding automatically
There are two main approaches to triggering onboarding:
Using the app_install placement
The app_install standard placement fires automatically when a user first installs your app. This is ideal for showing onboarding since it only fires once:
- Add
app_installas a placement to your onboarding campaign - Optionally, in your audience filters, add a condition like
user.totalPaywallViewsequals0to ensure it only shows to brand new users
Since app_install only fires once per install, you don't need additional logic to prevent it from showing multiple times. However, if users complete onboarding and you want to track that for other purposes, you can still set a user attribute:
// Swift
Superwall.shared.setUserAttributes(["hasCompletedOnboarding": true])
// Android
Superwall.instance.setUserAttributes(mapOf("hasCompletedOnboarding" to true))
// Flutter
Superwall.instance.setUserAttributes({
"hasCompletedOnboarding": true
});
// React Native / Expo
await Superwall.shared.setUserAttributes({ hasCompletedOnboarding: true });Using a custom placement
For more control over when onboarding appears, create a custom placement and register it manually:
// Swift
Superwall.shared.register(event: "start_onboarding")
// Android
Superwall.instance.register("start_onboarding")
// Flutter
Superwall.instance.register("start_onboarding");
// React Native / Expo
await Superwall.shared.register({ placement: "start_onboarding" });This approach lets you trigger onboarding based on specific user actions, like completing account setup or reaching a certain screen.
Building multi-page onboarding paywalls
Superwall's Navigation component is perfect for creating multi-page onboarding experiences. Check out our Simple Onboarding template to see this in action.
To create a multi-page onboarding paywall:
- In the paywall editor, click + to add a new element
- Select Navigation under the "Base Elements" section
- Add your onboarding content pages using stacks
- Add buttons with tap behaviors to navigate between pages, or use transitions like Push, Fade, or Slide
You can also use the Slides component if you want gesture-driven navigation or the Carousel component if you want slides that auto-advance.
Personalizing content with dynamic values
Use variables and dynamic values to show different content based on user attributes, device properties, or actions:
Show different messages based on device type:
if device.interfaceType is "ipad"
then "Welcome to the best iPad experience"
else
then "Welcome to your new favorite app"Display personalized content using user attributes:
if user.accountType is "premium"
then "Unlock your premium features"
else
then "Discover what you can do"This means you can go to certain pages based off a button they tapped showing a survey, change wording, which products to show, and more. Rely on dynamic values and variables to completely customize flows.
Adjust layout based on onboarding progress:
Track which slide users are on using the slides element variable and conditionally show/hide elements or change copy accordingly.
Tracking onboarding analytics
To track onboarding metrics, you can use these Superwall events and can they can also be sent to your own analytics service. Additionally, you can also use custom paywall actions to trigger specific tracking events when users interact with buttons or elements in your onboarding flow, giving you detailed insights into user behavior and drop-off points.
Best practices
- Length: 3-10 pages is usually optimal for onboarding
- Use user attributes: Track onboarding completion and progress to avoid showing it repeatedly
- Test variations: Create multiple audiences to A/B test different onboarding flows
- Make it dismissible: Consider adding a skip option for returning users
- Track analytics: Monitor your onboarding completion rates in the campaign metrics
Remember, since everything is managed through the dashboard, you can iterate on your onboarding experience without shipping app updates.
Going forward
Superwall is currently building out more tools for onboarding, such as text boxes and text entry, and will be available soon.
How is this guide?