Why is it so hard to create paywalls?

Subscription User Journey Paywall A/B Testing Paywall Design App Pricing

Many apps are reluctant to change paywalls. Why? The simple answer is that creating paywalls is complicated. This article walks you through the realistic challenges of displaying the price information, complying with legal requirements, computing prices, localization, tracking the full conversion funnel, considering accessibility, etc.

Have you noticed that the paywalls you close every day on your favorite apps haven't changed much since the first time they popped up on your screen? If you haven't paid attention, go ahead and sneak a quick look. 

Here's a fun fact: dozens of apps out there(including many popular ones) don't change their paywalls very often.

We bet you are wondering why. Here's one good reason. Creating paywalls is, in fact, quite complicated.  

Read on to learn more and understand why and what you should consider while building In-App paywalls.

Viability - There is no second chance

If you are wondering why so many app providers are so reluctant to update their paywalls, keep this keyword in mind - risks.

No paywall, no money. Because paywalls are the lifeblood of app monetization, delivering the perfect version of paywalls is one of the most delicate subjects for app businesses. 

Errors on Paywalls directly impact every subscription app user, the ones who downloaded and those who left but came back throughout the entire acquisition-attribution-retention funnel. Addressing paywall errors also causes delays in business performance.

It is a vicious cycle because as paywalls rarely get updated, fewer and fewer developers are used to managing the complexity and rules, which increases the risk of having common errors such as:

  1. Paywall crashes
  2. Buttons and products not bound correctly (ex., a monthly button with no link or a link to a yearly plan)
  3. Change of subscription plan not applying

While these are the three most common errors, the following aspects add to the complication of building paywalls.

Prices - Displaying the information

"Displaying" pricing information is more complex than it seems.

You might think you can just display "$9.99 / month" and lay out the other pricing plans the same way.

But here's the real-life story to break your dream:

  • Prices need to be translated into different currencies.
  • Not only do the currencies present different numbers, but the price can also actually differ in different countries if you pursue a purchasing power parity strategy.
  • Different locales apply different rules on placing currency signs (ex., the $ sign comes before the amount, the € sign comes after the amount).
  • The price of a product may vary, especially with introductory prices and free trials.
  • Paywalls should hide information on the free trial from users who already enjoyed it and are not eligible for another.

Various scenarios like this make it impossible to hardcode prices but rather compute them based on:

  • the App Store product price of your customer,
  • the locale of the phone,
  • the language of the app,
  • the intro pricing eligibility of your customer.

Then, you can also fall into these situations that complicate the work of displaying prices.

  • displaying a comparison between two prices,
  • displaying a comparison between two prices for plans with different durations,
  • computing a discount percentage between two items,
  • computing a discount percentage between a monthly and yearly plan,
  • displaying the equivalent amount of a yearly plan on a monthly or weekly basis.

Legal and compliance - Never break the law

The App Stores set out a large set of rules that apps must comply with.

  • App owners must be transparent about their offers and services to avoid misleading users.
  • Following the subscription, users should have immediate access to every content or feature described beforehand.
  • Apps must not include links leading to out-of-the-app purchasing opportunities. 
  • Apps must not encourage any non-In-App purchasing methods.
  • Apps must not monetize built-in capabilities provided by the hardware or operating system (push notifications, AirPlay, use of camera, etc.).
  • Apps integrating In-App Subscriptions must display transparent pricing and renewal term information.
  • Apps must provide a link to the Terms and conditions and privacy policies (the full mentions embedded as text are no longer mandatory).

Not complying with store regulations will lead to app rejection or, although it's a rare case, even app removal.

Always compute the prices

Let's say you want to propose a discount for a yearly plan. You will set the price to match a nice rounded 50% in the US, but in most countries (due to conversion rates), you will most likely end up with a number like 46.5%.

For example, in Apple App Store, which works with a tiers system, $0.99 is equivalent to 0.79€ for the first tier, and $1.19 is equivalent to 0.99€ for the second tier. So hardcoding the discount percentage to a clean 50% regardless of the locale settings will not really present the same value in different currencies.

Also, always round down percentages and compute percentages on prices displayed to your customers.

Tracking - Understand the full conversion funnel

Any subscription app owner aspiring to grow will track every paywall event - paywall appearance, pricing and plan selections, swipes on carousels, taps on links (terms and conditions), time spent on each paywall, plan selected by default, and what's the other thing? Let's say the list has no end. (See the list of all UI events tracked by Purchasely)

While this is without a doubt a successful business practice, tracking every event has implications for changing paywalls. 

Each time a paywall changes its composition, such as design, content, or buttons, it can affect the tracking setup and thus analytics.

It often requires non-regression tests for every single paywall change, which takes a lot of time.

Localization - Don't get lost in translation

An app is distributed globally and localized for users in different countries. While the effort extends to localizing texts and visuals on paywalls, it soon becomes a nightmare mixing all these with computed prices, free trials, and discounts.

One of the straightforward tricks to avoid these errors is not to add texts to images at all costs. Otherwise, it will be a nightmare having to re-generate images showing different languages (like App Store screenshots).

Devices - One size DOESN't fit all

If you think there are huge differences in the display between iPhone SE and an iPhone 13 Pro, think about the difference in the paywall display on iPad Pro and a TV!

Size, proportion, pixel density, distance to the screen, touch, or remote … having a paywall that looks great on all devices requires a number of developments and tests. While small display dimensions can cause issues like clipped texts or visuals, bigger display dimensions will surprise users with huge text lines, small fonts, and other maladjustments.

Accessibility - inclusive usability for all

Digital accessibility is not some fancy optional business practice but a must-do.

More and more leading apps are putting effort into providing a more inclusive app environment where all users, even those with physical disabilities, feel comfortable and welcomed.

The effort should extend to paywalls. 

For example, paywall texts and interface elements can automatically adapt to accessibility preferences such as bold text, larger text, inverted colors, and increased contrasts.

Other things to consider for a more inclusive paywall experience include selecting the right colors with users with colorblindness in mind, using haptic feedback, clear button states, or voice-over compatibility.

Dark mode - Dark mode for light (angel?) pattern

Dark mode is one of the biggest trends in the world of digital design. But the trend comes with considerable impacts on paywalls:

  • Images will likely change and possibly for each device type (and language if the text is included)
  • All colors (font, button selection, etc.)

It is almost a second version of the same screen that will require you to produce more images (understand why I suggested avoiding text in images?) and double the number of tests.

If you have a lot of devices to cover, you most probably want to generate different versions using tools like fastlane.


You may say the article breaks your spirit talking so much about all these pain points. But challenges spelled differently are opportunities. Behind the magic of Purchasely's Paywall Builder, there is a full set of solutions to all these invisible issues.

We've conducted heavy unit tests and UI tests for months to tackle each and every one of them to enable the following capacities within the Purchasely platform.

  • Capacity to intuitively customize and compare price information display.
  • Assistance for respecting the rules on displaying regular prices and for reviewing Apple & google guidelines before publishing.
  • Capacity to preview your paywalls in every possible way (devices, stores, and languages) and on a real device by simply flashing a QRCode.
  • An embedded and efficient localization system that supports image localization.
  • The possibility to use diverse templates and customize paywall designs.
  • The capacity to optimize paywalls for phones, tablets, and TVs. 

If you are curious to know more about how Purchasely can help you remove the roadblocks along the way of your paywall project, head over here to book a quick live product tour with one of our experts!

Ready to increase your in-app revenue?