What’s new in Apphud: SplitMetrics Acquire Integration, Experiments Improvements, SDK UpdatesLet’s see
Why Apphud?PricingContact
June 21, 2019
10 min read

Introductory offers in iOS

Introductory offers is a great way to attract new customers to your cool app. Everybody loves discounts – so why not to offer people what are they waiting for? A discount!

Introductory offers in iOS

Apple designed introductory offers specially for this.

How do these introductory offers in iOS work exactly? Well, offers within in-app purchases mean that any user who is eligible can get an introductory price and a free trial if the app has auto-renewable subscriptions. However, there is one condition — a customer can only receive Apple’s introductory offer if they haven’t got one before for the product in question or any other products belonging to the same subscription group. This way, you can easily boost your subscriptions.

To start using this cool feature, you should go to App Store Connect and set up introductory offers. But which users are eligible and which are not? You can determine it in your app. The app will query the App Store for a list of available products, upon which you should display the introductory pricing to any user who is eligible to receive them.

Types of Introductory Offers

We already talk about introductory offers in our previous article. If you already read it, you may skip this block.

There was only one kind of introductory offers till iOS 10 – free trial. Now this list was expanded to three options: Free trial, Pay as you go, Pay up front.

Pay as you go

With this option, a customer can be offered a one-time discount for either one or several subscription periods. Upon the expiration of these periods, the regular subscription price will be applied again. Let’s say the price of your service is $3.99 per month after the one-time offer is applied. It will be valid for 2 weeks, and if the customer likes your service, they will carry on using it at the regular price of $9.99 per month.

Pay as you goPay as you go

With Pay as you go, the price has to be less than the regular one. So, you can’t make a user pay $19.99 per month within the initial 2 months and $9.99 per month later. Luckily, there is a Pay up front model, which partially solves this problem.

Here are available begin durations depending on subscription duration:

Pay as you go durationsPay as you go durations

Pay up Front

Under this model, customers have the option to pay in advance for several months at once. After this period is finished, the subscription will return to its regular price. So, if 3 months of your service’s cloud storage costs $14.99 with a one-time payment, then 3 months later, the price will be $9.99 per month. The two major differences between Pay as you go and this model are listed below.

  • The price of a Pay up front offer can be higher than that of the regular subscription.

The offer can only be valid for a single period of 1, 2, 3, 6, or 12 months.

Pay up frontPay up front

Free trial

A free trial is a well-known option that has a lot in common with the Pay up Front model. One of its prominent differences is its starting price of $0.

What to Keep in Mind About Introductory Offers

  • No matter what the subscription is, the rule is one territory — one introductory offer. This way, each territory can have a separate offer; however, only one is allowed per territory. Most of the time, with this amount, it is possible to create one introductory offer for all territories.
  • Just one introductory offer can be used by a customer for one product group.
  • This feature can only be applied to apps no older than iOS 10, macOS 10.12.6, or tvOS 10.

How to create Introductory offer?

Now when we know what are introductory offers, let’s create them.

Go to App Store Connect, open “Features” section and choose your subscription:

In app purchases<br>In app purchases<br>

Click at “+” near “Subscription Prices” and choose “Create Introductory Offer”:

Subscription settingsSubscription settings

Select all territories where this offer will be available:

Select countriesSelect countries

As we previously noticed, you may have only one introductory offer per subscription and per territory.

Enter start date and end date:

Enter start and end datesEnter start and end dates

Choose one of 3 kinds of subscription offers:

Select type of promotional offerSelect type of promotional offer

Enter the following info depending on your previous selection:

  • Pay as you go, pay up front: the number of periods and a price
  • Free trial: a duration of free trial

If you chose Pay as you go or Pay up front, you will be offered to set up a price at every territory:

introductory pricesintroductory prices

Click “Done”. Good job! You created an introductory offer.

Introductory offers API

There is a special class for introductory offers called SKProductDiscount. This class is a part of StoreKit library which handles your app’s In-app purchases. Every product (an object of SKProduct class) contains an optional IntroductoryPrice property of type SKProductDiscount.

SKProductDiscount contains information about introductory offer:

  • paymentMode is an introductory offer kind. The possible values are: payAsYouGo, payUpFront, freeTrial.
  • price and priceLocale are price and locale of introductory offer.
  • numberOfPeriods is a number of introductory offer periods. For pay up front and free trial it will be always 1.
  • subscriptionPeriod is a duration of introductory offer period. It can be a day, a week, a month or a year.

You can use this API to correctly show subscription terms to a user, including subscription duration and price.

Do not show a subscription offer to users if they are not eligible for it. It’s very important to check this beforehand.

User eligibility determination

There’s an important thing you have to keep in mind before creating the best introductory offer. You must check user eligibility before showing them an introductory offer. The fact is that user can use an introductory offer just once per subscriptions group. For example, if there are 3 plans in your app: Bronze, Silver and Gold, which are in one subscription group, and every plan offers a free weekly trial, a user can activate only one of these free trials. And they can activate a trial just once (in this subscriptions group). If they have done it once previously, we can not show them a “Try the app for free” screen. Instead of this, we should redirect a user to a screen where they can buy a paid subscription.

It’s your responsibility to check this.

And here are the funny things begin ?. There are no functions in StoreKit to check if user already used introductory price or not. The only way is to keep all subscriptions receipts for all subscriptions groups somewhere (e.g. on your server). When it’s time to check user eligibility, you should find all transactions of every receipt from necessary subscriptions group. When you find it, look through their is_trial_period и is_in_intro_offer_period fields. If these values are equal to 1 somewhere, a user has already used free trial/introductory offer.

Too hard, huh? You will need your own server to store all transactions. You just wanted to know if user can activate introductory price or not…

You can use Apphud to properly track your subscriptions and get actual real-time analytics. Start now for free!

Thus, new users can always activate introductory offers. Among current subscribers – only those who have never used an introductory offer in this subscription group before.

Some notes

  • Always check user eligibility before showing them an introductory offer.
  • It’s better to check user eligibility as soon as possible: every delay at showing purchase screen may lead to a conversion decrease.
  • Introductory prices are being shown on App Store, so you can use this for a marketing purposes. These users can start a trial or activate an introductory offer right on the App Store:
You may advertise offers right on the App StoreYou may advertise offers right on the App Store


Introductory offers are amazing instruments for attracting new customers. But unfortunately, there are lots of stumbling blocks here, like creating your own server setup just to check a user’s eligibility. To make things simpler, you can use a service like Apphud

Co-founder at Apphud
Ex iOS app and game developer. 11 years in the industry since iOS 3. More than 50 apps are in the background with 4 exits. Entrepreneur and traveler.

Related Posts