Home
Blog
Authors
Dan Burcaw

Dan Burcaw is Co-Founder & CEO of Nami ML. He built a top mobile app development agency responsible for some of the most elite apps on the App Store and then found himself inside the mobile marketing industry after selling his last company to Oracle.

Latest articles by
Dan Burcaw
Written by
Dan Burcaw
6 Nov

Resolving Error Code 0 on App Store

Error Code 0, also known as SKErrorDomain Code=0, is an unknown error encountered on the Apple App Store, typically during testing of in-app purchases. This error signifies an unexpected issue within the StoreKit framework and can disrupt the purchase process, especially in sandbox environments. Troubleshooting Error Code 0 involves reviewing setup configurations and ensuring stable test environments.

What Causes Error Code 0?

Error Code 0 usually arises from unexpected behavior in the StoreKit framework, particularly in sandbox environments where test conditions differ from production. Common causes include network issues, incomplete test account setups, or issues within the app’s configuration in Xcode or App Store Connect. Recognizing these causes helps developers troubleshoot setup errors and ensure stable testing conditions.

Common Scenarios for Error Code 0 - Unknown Error

This error is frequently encountered in the following scenarios:

  1. Testing in Sandbox Environments: Sandbox environments may produce this error due to test account limitations or incomplete StoreKit setup.
  2. Incomplete Configuration in Xcode: Misconfigured provisioning profiles or entitlement files in Xcode can cause this error.
  3. Network Instability: Testing under unstable network conditions can interrupt StoreKit processes, resulting in Error Code 0.
  4. Test Account Issues: Issues with sandbox test accounts, such as incorrect settings or expired test sessions, can cause this error during in-app purchase testing.

Step-by-Step Solutions for Error Code 0

Solution 1: Verify Sandbox Account Setup

  • Purpose: Ensures that the sandbox test account is properly configured and active.
  • Steps:
  1. Log out of any existing Apple ID on the test device.
  2. Log in with a sandbox test account in Settings.
  3. Retry the in-app purchase to confirm proper sandbox functionality.
  • Result: Ensures sandbox account stability, minimizing unexpected errors during testing.

Solution 2: Review StoreKit Configuration in Xcode

  • Purpose: Verifies that all provisioning profiles, entitlement files, and App Store configurations are correct.
  • Steps:
  1. Open the project in Xcode and go to the Signing & Capabilities tab.
  2. Ensure that the entitlements file is correctly configured for StoreKit permissions.
  3. Confirm that the correct provisioning profile is selected and valid.
  • Result: Proper StoreKit setup in Xcode prevents configuration-related errors.

Solution 3: Check Network Connection on Testing Device

  • Purpose: Ensures a stable network environment for StoreKit, which requires a reliable connection to communicate with Apple’s servers.
  • Steps:
  1. Connect to a stable Wi-Fi network or test on a reliable cellular network.
  2. Retry the in-app purchase flow with the stable connection.
  • Result: Testing with a stable network connection reduces errors due to connection interruptions.

Solution 4: Clear App Cache and Restart Testing Device

  • Purpose: Resets the app’s data and device cache to resolve cached errors that may interfere with StoreKit.
  • Steps:
  1. Delete and reinstall the app on the test device to clear cached data.
  2. Restart the test device to reset its memory and network connections.
  3. Log back in with the sandbox account and test the purchase flow again.
  • Result: Refreshing the app data and network settings can resolve unknown error messages.

Solution 5: Contact Apple Developer Support for Persistent Issues

  • Purpose: Provides additional insights or fixes for unknown errors that persist despite troubleshooting.
  • Steps:
  1. Document all troubleshooting steps and configurations.
  2. Contact Apple Developer Support and provide relevant details about the error and test environment.
  • Result: Apple’s support team may offer additional guidance specific to unresolved StoreKit issues.

Conclusion

Error Code 0 - Unknown Error on Apple’s App Store typically arises from sandbox testing issues, network instability, or configuration problems in Xcode. By following these steps—verifying sandbox setup, checking StoreKit configuration, ensuring a stable network, refreshing app cache, and contacting support—developers can effectively troubleshoot and resolve this error.

With Nami’s low-code solutions, you can avoid these setup issues, as Nami manages in-app purchases for seamless integration. Find out how at NamiML.

Written by
Dan Burcaw
6 Nov

Error 403 on Apple App Store

Error 403 - Forbidden is a common error developers encounter on the Apple App Store, typically occurring during app submissions. This error usually indicates a restriction or permission issue, either with the app’s configuration or related to non-compliance with App Store Guidelines. Fixing Error 403 requires careful review of Apple’s requirements and proper configuration in App Store Connect to ensure your app is ready for review.

What Causes Error 403?

Error 403 usually results from a permissions conflict or non-compliance with Apple’s guidelines. This can happen if the app’s metadata, screenshots, or required permissions are not configured according to Apple’s standards. Additionally, the error can be triggered if there are restrictions related to specific app features, like in-app purchases, that require explicit approval or validation in App Store Connect.

Understanding these causes can help developers ensure compliance and proper configuration, avoiding potential submission delays.

Common Scenarios for Error 403 - Forbidden

This error commonly occurs in the following situations:

  1. Non-Compliance with App Store Guidelines: Submission fails if the app’s metadata or functionality does not meet Apple’s guidelines.
  2. Missing Required Permissions: Error appears when permissions for specific features (e.g., location, camera access) are not included or configured correctly.
  3. Incorrect In-App Purchase Setup: The error may arise if in-app purchases or subscriptions are configured improperly in App Store Connect.
  4. Geographic Restrictions: Attempting to submit an app with location-based restrictions without setting up proper configurations.

Step-by-Step Solutions for Error 403 - Forbidden

Solution 1: Review and Comply with App Store Guidelines

  • Purpose: Ensures that all app metadata, features, and configurations align with Apple’s standards.
  • Steps:
  1. Review App Store Guidelines carefully, especially sections related to restricted features or app content.
  2. Make sure your app’s metadata (descriptions, screenshots, keywords) aligns with these standards.
  3. If needed, update the app’s content or functionality to meet compliance.
  • Result: Ensuring compliance can eliminate potential rejections based on guideline violations.

Solution 2: Set Up Permissions Correctly in Xcode and App Store Connect

  • Purpose: Ensures all required permissions are correctly set up, allowing Apple to approve sensitive or restricted features.
  • Steps:
  1. In Xcode, navigate to your project settings and verify that all required permissions (e.g., location, microphone) are configured in Info.plist.
  2. In App Store Connect, go to your app’s App Information and confirm that any additional permissions are selected as needed.
  • Result: Configuring permissions properly allows Apple to approve the app without additional permission errors.

Solution 3: Verify In-App Purchase and Subscription Setup

  • Purpose: Ensures that all in-app purchases and subscriptions meet Apple’s requirements and are configured correctly in App Store Connect.
  • Steps:
  1. Go to App Store Connect and navigate to In-App Purchases.
  2. Confirm that each in-app purchase or subscription product is correctly listed, with accurate product IDs and pricing.
  3. Check that any subscription features or renewable items are in compliance with Apple’s policies.
  • Result: Ensuring correct setup of in-app purchases can reduce submission rejections based on this common error.

Solution 4: Configure Geographic and Regional Restrictions

  • Purpose: Ensures that the app’s geographic availability settings align with Apple’s regional restrictions.
  • Steps:
  1. In App Store Connect, go to the Pricing and Availability section.
  2. Confirm that your app is available in the intended regions and that any regional restrictions are correctly configured.
  3. Save changes and reattempt the submission if necessary
  • Result: Proper regional configuration reduces conflicts and avoids 403 errors due to unsupported regions.

Solution 5: Contact Apple Developer Support if Issue Persists

  • Purpose: For persistent cases, contacting Apple’s support team can provide specific insights into the rejection.
  • Steps:
  1. Document all the troubleshooting steps taken so far.
  2. Reach out to Apple Developer Support and provide relevant details.
  3. Follow any additional guidance provided by Apple’s support team to correct the issue.
  • Result: Apple’s support team can provide tailored guidance to ensure the app meets all necessary requirements.

Conclusion

Error 403 - Forbidden often results from non-compliance with Apple’s guidelines, missing permissions, or incorrectly configured app settings in App Store Connect. Following these steps—reviewing guidelines, setting permissions, verifying in-app purchases, and configuring geographic restrictions—can resolve the issue and improve the app’s chances of successful submission.

With Nami’s low-code solutions, developers can avoid these configuration hassles and rely on Nami to streamline in-app purchase setups, allowing you to focus on core app features. Learn more about simplifying your app deployment at NamiML.

Written by
Dan Burcaw
6 Nov

Driving Customer Retention and Revenue with Cohort Analysis

Boost your subscription business with cohort analysis. Learn how to identify high-growth cohorts, address low-performing segments, and optimize customer lifetime value.

Imagine a business that grows exponentially, fueled by its own customers. That's what a growth loop does. By understanding how to create and optimize such growth loops, you can unlock significant business growth.

Simply stated, a growth loop is a cyclical process to acquire new customers, retain existing ones, and drive revenue growth. It's essentially a virtuous cycle where each stage feeds into the next, creating a self-sustaining system. A successful growth loop involves identifying key touchpoints in the customer journey and optimizing each step.

Cohort analysis is a powerful strategy that helps businesses understand how different groups of customers behave over time. In the context of subscription growth loops, it plays a crucial role in helping product marketers and app growth managers identify patterns, measure retention, and optimize customer journeys. By analyzing cohorts, businesses can pinpoint areas for improvement, increase customer lifetime value (CLTV), and ultimately drive sustainable growth.

Understanding Cohort Analysis for Subscriptions

Cohorts are groups of customers with something in common, like say, the month someone subscribed to your app. By tracking cohorts over time, you can get some really critical and cool insights into customer behavior.

For instance, you can find out what different groups or cohorts like to engage with, why they keep coming back to your app (or don't), and if they make additional purchases or upgrade to a higher subscription tier.

Key elements of cohort analysis

  • Cohort definition: Determine the criteria for grouping customers (e.g., sign-up date, plan type, acquisition channel).
  • Cohort metrics: Select relevant metrics to track (e.g., retention rate, churn rate, average revenue per user (ARPU)).
  • Cohort analysis period: Define the timeframe for analysis (e.g., monthly, quarterly, yearly).
  • Visualization: Create clear and informative visualizations to represent the data (e.g., cohort tables, retention curves).

Key subscription metrics to track with cohort analysis

To effectively utilize cohort analysis, understand, track, and analyze these key subscription metrics:

  • Monthly Recurring Revenue (MRR): The total recurring revenue generated within a month.
  • Annual Recurring Revenue (ARR): The total recurring revenue generated within a year.
  • Churn: The rate at which customers cancel their subscriptions.
  • Customer Lifetime Value (CLTV): The total revenue a customer generates over their lifetime.
  • Average Revenue Per User (ARPU): The average revenue generated per customer.

👉Read more: How to Optimize Your Subscription Apps

Leveraging Cohort Analysis for Subscription Growth

With cohort analysis subscription businesses can uncover hidden growth opportunities. Here are some key areas you can focus on to drive that growth –

High-growth cohorts:

Analyze cohorts with exceptional growth rates to understand the factors driving their success. Begin by understanding the common characteristics of high-growth cohorts, such as demographics, acquisition channels, purchase behavior, or engagement levels. Map the customer journeys of such cohorts to identify key touchpoints and moments of truth that contribute to their success. Once you've done this, you can then tailor marketing campaigns and messaging to target similar audiences and replicate the factors that led to high-growth cohorts' success.

Low-performing cohorts:

Identify areas for improvement by analyzing cohorts with lower-than-expected performance. To do this, use customer feedback from your customer support and customer experience teams as well as product data analysis to identify the challenges and pain points faced by low-performing cohorts. Develop strategies to address the specific needs and concerns of these cohorts, such as providing additional support, improving onboarding processes, or offering tailored promotions. Continuously monitor the performance of low-performing cohorts and you can adjust your interventions as needed to drive improvements.

Improving Subscription Retention Using Cohort Analysis

Understanding churn patterns is essential for improving the retention of your subscribers. By analyzing churn rates for different cohorts, you can identify which specific customer segments are at risk of churn and tailor retention strategies accordingly. Key areas to explore include:

  • Churn by acquisition channel: Identify channels that acquire customers with higher churn rates.
  • Churn by plan type: Analyze churn rates for different subscription plans.
  • Churn by customer tenure: Identify patterns in churn based on how long customers have been subscribed.

Implementing retention strategies

To retain subscribers and mitigate the risk of churn, consider the following strategies:

Reach out before it's too late

  • Know your customers: Use cohort analysis to spot subscribers who might be thinking about leaving.
  • Show you care: Send them a personalized message that shows you understand their needs and want to help.

Give them what they want

  • Know what interests your subscribers: Understand what each customer is into.
  • Offer the right stuff: Suggest products or content they'll love and want to keep their subscriptions for.
  • Make it personal: Surprise them with recommendations that feel like they were made just for them.

Bring them back to the fold with win-back campaigns

  • Know your churners: Figure out why your subscribers left and what made them tick.
  • Create a comeback offer: Make them an offer they can't refuse, tailored to their specific needs.
  • Speak their language: Use words and phrases that resonate with them to bring them back on board.

Dig deeper into customer behavior with product usage analysis

  • Look at how they use your app: Watch how your customers use your product.
  • Spot trouble areas: See if there are features or missing workflows in your apps or portal that might be causing them to leave.
  • Make things better: Fix problems and improve features that keep them coming back.

Keep them hooked with sticky features

  • Find what sticks: Use cohort analysis to figure out what keeps customers coming back.
  • Make it even better: Improve those features or create new ones that'll keep your users hooked.

👉Read more: Top Reasons Users Cancel Your Subscription

Optimizing Subscription Revenue

Effective pricing is crucial for maximizing subscription revenue. Cohort analysis provides valuable insights to inform advanced pricing strategies:  

  • Dynamic pricing: By analyzing customer behavior within cohorts, businesses can adjust prices in real time based on demand, competition, and customer segmentation. For example, a streaming service might offer time-limited discounts to specific cohorts to attract new subscribers or retain existing ones.
  • Tiered pricing: Cohort analysis helps identify optimal price tiers by analyzing how different customer segments value the product or service. For instance, a SaaS company could create tiered pricing plans based on usage, feature set, or customer lifetime value.

Cohort analysis and Customer Lifetime Value (CLTV)

Predicting CLTV is essential for making informed business decisions. Cohort analysis plays a crucial role in this process:  

  • CLTV estimation: By tracking revenue and churn rates for different cohorts, businesses can estimate the expected lifetime value of customers. This information helps allocate resources effectively and prioritize customer acquisition and retention efforts.
  • Identifying high-value customers: Cohort analysis can identify high-value customer segments based on factors such as purchase frequency, average order value, and churn rate. These insights help businesses focus marketing and upselling efforts on customers with the highest potential CLTV.  
  • Optimizing customer journey: Understanding how customer behavior evolves within different cohorts can help optimize the customer journey and increase CLTV. For example, identifying the point at which customers are most likely to churn can trigger targeted retention efforts.

By leveraging cohort analysis to inform pricing strategies and CLTV predictions, businesses can significantly enhance their revenue generation capabilities.

Common Challenges In Cohort Analysis and Solutions

While cohort analysis is a valuable tool, it's essential to be aware of potential challenges and how to overcome them:

  • Data quality: Ensuring data accuracy and completeness is crucial for reliable analysis. Implement data cleaning and validation processes to maintain data integrity.
  • Cohort size: Small cohort sizes can lead to unreliable results. Combine similar cohorts or extend analysis periods to increase sample size.
  • Analysis complexity: Cohort analysis can become complex with multiple dimensions and metrics. Prioritize key metrics and use visualization tools to simplify analysis.
  • Tool limitations: Some analytics tools may have limitations in cohort analysis capabilities. Consider investing in specialized tools or working with Nami ML to manage your subscription businesses more effectively.

Practical Applications of Cohort Analysis for Subscription Businesses

To illustrate the power of cohort analysis, let's explore how businesses in different industries can utilize it.

  • SaaS company: A SaaS company can analyze cohorts based on acquisition channels (organic, paid, referral) to identify the most profitable customer segments. By understanding how different channels impact customer lifetime value (CLTV), the company can allocate its marketing budget more effectively.
  • Streaming service: A streaming service can analyze cohorts based on subscription tier (basic, premium, ad-supported) to optimize pricing and packaging. By comparing churn rates and revenue per user for each tier, the service can make data-driven decisions about pricing adjustments or new tier offerings.
  • E-commerce subscription box: An e-commerce subscription box company can analyze cohorts based on customer demographics (age, gender, location) to tailor product offerings and marketing campaigns. By understanding the preferences of different customer segments, the company can increase customer satisfaction and reduce churn.

Cohort Analysis Forms the Backbone of Growth Loops

Cohort analysis helps you understand your customers, find ways to grow, and make your business more profitable.

By watching how your customers behave, you can keep them around longer, make more money from each customer, and find the right price and features for your products

Armed with all this data, businesses can create feedback loops that drive continuous improvement and growth. From identifying high-growth cohorts to addressing the frustrations of low-performing cohorts to improving customer retention to optimizing pricing and packaging, all of this can be used by subscription businesses to create a virtuous growth cycle.

If you want to know more about managing your subscriptions more effectively, please connect with Nami ML.


       

       if(window.strchfSettings === undefined) window.strchfSettings = {};
   window.strchfSettings.stats = {url: "https://nami.storychief.io/en/driving-customer-retention-and-revenue-with-cohort-analysis?id=1384091795&type=26",title: "Driving Customer Retention and Revenue with Cohort Analysis",siteId: "4443",id: "51b60849-ff21-4408-b48f-9543da3cae59"};
           (function(d, s, id) {
     var js, sjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {window.strchf.update(); return;}
     js = d.createElement(s); js.id = id;
     js.src = "https://d37oebn0w9ir6a.cloudfront.net/scripts/v0/strchf.js";
     js.async = true;
     sjs.parentNode.insertBefore(js, sjs);
   }(document, 'script', 'storychief-jssdk'))
   

   

Written by
Dan Burcaw
6 Nov

Fitting Paywalls to User Context – A Guide to Driving Conversions

Discover how to personalize your app paywalls to user context, device, and journey stage. Unlock tactics of paywall A/B testing to craft frictionless experiences that drive conversions.

Paywalls offer a clear path to monetization for subscription businesses. However, neglecting user experience in the pursuit of conversions is short-sighted. Frustrated users won't convert, and worse, won't return. A well-designed paywall that showcases value and prioritizes user experience can drive sustainable growth.

Great design is a cornerstone of user experience, but it's only part of the picture. Effective UX is all about understanding how users' needs and expectations shift depending on the context.

Imagine a football fan on their morning commute – they're quickly checking scores on their phone. But later, relaxing at home, they're engrossed in the game on their smart TV. A one-size-fits-all paywall won't resonate with these different user journeys.

Similarly, a user’s journey within the app also influences their receptiveness to a paywall. A new user might be curious about the app's core features, while a returning user might be more interested in premium functionalities that fit into the workflow they have already established for themselves within the app.

This is where context-aware paywall optimization comes in. By understanding user intent, device usage, and the stage of their journey within the app, you can tailor paywall messaging and design to resonate with individual users.

How do you stand to gain from this?

Not only does a user-centric paywall lead to higher conversion rates but also makes a positive user experience possible. It keeps users engaged in the long run, so you can hope for them to bring in recurring business over an extended period.

In this article, we delve into the power of context-aware paywall optimization. We'll explore the limitations of generic paywalls, discuss the importance of understanding user context and journey, and dive into strategies for creating personalized experiences that drive conversions – all with the intention of serving users the right kind of paywall that doesn't block access, but rather takes them to the other side where the grass is greener, so to speak.

👉Read more: Five Paywall Design Best Practices

What does it take to create personalized, optimized paywalls?

Think of a supermarket where every product has a generic sign that screams "Buy this now!". That wouldn’t be very interesting or effective, would it?

Wouldn’t it make more sense to see targeted messages like "healthy yogurt for your morning routine" or "fresh vegetables for your family dinner"? Paywalls that cater to user context are like those targeted signs – more relevant and likely to resonate.

People have different needs and expectations. A busy professional on their mobile phone while traveling to their office seeks a quick and informative experience, while someone relaxing on the couch with a smart TV? Well, they don’t mind browsing a wider range of content with previews or trailers on offer. A one-size-fits-all paywall ignores these crucial differences, leading to user frustration and lost opportunities for conversions.

Understanding user context

The key to unlocking effective paywalls lies in understanding the context in which users encounter the paywall. This is where user data, gathered with the user’s consent, of course, becomes your best friend.

Here are some key factors to consider –

  • Demographics: Age, location, and even income level can influence how users perceive a paywall. For example, a younger audience might be more receptive to freemium models with in-app purchases, while an older demographic might prefer a clear and concise value proposition before they decide to commit to a premium subscription. Knowing your target audience allows you to tailor the paywall's language, visuals, and offers to resonate with their preferences.
  • In-app behavior: This is a goldmine of information. How often do users engage with your app? What features do they use the most? Do they primarily access the app on their mobile phone or laptop? By analyzing this data, you can understand user needs and pain points. For instance, a user who frequently uses the social features of an investment app might be more receptive to a paywall highlighting exclusive subscriber-only discussion forums.

The user journey matters

A user's journey within the app is another critical piece of the puzzle. People don't just appear in your app fully ready to convert to paying subscribers. They go through distinct stages, each with unique needs and expectations.

Here's how you can tailor your paywall experience to each stage in the user journey –

  • New users: They're curious and want to understand the app's core value proposition. Focus the paywall on showcasing the app's essential features and benefits. Offer a free trial or freemium model to allow them to explore the app's functionalities before asking a user to commit to a paid subscription. Highlight user testimonials or positive reviews to build trust and establish the app's credibility.
Flo app paywall comes with a free trial plan toggle
  • Active users: They are already engaged and appreciate your app's functionality. Now is the time to showcase premium features that address their specific needs based on their in-app behavior. Let's consider a fitness app as an example. A paywall could highlight personalized training programs or exclusive workout challenges designed by certified professionals if a user consistently uses the free workout plans.
Fitbod’s paywall highlights personalized workouts

And let’s say you know from tracking analytics that the user prefers cardio-related workouts to strength-training ones, then, offering a paywall that highlights "cardio-related" activities can help seal the deal. Such an approach demonstrates a deep understanding of a user’s current usage patterns and offers a clear path to, not only monetization for your business but also for enhancing the user’s experience.

  • Lapsing users: These are users who have downloaded your app but haven’t been using it actively for a while. The goal here is to re-engage them and remind them of the value they experienced previously. Showcase new content, features, or exclusive benefits available with a subscription. You can even personalize the paywall to reflect their past usage. For instance, a user who last opened your meditation app a month ago could be shown a paywall highlighting new guided meditations or relaxation techniques focused on managing stress – a common reason users return to meditation apps.

Device usage and user mindset

In addition to the user journey stage, the kind of device the user is using also affects how they interact with paywalls.

Let’s take a look at the popular devices –

  • Mobile phone: Users on mobile phones are often on the go, seeking quick information or bursts of entertainment. Their attention spans are typically short, so paywalls should be concise and visually appealing. Focus on highlighting the app's core value proposition and immediate benefits. Consider offering free trials or tiered subscription options to cater to users who might be hesitant about making a full commitment.
  • Laptop and desktop: Laptops and desktops provide an environment that is conducive to deeper browsing and engagement. Users here are more receptive to detailed information. Paywalls, whether for the web or a desktop app can show the advantages of premium features in greater depth. Offering free content samples or in-depth comparison articles can entice users to explore the value proposition before committing to a subscription.
  • Smart TV: The primary focus for smart TV users is relaxation and entertainment. Paywalls should be visually captivating, leveraging high-quality images or videos to grab attention. Highlight exclusive content unavailable on the free plan, such as newly released movies or curated playlists. Bundling subscriptions with other streaming services can also increase perceived value for smart TV users.

👉Read more: Paywall Placement

A/B testing for personalized paywalls

Just like with any marketing strategy, the key to successful paywalls lies in continuous testing and refinement.  A/B testing allows you to tailor your paywall experience to different user segments, devices, and journey stages.

Here's how it works –

Imagine you have two different paywall versions - one focusing on exclusive video content and another highlighting in-depth articles. You can use A/B testing to present these variations to users on different devices.

By analyzing conversion rates, you can see which version resonates better on each of your devices. Chances are, the video paywall does best on smart TV while the one with in-depth articles is better suited for a desktop app. For a deeper dive into A/B testing paywalls on mobile apps, check out our article on A/B testing mobile app paywalls for maximizing revenue and user engagement.

A/B testing can also be used to personalize the paywall experience based on a user's journey stage. A new user who just downloaded the app might see a paywall with a free trial offer, while a user who has been actively engaged for a month might encounter a paywall highlighting premium features. This targeted approach feels less intrusive and increases the chance of a conversion.

Here are some A/B testing best practices to keep in mind –

  • Focus on a single variable at a time. Isolate the impact of a specific change, like pricing tier or messaging approach.
  • Run tests for a statistically significant timeframe. Don't jump to conclusions based on small data sets.
  • Continuously iterate and improve. A/B testing is an ongoing process, not a one-time event.

Fitting paywalls to the user’s context

Monetization is crucial for subscription businesses, and paywalls are a key tool to achieve that goal. However, a paywall that disrupts the user experience is more likely to drive users away than towards subscriptions. The key lies in a user-centric approach – i.e. delivering personalized paywalls that resonate with individual needs and context.

Unlocking this strategy starts with understanding your users. Analyze user data to see where they come from, what devices they use, and how they engage with your app. Knowing their journey stage – whether they are new users or long-time engaged users – is also essential. This data empowers you to craft the right message, design, and timing for your paywalls.

A/B testing is your next step. Test different paywall variations to see which ones convert best on specific devices and in different user contexts. By iteratively refining your approach, you can create frictionless paywalls that seamlessly guide users toward subscriptions.

Ready to build and iterate on your paywalls? Nami ML can help! Schedule a free consultation with our experts or sign up for a free trial of our paywall builder. Start creating and testing personalized paywalls in minutes.


       

       if(window.strchfSettings === undefined) window.strchfSettings = {};
   window.strchfSettings.stats = {url: "https://nami.storychief.io/en/fitting-paywalls-to-user-context-a-guide-to-driving-conversions?id=1903370850&type=26",title: "Fitting Paywalls to User Context – A Guide to Driving Conversions",siteId: "4443",id: "51b60849-ff21-4408-b48f-9543da3cae59"};
           (function(d, s, id) {
     var js, sjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {window.strchf.update(); return;}
     js = d.createElement(s); js.id = id;
     js.src = "https://d37oebn0w9ir6a.cloudfront.net/scripts/v0/strchf.js";
     js.async = true;
     sjs.parentNode.insertBefore(js, sjs);
   }(document, 'script', 'storychief-jssdk'))
   

   

Written by
Dan Burcaw
6 Nov

Rewarded Video to Unlock Subscription App Opportunities

Learn how Rewarded Video can help subscription apps monetize non-subscribers, while nudging them one step closer to subscribing.

The primary monetization goal of subscription apps is to convert users into paying subscribers. Of course, not every user who installs will convert.  That’s where Rewarded Video comes in.

Rewarded Video for subscription apps is great new opportunity to monetize non-subscribers, while nudging them one step closer to subscribing.

In this article, we’re going to discuss:

  • What is Rewarded Video?
  • How Rewarded ads can be used in subscriptions apps
  • How to get started with Rewarded access

What is Rewarded Video

Rewarded Video is a type of mobile ad unit where the user watches a full-screen video advertisement in exchange for a reward. Commonly the ads are promoting other apps and providing the user a simple call-to-action to download that app.

rewarded video ad unit

Rewarded Video ad units are non-skippable, so users need to stay engaged for the duration to receive the reward. According to Business of Apps, this ad format often commands higher eCPMs. The format is compelling for publishers and advertisers, but also for users who receive a tangible value exchange.

For example, many games use Rewarded ad units. Users are rewarded extra lives, points, and other virtual goods.

Using Rewarded Video in a Subscription App

Rewarded Video can be a useful compliment to your subscription app, especially if you offer a freemium experience.  Here are a few ways you can integrate Rewarded Video into your conversion funnel:

  1. Offer time limited premium access to users who decline your onboarding paywall. This is a great opportunity to expose them to your premium experience while they are most interested in your app.
  2. Offer time limited premium access to users who encounter & decline a paywall when trying to access premium content. This is a great opportunity to give users who want to see what a premium content or feature is about a taste even if they aren’t ready to pay.
  3. Prompt or surface the Rewarded opportunity to (certain) non-subscribers. If a user is using your freemium app a lot, but continues to decline your premium offers maybe it’s time to offer them a different route to (limited) premium access.
  4. Send an Email or Push campaign to deep link target users to the Rewarded  offer. This use case is a bit aspirational. The Email or Push marketing system would need to know that the Rewarded ad inventory will exist for the user if they engage with the message and deep-link into the app.

👉Read more: Let Your Fans Support Your App with a Tip Jar

Rewarded Access for your Subscription App

Adding Rewarded Video to your subscription app requires some product decisions as well as the right infrastructure.  

For product, consider the following:

  • Which users should get a Rewarded offer? For example non-subscribers who don’t convert from a subscription paywall.
  • When and how should those users receive the offer? For example, do you prompt them or surface the rewarded opportunity contextually in the app? reminder, even if you want to offer a Rewarded Video to a user, there has to be inventory via the ad partner. You experience needs to only offer the Reward if one is truly available from the ad SDK.
  • How much premium access (duration) should a reward be worth? For example, is the successful completion of a 15-30 Rewarded Video an hour of access? 3 minutes of access? 1 day of access?  Think about how much is enough to give them some exposure but not too much that they will never become a paying subscriber.

For infrastructure, you need two components to deliver this experience:

  • An Ad Partner with Rewarded Video ad unit. All the large mobile ad players including AppLovin and ironSource support the Rewarded Video ad unit via their mobile SDKs. Additionally, if you’re using either for mediation, you can improve the ad unit fill rate and eCPM.
  • An Entitlement Engine. Premium access is granted based upon a successful subscription in-app purchase.  To unlock premium access using another mechanism, such as watching a Rewarded Video, your app needs to abstract access control beyond the IAP product.

Rewarded Access Made Easy with Nami

This sounds like a lot, but fortunately we provide an out-of-the-box solution to make this super easy. Nami provides the Entitlement Engine. Nami also provides integrations with Rewarded Video ad solutions.

Integrations with AppLovin and ironSource offer a Rewarded premium access experience that is easy.  It requires minimal setup, limited client-side implementation steps, and no additional backend server-side. You even control how many minutes of premium access a reward is worth from the Nami Control Center.

👉Read more: Promotional In-App Purchase Best Practices

Final Thoughts

Monetization in the app economy is not easy. Rewarded Video offers app publishers another opportunity to monetize users.  For subscription apps in particular, this is a powerful way to nurture freemium users towards your premium experience while also generating some incremental revenue.

To experience Rewarded access in a subscription app, check out Serenity Sounds. To be offered Rewarded access, first try to access a premium sound (anything but the first row). You will be prompted to subscribe  via the paywall sheet.

If you dismiss the paywall without subscribing, you may be prompted if a Rewarded Video is available.  Alternatively, navigate to Settings (the gear icon) to see if a Rewarded promotional unit shows up. In either case, watch the reward to completion to receive 1 hour of access to the premium sounds.

Do you have a subscription app and are interested in adding a Rewarded experience? If so, we’d be happy to show you how it works and talk about how Nami can help.


       

       if(window.strchfSettings === undefined) window.strchfSettings = {};
   window.strchfSettings.stats = {url: "https://nami.storychief.io/en/rewarded-video-subscription-apps?id=1460241903&type=26",title: "Rewarded Video to Unlock Subscription App Opportunities",id: "51b60849-ff21-4408-b48f-9543da3cae59"};
           (function(d, s, id) {
     var js, sjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {window.strchf.update(); return;}
     js = d.createElement(s); js.id = id;
     js.src = "https://d37oebn0w9ir6a.cloudfront.net/scripts/v0/strchf.js";
     js.async = true;
     sjs.parentNode.insertBefore(js, sjs);
   }(document, 'script', 'storychief-jssdk'))
   
   

Written by
Dan Burcaw
6 Nov

Monetizing a SwiftUI App: IAP & Subscriptions

We shipped a new SwiftUI app, offering a lifetime IAP and two subscriptions plans powered by Nami. See how to do it.

We decided it was time to build and ship a brand new app using SwiftUI to experience first hand the latest from Apple.

The app, now available on the App Store, is called Serenity Now.

It’s a simple audio player with a SwiftUI interface and AVFoundation under the hood. The app is filled with a collection of sounds for focus, relaxation, and better sleep.

👉Read more: Adding In-App Purchases to SwiftUI Apps

App Monetization Goals

We’re in the monetization business, so we set out to implement our own Nami SDK to offer IAPs and subscriptions.

Here are the three products we want to offer:

  • Lifetime Access - $49.99 for life (only available as a launch exclusive)
  • Monthly Subscription - 3 day free trial, then $3.99 / month
  • Yearly Subscription - 1 month free trial, then $39.99 / year

Users who buy one of these products gets access to our Serenity Now Premium features. Those features include:

  • Premium-only sound collections - Nature, Uplifting, Water & Sleep
  • Premium controls -  Repeat & AirPlay
  • Ad-free experience

We want users to encounter our paywall during the app experience in three different places:

  • First Launch - The first time the user launch the app
  • Gated Content - Upon tapping a content tile that requires premium access
  • Marketing Tile - Tapping the premium access marketing tile in Settings

Now that our goals are clear, let’s see what it takes to accomplish.

The SwiftUI Lifecycle & SDK Initialization

SwiftUI apps don’t use the the AppDelegate we have all come to know from years of building iOS apps. Instead, the entry point for SwiftUI apps is a struct conforming to the App protocol.  

That protocol has one requirement, which is the implementation of a property called body. Digging into the specifics of body is outside the scope of this article, but suffice it to say that is where you’ll kick off your app’s user interface.

For our purposes, we need a place to configure the Nami SDK. It turns out, we can provide a custom init() method on our App struct for this purpose.

Here we setup our NamiConfiguration object with our app’s unique appPlatformID (found in the Nami Control Center > Integrations > [your Apple App Store integration]

Setting up an ObservableObject to Track Purchase State

We will need to monitor changes to the the entitlements a user has access to. A change may occur if they buy one of our IAP products, or if they have a subscription that expires.

In Serenity Now, if a user buys any one of the three IAP products, we grant them access to an entitlement called premium_access.  

In SwiftUI, we can monitor for user entitlement changes by setting up an ObservableObject. Specifically,  we need to register with the Nami SDK’s registerEntitlementsChangedHandler callback to update our ObservableObject’s premium var.

Since premium has a @Published property wrapper, any SwiftUI view’s body will be re-invoked any time the value changes.

This is exactly what we want. If a user buys one of our products, we want any of the SwiftUI views that rely on the value of premium, to be updated. Concretely, this means any view that gates access based upon the premium_access entitlement will update if the value changes.

Paywall Use Case: Initial App Launch

Next, we want to show our paywall the first time the user launches the app.

Serenity Now app paywall

In our main SwiftUI view, SerenityNowHome, we run some code in .onAppear that checks UserDefaults for the value of a key didLaunchBefore.  If the value is false, it’s the first launch of our app so we tell the Nami SDK to show a paywall if NamiDataSource’s premium var is False.

Paywall Use Case: Gating Premium Content

Next, we want to gate access to certain premium content in our app.

Gating premium access with Nami

If the user does not have access to the premium content (e.g. NamiDataSource’s premium var is False), we want to present the paywall. Otherwise, we want to show the SwiftUI with the relevant content.

Paywall Use Case: Premium Marketing Tile

Finally, we want to give users a way to access our paywall from a marketing tile in the Settings section of our app.

Providing a premium upsell banner in SwiftUI

In our Settings view, if the user does not have premium access (via our NamiDataSource), we show our NamiUpsellBannerView. If the user taps on it, we show our paywall.

If the user does have premium access, we instead show a link to Manage subscription which takes the user to the system Settings.

👉Read more:What’s New with In-App Purchases at WWDC 21

Final Thoughts

There is much more we want to do with our SwiftUI app and some advanced use cases we want to discuss in future blog posts.  For now, we hope this article shows how is it is to get up and running with some very common use cases for selling IAPs and subscriptions.

You may be wondering about the paywall view itself. The paywall was created via Nami’s no-code paywall designer. The Nami SDK provides a native Swift that is configurable from the Nami Control Center so you can make changes instantly.

The SDK provided paywall integrates seamlessly with our SwiftUI app from both a user interface and usability perspective. If you’re interested in giving Nami a spin for your own SwiftUI app, you can create a free account here.


       

       if(window.strchfSettings === undefined) window.strchfSettings = {};
   window.strchfSettings.stats = {url: "https://nami.storychief.io/en/monetizing-swiftui-app-iap-subscriptions?id=1919917807&type=26",title: "Monetizing a SwiftUI App: IAP & Subscriptions",id: "51b60849-ff21-4408-b48f-9543da3cae59"};
           (function(d, s, id) {
     var js, sjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {window.strchf.update(); return;}
     js = d.createElement(s); js.id = id;
     js.src = "https://d37oebn0w9ir6a.cloudfront.net/scripts/v0/strchf.js";
     js.async = true;
     sjs.parentNode.insertBefore(js, sjs);
   }(document, 'script', 'storychief-jssdk'))