Prepare paywall for display. This method should ideally be called every time before calling NamiPaywallManager.raisePaywall()

This method helps you ensure that all data is available for the paywall before displaying it!

NamiPaywallManager.preparePaywallForDisplay(developerPaywallID: String, backgroundImageRequired: Bool, imageFetchTimeout: Float) { (success: Bool, error: Error?) in
  // raise paywall if success is true                                                                                                                                 
[NamiPaywallManager preparePaywallForDisplayWithDeveloperPaywallID:@"Paywall1" backgroundImageRequired:BOOL imageFetchTimeout:10.0 prepareHandler:^((BOOL) success, (NSError * _Nullable) error) {
  // display paywall or handle error  

[NamiPaywallManager preparePaywallForDisplayWithBackgroundImageRequired:BOOL imageFetchTimeout:FLOAT prepareHandler:^((BOOL) success, (NSError * _Nullable) error) {
  // display paywall or handle error
NamiPaywallManager.preparePaywallForDisplay { success, error ->
  // RaisePaywall if success or react to error
NamiPaywallManager.preparePaywallForDisplay(new NamiResultCallback<PreparePaywallResult>() {
            public void invoke(PreparePaywallResult result) {
                result.onSuccessOrElse(new NamiSuccessHandler() {
                    public void invoke() {
                }, new NamiFailureHandler<PreparePaywallError>() {
                    public void invoke(@NonNull PreparePaywallError error) {
                        Log.d("TAG", "preparePaywallForDisplay Error -> " + error);
var preparePaywallResult = await NamiPaywallManager.preparePaywallForDisplay();

Optional Parameters:

  • A [developerPaywallId] if you want to prepare a specific paywall before raising it.
  • A bool for [backgroundImageRequired] to force whether background image is required to display paywall or not. By default it is false. If passed as true then sdk would try to re-fetch the background image and invoke callback based on image availability
  • An optional timeout [imageFetchTimeout] in seconds value for above image fetching operation

The error returned may be one of several possibilities, each with a specific error code:




Paywall already displayed


Paywall data not available


No campaign is live


Image load failed, and the flag was set to require an image be loaded.


The Paywall Developer ID used was not found in your Nami config, check to make sure the value you entered matches the paywall developer ID specified in the Nami Control Center.


The SDK is not yet initialized, make sure you call Nami.configure() before this call.