Nami Public Documentation
Sign In
Nami Documentation
Nami Documentation
  • Get Started
    • Overview
      • Key Concepts
      • Data Collection
      • Built for Privacy
    • Evaluating Nami
    • SDKs
      • Apple Native SDK
      • Android Native SDK
      • Amazon Native SDK
      • Roku Native SDK
      • React Native Cross-Platform SDK
      • Flutter Cross-Platform SDK
      • Unity Cross-Platform SDK
      • Release Notes
        • Find Nami SDK Version
    • Quickstart Guide
  • Subscription Management
    • Overview
    • Products
      • Archive Products
      • Sync Products
    • Entitlements
    • Customer Screen
    • Accounts and Login/Logout
    • Advanced Use Cases
      • Upgrades and Downgrades
      • Supported Purchase Change States by Platform
      • Restoring Purchases
      • Working with Consumable IAPs
  • No Code Paywalls
    • Overview
    • Paywall Creator
      • Using the Creator
      • Paywall Layout
      • Components
        • Editing, Deleting, Reordering
        • Hiding Components
        • Video
        • Collapse
      • Editable Properties
        • Focused Styling
        • Safe Area
      • Conditions
        • Notched Devices
        • Product Entitlements
      • Adding Products
      • Repeating Product Group
      • Product Fields
      • Capabilities
        • Featured Styling
        • Selected Styling
        • Custom Brand Fonts
        • Carousel
        • Trial Eligibility
        • Deeplink Button
        • Introductory Offer Eligibility
        • Login Check
        • Product Groups
        • Conditional Product Groups
        • Offer Eligibility and Purchasing
        • Screenreader Text
        • Personalization Tokens
        • Custom Variables
        • Multipage
        • Custom Data Source
        • Advanced Video Features
        • Product Error States
      • ❓FAQs
        • Designing Paywalls in Figma
        • Guide to Building a Paywall from Scratch
      • 🎁Releases
        • Roadmap
    • Paywall Templates
      • Pacific
      • Pacific Premium
      • Trident
      • Starfish
      • Mantis
      • Venice
      • Venice Premium
      • Honest
      • Catalina
      • Oyster
      • Puffin
      • Marina
      • Beluga
      • Driftwood
      • Lagoon
      • Pisces
      • Aquarius
      • Conch
      • Lionfish
      • Moray
      • Tetra
      • Lighthouse
      • Puffin Tablet
    • Managing Paywalls
      • Archiving a Paywall
      • Duplicate a Paywall
    • Paywall Smart Text
    • Pricing Eligibility States
    • Pricing Eligibility by Platform
    • Nami Paywalls in Different Languages
    • Legacy Paywalls
  • Campaigns
    • Placements
      • Create a Placement
      • Deeplink Placements
      • Archiving a Placement
      • Managing Lots of Placements
      • Export Placements
    • Campaigns
      • Campaign Filters
        • Campaign Use Cases
      • Archiving a Campaign
      • Scheduling a Campaign
      • Campaign Conversion Events
      • Managing Lots of Campaigns
      • Campaign Troubleshooting
    • A/B and Multivariate Testing
      • Selecting an A/B test winner
      • A/B Test Allocation
  • Integrations
    • All Integrations
    • Billing Platforms
      • Apple Integration
        • App Store Setup
          • Privacy Details
        • Platform Integration
        • App Store Server Notifications
        • Store Credentials
          • App Store Connect Shared Secret
          • Apple App Store Connect API
          • Apple In App Purchase
        • Add a Product
        • Platform Sync
        • SDK Integration
        • Troubleshooting
        • Testing and Development
          • Apple Testing Environments
          • Setting up Device Sandbox Test Environment
          • Setting up StoreKit config in Xcode
      • Google Integration
        • Google Play Store Setup
        • Platform Integration
        • Service Account
        • Real-time Developer Notifications
        • Add a Product
        • Platform Sync
        • SDK Setup
        • Troubleshooting
          • Supporting Android minSdkVersion 25 or lower
          • Requested product is not available for purchase
          • Unsupported Version of Play Billing
      • Amazon Appstore Integration
        • Create Amazon Android App
        • Platform Integration
        • Shared Key
        • Real-time Event Notifications
        • Add a Product
        • SDK Integration
        • Testing
      • Roku Integration
        • Platform Integration
        • API Key
        • Transaction Notifications
        • Add a Product
        • SDK Integration
      • Web Integration
    • Analytics Tools
      • Adobe Analytics
      • Amplitude
      • Google Analytics
      • mParticle
      • 3rd-Party Analytics
    • Subscription Management
      • Nami Subscription Management
      • Bring your Own Payment Code
    • CDP Integrations
      • Adobe CDP Integration
      • Amplitude CDP Integration
      • Custom CDP Integration
      • Generic CDP Integration
    • Other Integrations
      • Wicket Labs
      • Webhooks
        • Introduction to the Nami ML Event System
        • Event Types
          • Purchase Status Updates
          • Events for Upgrades, Downgrades, and Crossgrades
        • Event Subscriptions
        • Understanding Transferred Events and Accounts
      • API Access
    • Events Feed
  • Analytics
    • Using Charts
    • Paywall Analytics
      • Impressions
      • Paywall Conversion Rate
      • Sessions
      • Active Devices
    • Subscription Analytics
      • Revenue
      • MRR
      • Purchases
      • Trial Starts
  • Nami Account
    • Manage your Apps
      • Find your Nami App Platform ID
      • Setting up Legal Text for your Apps
    • Organization
      • Configuring Organization Security Policies
      • Billing
    • Invite your Team
      • Roles
    • Manage your Account
      • Two-Factor Authentication (2FA)
Powered by GitBook
On this page
  • App
  • App Store Platform
  • App Platform
  • Campaigns
  • Customer Journey State
  • Devices
  • Entitlements
  • External Identifiers
  • Paywalls
  • Product SKUs
  • Users
  • How Do These Relate?
  1. Get Started
  2. Overview

Key Concepts

An overview of the key Nami platform concepts.

Last updated 1 year ago

The Nami platform has a few key concepts that are important to understand:

Let's take a look at each of these in more detail and see .

App

Your app on the Nami platform. It all starts here. Creating an app is the first step in getting started with Nami.

Your app may run across a multitude of platforms and environments (such as development, staging, and production). All of these may be grouped under a single app to minimize the amount of configuration work needed to manage an app across multiple platforms.

App Store Platform

An App Store Platform where your app users complete their transactions. Examples of App Store Platforms include:

  • Apple's App Store

  • Google's Play Store

  • Roku

Note the App Store Platform is related to the unique platform that process transactions. In the example of the Apple ecosystem where you have iOS, iPadOS, tvOS, watchOS, and macOS, since they all transact on the App Store, there is only a single App Store Platform for each of these environments.

App Platform

An App on the Nami Platform may have several App Platforms associated with it. Each App Platform must be associated with a single App Store Platform.

In a simple use case, your app will have one App Platform per App Store Platform that you sell on.

Nami also supports having multiple App Platforms with the same App Store Platform. You may want to use this functionality when you have a different app on the Google Play store for testing and production.

Campaigns

A Campaign is the object that provides the "How".

How are you going to show your paywalls and products to your users? Under the hood, Campaigns maintain the rules engine for when and how paywalls will be presented to your customers.

The Nami Control Center will allow you to configure these rules based on certain Campaign Templates so that you can interact with your users in a way that meets your needs.

Customer Journey State

The Customer Journey is the way a user's purchase relationship with your app changes over time. This is affected by a number of events such as purchases, cancellations, as well as more complex scenarios like free trials and account holds.

Nami models all the signals about a single user and puts these into a single Customer Journey State for each user. This state can be used by Campaigns, directly in your app through the SDK, or in any 3rd party integration.

The list of Journey States available is:

Journey State
Definition

former_subscriber

The user has previously had a subscription but does not have one currently.

in_account_hold

User is currently in an account hold. Android Only

in_grace_period

The user is currently in grace period due to their payment not processing.

in_intro_offer_period

The user is currently on a discounted price offered when they first make a purchase.

in_pause

The user's subscription has been paused at their request and will automatically resume. Android Only

in_trial_period

The user is currently in a free trial.

is_cancelled

The user has cancelled their subscription but still has access to their entitlements until the current billing terms ends.

Devices

We create and store a Device for each physical device that connects to the Nami servers through our SDKs.

Entitlements

An Entitlement is an object that grants a device access to a set of features or content in an app. Entitlements are a property of the app and represent the same concept of access across all platforms.

An app may have multiple Entitlements. For example, you could have one Entitlement that unlocks a set of image filters in your photo utility app and a second Entitlement that unlocks access to a stock photo library.

For your customers, an Entitlement can be active or inactive. When the Entitlement is active, the user should be allowed to access the appropriate paid content or functionality in your app. When the Entitlement is inactive, you will want to prevent your users from access paid features.

Entitlement management is a big piece of the Nami platform and we provide tooling to make this management and granting of Entitlements as easy as possible.

External Identifiers

An External Identifier is any unique identifier that can be used to define a User.

You can create your own External Identifiers in our SDKs to track your customers. Nami may also create external identifiers from data provided by the purchase platforms or from any 3rd party integrations with the Nami SDK.

External Identifiers have 2 main fields:

  • A key that serves as a label to define the source of the identifier.

  • A value that is the actual identifier itself.

External Identifiers on the Nami platform never contain PII.

Paywalls

A Paywall is a few things:

  • The visual presentation of your paid offering to your users.

  • The checkout page for your users to complete a transaction.

  • A Call-To-Action (CTA) that your users must engage with before they can continue to use your app (it must be dismissed).

In the Nami Control Center, building a paywall is all about selecting the products you wish to offer to your users and setting up the imagery and marketing copy that will be used to present that offer.

App paywalls come in a variety of forms. Before Nami, these screens were generally hard coded into an app, requiring significant developer time for implementation and maintenance.

Nami shifts management of your app's paywall to the cloud which allows your team members responsible for revenue to operate independently from your development team.

You can now make changes to the marketing copy or artwork instantaneously without requiring an update and app review. You can even modify which products you offer for sale with just a few clicks.

Since the paywall is managed from the cloud, you can now have multiple paywalls to experiment with tone, style, and more.

Product SKUs

A Product SKU is an in-app purchase SKU or ID as defined within a specific App Platform. Products define the in-app purchase type, price points, bill terms, and other related data.

A Product SKU is specific to an App Platform.

Product SKUs are created within each app store platform and then added to the Nami platform for use in your app. For example, Apple's App Store products are created in App Store Connect.

Users

A User is how we define the users of your app.

Every device that uses our SDK will have an associated User.

In a very simple app, there may be a one-to-one relationship between devices and users. In more complex apps, a User may have many devices (just like your actual customers).

Users are defined by External Identifiers. Creating an External Identifier allows for multiple devices to be linked together into a single User profile.

Users have a standard set of properties that are always available.

User Property
Definition

Active Entitlements

A list of all active entitlements for the user.

Customer Journey State

The current state customer journey state for the user.

Devices

A list of all devices that belong to this user.

External Identifiers

A list of all External Identifiers associated with this user.

How Do These Relate?

Let's first look at the objects that are created in our web portal, the Control Center.

An App on the Nami Platform will have a set of Entitlements, App Platforms, and Campaigns.

A Campaign has a set of Paywalls that are used in the Campaign.

App Platforms have a set of Product SKUs that grant an Entitlement and are included in Paywalls.

Those also a set of objects that get created through our SDK by your users as they are using the app. These are Devices, External Identifiers, and Users.

Users belong to an App and Devices belong to an App Platform. A device must be an Apple or a Google device, it cannot be both. However, a User may have devices on both the Apple and Google platforms.

A User is linked to multiple devices through an External Identifier.

Devices contain a minimal amount of information to help us provide our services. These data include no device fingerprints or other PII and location information is only stored at the country level. For more information, read about how we .

App
App Store Platform
App Platform
Campaigns
Customer Journey State
Devices
Entitlements
External Identifiers
Paywalls
Product SKUs
Users
how they are related
design for data privacy