Passive Mode

Run the SDK in passive mode to collect insights and integrate ML into your app.

The Nami SDK supports a Passive Mode that allows the SDK to run without affecting the app experience in any way.

In this mode, you do not have to worry about the SDK interfering with existing handling of purchases or the UI of your app, while still getting the benefits of purchase analytics, insights, and machine learning.

What does Passive Mode turn off?

Passive Mode shuts off the following components of the SDK.

  • Campaigns
  • Handling of transactions
  • Purchase validation

Shutting off campaigns

Shutting off campaigns full shuts off the behavior of paywalls in the SDK. With campaigns off, the Nami SDK will never attempt to raise a Paywall.s.

Handling of Transactions

Nami will continue to monitor transactions in your app and these data will be transmitted to the Nami servers. This will enable analytics and insights as well as the Machine Learning to continue to function. However Nami will not take any action on transaction it is monitoring in Passive Mode, such as submitting them to the App Store Platform for processing or clearing transaction queues.

Purchase Validation

Nami will continue to monitor purchase validation to power analytics and machine learning, but the SDK will not be responsible for validating purchases and granting access to features or content based on those purchases.

How to use passive mode

Enable Passive Mode

When you configure the Nami SDK, simply pass in true for passiveMode.

let namiConfig = Nami.NamiConfiguration
namiConfig.appPlatformID = "YOUR_APP_PLATFORM_ID"
namiConfig.passiveMode = true
Nami.configure(namiConfg: namiConfig)

Add tracking for impressions of existing Paywalls

For the analytics, insights, and machine learning to function correctly, it is important that Nami is aware of when a Paywall was displayed to your users.

In order for this to work, you may either create a single Linked Paywall to count all Paywall Impressions in your app, or if you have multiple different purchase screens, you can create one Linked Paywall for each unique purchase screen in your app.

Head to the Paywall screen in the Control Center and create a New Linked Paywall.


Give the Paywall a simple name. In this case we used "Passive Mode Paywall". For the Developer Paywall ID, enter a string that you'll use in your code to track impressions logged to this Paywall.


Now in your app code any time you display a purchase screen to your users, make the following call to log impressions to this Paywall in Passive Mode.

NamiPaywallManager.paywallImpression(developerID: "id_to_use_in_app")

Identify customers if your app is multi-platform

If you are using the Nami SDK across multiple platforms, we recommend identifying your customers with the setExternalIdentifier method on successful sign-in.

Add any machine learning instrumentation

If you wish to leverage Nami's machine learning, be sure to instrument your app for ML as well with these instructions.

Now you are all set up in Passive Mode.

Did this page help you?