Implementing In-App Subscriptions for iOS App: Introduction

You’ve made a fantastic app and have content to release every month eventually. We understand you’re providing value to the user, and having a continuous payment subscription is justified. You plan to offer different tiers of subscriptions, like quarterly, bi-annually, and annually. Whether you’d like to manage these subscriptions by yourself or use 3rd party infrastructure, App Store Connect is your starting point. 

In this article, we’ll explore how you can add auto-renewable subscriptions in App Store Connect. 

We’ll cover the following:

  • How to Create an In-App Purchase
  • How to Create a Subscription Group
  • How to Add a Subscription Price
  • How to Update the Subscription Duration
  • How to Provide Localizations
  • How to Add Information for Review

​Getting Started

​​Let’s say we have a sample app called “Qonversionly” offering three tiers of subscription: 

  1. ​​Monthly
  2. ​​Half-yearly
  3. ​​Yearly

​​You can set up subscriptions and pricing in App Store Connect. Then head over to App Store Connect and select My Apps.

​​Note: To create new in-app purchases, you have to review and accept the Paid Applications agreement in the Agreements, Tax, and Banking module. Without accepting it, you cannot test your in-app purchases. The warning will look something similar to the image below on the main page of App Store Connect.

Now, on the My Apps page, select the app on which you want to implement subscriptions:

​​On the main page of your App, go to the sidebar and select Manage under the In-App Purchases heading:

​​The In-App Purchases page is where you add and maintain all your purchases, whether it’s a one-time non-consumable/consumable product or an auto-renewable or non-renewing subscription.

​​​​Important: For your first in-app purchase, submit a new app version. Once the first one is submitted for review, you can submit additional in-app purchases.

How to Create an In-App Purchase

​​Click the “+” button to add the first in-app purchase. It’ll open a popover sheet that contains the different types of in-app purchases. For a quick overview, there are four types that you can create:

  • ​​Consumable
  • ​​Non-consumable
  • ​​Non-renewing subscription 
  • ​​Auto-renewable subscription

​​You can choose the Auto-Renewable Subscription option to renew the purchase automatically after a set period until the user cancels it.

​​Click on Create. It’ll then load a popover sheet to fill in the Reference Name and Product ID for the auto-renewable subscription. 

​​The reference name is used on App Store Connect and in the Sales and Trends reports only. The name cannot be longer than 64 characters. 

​​The Product ID is a unique alphanumeric ID used for reporting. Once you use a Product ID for one product, it cannot be used again, even if you delete it. So, choose the ID carefully.

​​Let’s start by creating a yearly subscription plan:

How to Create a Subscription Group

​​After you click on Next, it presents a popover sheet to create a Subscription Group. For multiple different content offerings on the same app, you can use a subscription group. Users can change their subscription within a group but can only be subscribed to one of them within one group at a time. They can find all the renewal options in the group in the account settings on the App Store.

​​If your app has different subscriptions for different products, you can put them in different groups. This ensures that the user can purchase multiple subscriptions and is billed separately for each of them.

​​Now, provide the Subscription Group Reference Name. The name only appears on App Store Connect and in Sales and Trends reports. For the sample app, the name is Qonversionly+:

​​Finally, click on Create. The button will load with an activity indicator while the product in the subscription group is being created. Afterward, you’ll be redirected to the In-App Purchase page with the auto-renewable subscription shown under the In-App Purchase heading:

How to Update Your In-App Purchase

​​As of now, the subscription status is “Missing Metadata.” Then click on the Reference Name of the subscription. You’re taken to the detailed page for this particular subscription:

​​

How to Add a Subscription Price

​​To add the subscription price, click on the “+” button alongside the Subscription Prices heading. You can also click on All Prices and Currencies to calculate the price and proceeds for 175 (at the time of writing) countries or regions based on the most recent foreign exchange rates.

​​Clicking the “+” button opens a popover sheet with the option to set the Subscription Price. Set the base price for a particular currency. For example, 6.99 US dollars. Based on the price and currency, Apple calculates it for all 175 (at the time of writing) countries or regions based on the most recent foreign exchange rates:

​​Click Next. You’ll be given the option to edit the prices for countries or regions individually:

​​When you’re done modifying the price or leaving it to default, click Create

​​You’ll see the subscription price created, and you may edit it with the date of the price change. To complete the subscription pricing process, click the Save button in the top right.

How to Update the Subscription Duration

​​You can update the duration by selecting the dropdown from the Subscription Duration. As we’re currently editing the Yearly subscription, we’ll select 1 Year:

How to Provide Localizations

​​App Store Connect provides us with a warning that we must add at least one localization to the subscription group before submitting an in-app purchase for review. Then click on Add localizations. The page takes you to the details page for the subscription group:

​​Go to the Localizations heading and click the “+” button alongside it. It opens a dropdown to select the language to localize in. As an example, select the “+” button alongside English (U.S.):

​​​​Next, we will provide the subscription group display name. You also have the option to provide a custom name for displaying the app name:

​​Again, click on the Save button. Now, go back to the manage page to provide localization for the subscription product. Scroll down to the Localizations heading and click the “+” button alongside it. Again, select English (U.S.):

​​Next, we need to provide the display name and description for the in-app purchase. This will be shown on the App Store and to the users: 



​​After providing the necessary information, finally, click on the Save button.

How to Add Information for Review

​​Before you can ship your subscription, you need to get it approved by Apple’s review. You can provide a screenshot of the subscription paywall screen or screenshot of the purchase representing the item being sold. It is helpful to follow the App Store Review Guidelines and these recommendations, so that your in-app purchase is not rejected. 

​​The screenshot requirements are:

  • ​​iOS requires at least 640 x 920 pixels.
  • ​​tvOS requires 1920 x1080 pixels.
  • ​​macOS requires 1280 x 800 pixels.

​​Note: This screenshot is only used for review purposes, and it won’t be displayed on the App Store.

​​You can also provide additional information under the Review Note for the reviewer, so they can understand the in-app purchase and you can help them with the process:

​​Now, submit your first IAP with the new version of the app!

​Introductory Offers

​​You can offer your customers a discounted price as an introductory offer. Click View all Subscription Pricing under the Subscription Prices heading:

​​You’ll be directed to the Subscription Prices page that has four tabs: 

  • ​​Subscription Prices
  • ​​Introductory Offers 
  • ​​Offer Codes
  • ​​Promotional Offers

​​Click on the Introductory Offers tab. Note that this is only for new subscribers. They’ll be automatically charged the full price when the offer ends unless they cancel their subscription.

​​Then, click on the “+” button to create a new introductory offer. It opens a popover sheet that helps you select the countries where you want to offer the discounted pricing:

​​Click Next. Here, you can choose the dates when you want the offer to be available. If you select the current date as the start date, the offer starts immediately:

Click Next. The next page is about choosing the different types of introductory offers. There are three types of offers: 

Free Trial

New subscribers can access your subscription’s content for free for a particular period and won’t be billed for the same. Once the free trial expires, they’ll be billed at the regular subscription pricing.

Pay Upfront

New subscribers pay upfront one-time, introductory offer pricing, and after the offer expires, the subscription renews at its original pricing. For example, your subscription costs $2.99 per month. You can offer $4.99 for two months as an upfront introductory offer. After the first two months, the subscribers will be billed at $2.99 per month.

Pay As You Go

New subscribers pay a discounted price per renewal as an introductory offer, and after the offer expires, the subscription renews at its original pricing. For example, your subscription costs $4.99 per month. While launching the app, to attract users, you can offer $2.99 per month for three months, and after three months, they’ll be billed at the regular price of $4.99 per month.

​​Apple provides the developers with a table showing possible introductory offer durations: 

​​Note: You may create an offer for each subscription, but the subscriber can only redeem one introductory offer per subscription group.

​​Let’s provide the users with a free one week offer, so they can experience the app. Finally, click Done:

​​Similarly, you can create promotional codes for discounted prices or free offers for your iOS app. App Store Connect also gives you the facility to create Promotional Offers for specific durations for existing customers. This may help you win back customers who cancelled their subscriptions or offer them a special price.

Note: Subscribers can avail the promotional offer even if they have completed an introductory offer.

​​You can learn more about promotional offers.

​Billing Grace Period

​​If there’s a billing issue or payment failure, you can turn on the Billing Grace Period to allow your subscribers to access your app’s paid content even after their subscription expires. The length of the grace period depends on the subscription duration, which Apple sets. They will attempt to collect the payment during this period. If they successfully recover the subscription amount, you will not experience any interruption in your revenue. To learn more read this article.

​​You need to update the entitlement logic to ensure you’re providing service to customers within the grace period. Learn more about reducing involuntary subscriber churn.

​Conclusion

​​We hope that this guide helps you create your first In-App subscription seamlessly. The next article will focus on accessing the IAP that you create in App Store Connect using the Qonversion iOS SDK, so stay tuned!

​​Qonversion provides a complete infrastructure for in-app purchases and allows you to create and restore purchases, validate receipts, and provide your app with an accurate subscription status without a need to build your own server. It takes a few days to implement SDKs, but if you would like to forget about StoreKit complexity, these efforts are worth it. Qonversion is also a powerful tool for marketing—you can send the data on all your subscription events into 3D party services like Appsflyer, Adjust, Amplitude, and others. A/B testing helps you to find the right price for your app—compare different price options or offerings and find the ones that work best for your revenue. Automation helps you send personalized push notifications generated by user’s behavior—you can suggest a trial, discount, or simply ask why the person wants to leave.

Also, it is free until the $10k MTR.

​​If you find this article useful or have any questions, we’d love to hear from you! Join our community on Slack to discuss subscription insights, tips, tricks, and growth tools. 

To learn more on how to handle StoreKit Errors please read this guide or discussions.