Skip to main content

What is a “fallback bundle”?

The Helium SDK does its best to fetch the latest paywalls to display in your app. But if for some reason a paywall is not available — perhaps if an app user temporarily did not have a data connection — Helium will attempt to show a “fallback”. By using a fallback bundle you can download copies of your actual Helium paywalls and include that in your app to use in the rare case that a Helium paywall is not ready for display.

Download Fallback Bundle

Go to the Workflows page in your dashboard and find the Download Fallbacks button: Download Fallbacks 1 Pn Click that to open a dialog and select which control paywalls you would like to include as fallback for their corresponding trigger.
If you update these paywalls (or add new ones) then you might consider doing this process again to get a newer fallback bundle.
Download the file. It should be named something like fallback-bundle-xxxx-xx-xx.json where the x ‘s are replaced with today’s date.

Pass Fallback Bundle to Helium SDK

  • iOS
  • React Native
  • Flutter
  1. Integrate the SDK with the iOS Quickstart if you haven’t done so already.
  2. Drag your downloaded bundle into the Project navigator of your Xcode project.
  3. You should see a dialog with Action and **Targets **fields. For Action, either option (copy or move) is fine. For **Targets **ensure that your app’s main target is selected.
  4. Then pass the bundle URL to Helium.initialize
let fallbackBundleURL = Bundle.main.url(forResource: "fallback-bundle-xxxx-xx-xx", withExtension: "json")

Helium.shared.initialize(
   apiKey: apiKey,
   heliumPaywallDelegate: delegate,
   // ... other parameters ...
   fallbackConfig: HeliumFallbackConfig.withFallbackBundle(fallbackBundleURL)
)
Make sure to replace fallback-bundle-xxxx-xx-xx with the correct name!
All done! If you want to test the fallback bundle, you can run your app with device in airplane mode and attempt to show a paywall. The corresponding fallback paywall should display!

How to Monitor and Minimize Fallback Rate

You can check your app’s fallback rate by going to https://app.tryhelium.com/metrics, and clicking on the “Fallback Rate” tab under Monitoring. This rate shows the # of fallback paywall opens vs prod paywall opens. If you notice your fallback rate is substantially high, here are some tips on minimizing it:
  • Set a higher loading budget (requires Helium SDK 3.0.0+). If a paywall is opened while a download is still in progress, Helium will show a shimmer for loadingBudget seconds while waiting for the download to finish, before falling back. Simply increasing this value can basically eliminate most cases of fallbacks safe - we recommend < 5 seconds.
  • Move your initialize() call earlier in your app’s lifecycle. We recommend right after app launch, or right after onboarding with a higher loading budget.
  • Reduce the size of image assets in your paywall. We recommend keeping each paywall to be under about 3-5 MB in total size. If you’re adding high resolution imagery to your paywall (which is fine!) we recommend converting images to .webp format - e.g. with an online converter like https://cloudconvert.com/webp-converter.
If these aren’t options for you (for example, if you have a lot of paywalls) and the above aren’t helpful, please get in touch! We’ll be happy to build a custom solution or server for you to ensure your fallback rate is low and your paywall $ rate is high.
I