Introductory Pricing for iOS: Getting Started
In this tutorial, you’ll learn how to add an introductory pricing option to an app that already offers an auto-renewable subscription. By Rony Rozen.
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Sign up/Sign in
With a free Kodeco account you can download source code, track your progress, bookmark, personalise your learner profile and more!
Create accountAlready a member of Kodeco? Sign in
Contents
Introductory Pricing for iOS: Getting Started
20 mins
Testing
Now that everything is set up, you should test it. Remember the sandbox user you created earlier? Now it’s time to use it! Note that while you can get the list of available IAPs on the simulator, to test actual purchases, you’ll need a physical device.
Run the app on your device, tap Purchase and you’ll see this alert:
Type in the details of a sandbox account that hasn’t already purchased this subscription, and tap Continue.
You should now see this alert:
Once you tap OK, you’ll get random words of wisdom by Winnie the Pooh: “If you live to be a hundred, I want to live to be a hundred minus one day so I never have to live without you.” That’s one smart bear. :]
You should also check some flows that result in a failed transaction. For example, uninstall the app from the device, reinstall it, and try to purchase the same subscription with the same sandbox user. Because this user purchased the item in the past, you should get this alert, followed by a failure message:
Now, uninstall and reinstall the app again and try restoring the IAP with the same sandbox user. In this case, you’ll get the same alert, but it’ll be followed by a successful restore.
In production apps, you should automatically attempt to restore the purchase as soon as you realize the user has purchased it in the past. At the very least, provide a good fallback display to the user so that the current status is clear. In this sample app, we kept things simple so that you can easily check for failed states.
You can see the sandbox user you’re currently signed in with in the Settings of your device by selecting iTunes & App Stores. There you’ll see your real account at the top and the current sandbox account at the bottom.
In addition, you should test for different scenarios. Consider a user who:
- Attempts to buys a subscription in a country for which you don’t offer Introductory Pricing.
- Has already used the introductory price and attempts to purchase the same product again.
- Hasn’t used the introductory price for the specific product you’re testing but has used it for another product that belongs to the same subscription group.
- Has used the introductory price for a product in a different subscription group and is still eligible for the introductory price on the subscription under test.
Introductory Pricing Best Practices
To add Introductory Pricing to an app that already has auto-renewable subscriptions, you don’t have to make any changes to the code. You can just make the relevant changes in App Store Connect and let Apple take care of the rest. However, if you really want to make the most of this great new way of enticing users into subscriptions, you might want to make some UI/UX changes to make sure potential buyers are aware of the introductory price your app offers.
Apple Human Interface Guidelines about In-App Purchase points this out specifically: “When offering an introductory price, indicate the introductory price, the duration of the offer, and the standard price the user pays after the offer ends.”
Consider these points when adding introductory prices to apps already live in the App Store:
- Make sure your users are aware of the offering. Display the discounted price in a clear and appealing way so users know exactly what they’re purchasing. You can get all of the details you need in the new property added to
SKProduct
calledintroductoryPrice
(of type SKProductDiscount). This data includes:price
,priceLocale
,paymentMode
,subscriptionPeriod
, andnumberOfPeriods
. - Don’t promise your users an introductory price that they find out they’re ineligible for after they’ve already started the purchase process. Determine eligibility as early as possible in order to match the display to the user’s specific case.
- Introductory prices for promoted IAPs also appear on the App Store. When deciding how to use this feature, remember that potential users can see the discount before they install your app. When used properly, introductory prices can attract new users to install your app and convert existing users into new subscribers.
- Users can now easily view and manage their subscriptions via this link apps.apple.com/account/subscriptions. There, they can see their subscriptions and switch between different options in a subscription group. It’s important to check how your IAP offerings look there and to direct your users there when relevant.
- Finally, Apple added a new subscription retention dashboard in App Store Connect ▸ App Analytics. Once your app is live, keep an eye on the retention dashboard for trends. Notice how introductory prices improve user acquisition and use this data to make decisions about your app’s future offerings and business model.
Where to Go From Here?
I highly recommend checking out Apple’s Introductory Pricing Documentation and the Best Practices and What’s New with In-App Purchases session from WWDC 2018.
Also, be sure to go over Apple’s Receipt Validation documentation for more details on how to validate your receipts. This is necessary for determining user eligibility for introductory prices.
Introductory pricing is a great addition to your IAP toolbox and can help you attract new subscribers. After all, what’s an app without active paying users? :]
As with other types of IAPs, don’t forget about Apple’s guidelines – allow users to restore purchases, fail gracefully and provide a great user experience, even for ineligible users. As long as you keep your users in mind while you’re designing and developing your app, both you and your users will benefit from it.
Post your questions or comments about this tutorial in the discussion below!