Introductory offers are a great way to bring new users to your cool app. All people love discounts - so why don't you offer users what they are waiting for? Discount! Apple developed an introductory bidding mechanism for this very purpose.
Hello everyone, my name is Denis. The team and I are developing the Apphud service, a tool for analyzing subscriptions in iOS.
We have already touched on the introductory sentences in our previous article . If you read it, you can skip this block.
Until recently (before iOS 10), Apple offered only one type of introductory offers - a free trial period. Now this list has been expanded to three: a free trial period, payment upon use (Pay as you go) and prepayment (Pay up front).
This payment model provides a one-time discount for one or more payment periods. At the end of these periods, the regular subscription cost will be charged to the user. For example, the user may be asked to subscribe to a service worth $ 3.99 per month. This price will be valid for 2 months, after which it will be able to continue using the service at the regular price of $ 9.99 per month.
The price of this offer upon use must necessarily be lower than the normal subscription price. For example, you cannot offer the user to pay $ 19.99 / month for the first two months, and after - $ 9.99 per month.
The table below shows the possible values ​​of the duration of the initial period depending on the duration of the subscription itself:
In this model, you offer the user to pay immediately for several months (1, 2, 3, 6 or 12) in advance. At the end of this period, the user will pay a subscription on standard terms. For example, you can offer to pay a subscription for cloud storage immediately for 3 months in advance with a discount of $ 14.99. And in 3 months the user will pay $ 9.99 per month. There are 2 essential differences of this model from the Payment upon use:
And, of course, our old friend is a free trial. You may notice that the trial is a special case of prepayment, in which the initial price is zero.
Now that we have figured out what the introductory sentences are, it's time to start creating them.
Open App Store Connect , go to the “Features” section and select the subscription you need:
In the “Subscription Prices” section, click on “+” and select “Create Introductory Offer” in the drop-down list:
Select the territories (countries) to which the offer will apply:
As we mentioned earlier, you can have no more than one introductory offer for each subscription and territory at any given time.
Enter the start and end dates of the offer:
Choose from three types of introductory offers:
Depending on the type selected, enter the following data:
If you create an offer like Pay as you go or Pay up front, on the next screen you can adjust the cost of the offer for each territory in which it is valid:
Save the changes. Cool! Your proposal has been created and is active.
Apple developed a special class for introductory offers: SKProductDiscount
. This class is included in the StoreKit
library, which is responsible for working with in- StoreKit
purchases. From now on, each product ( SKProduct
class SKProduct
) contains an optional introductoryPrice
attribute (it is optional, because the introductory offer may not exist for this subscription) of type SKProductDiscount
.
SKProductDiscount
contains information about the offer:
paymentMode
- type of introductory offer. Possible values: payAsYouGo, payUpFront, freeTrial.price
and priceLocale
- the cost and locale of the introductory offer.numberOfPeriods
is the number of periods of the introductory sentence. For Pay up front and trial, this value is always 1.subscriptionPeriod
- the duration of the introductory sentence period. For example, day, week, month or year.You can use this API to correctly display the terms of the offer to the user: including its duration and price.
Do not display the offer to the user if he is not entitled to use it. It is imperative to first check whether he can use it.
Before you show the introductory sentence to the user, you must make sure that the user can use it. The fact is that each user can take advantage of the offer only once in each group of subscriptions. For example, if your application has three tariff plans: Bronze, Silver and Gold, which are in the same product group , and each of which offers a free weekly trial, the user will be able to activate only one of the three trials. And use the trial only once (within the same group of subscriptions). If he has already done it once, then we cannot show him, like the other users, a screen with a suggestion to try the application for free during the week. Instead, we must immediately send it to the screen with the registration of a paid subscription.
Monitoring this is the task of the developer.
This is where the fun begins. There StoreKit
no methods in StoreKit
to find out if a user can use the introductory offer or not. The only option is to save somewhere (for example, on the server) checks (receipts) from all subscriptions of this user for each group of purchases. And whenever you need to check the user's right to an introductory offer of a subscription, view all the transactions of each check belonging to the required group of subscriptions, in search of the is_trial_period
and is_in_intro_offer_period
. If somewhere this value is 1, then the user has already used the trial / introductory offer in this group of subscriptions.
Sweaty, right? To do this, you will need your own server to which you will transfer data on all user purchases. And all you need to do is just to find out if this user used the introductory offer once or not.
We ourselves faced this problem and began to solve it. This is how the idea of ​​a service, on which we are actively working now, a service for analyzing mobile subscriptions, appeared.
Thus, new users can always use the trial or introductory offer, and among current users only those who have never activated the trial or introductory offer in this group of subscriptions .
Introductory offers are a great tool for attracting new users. Coupled with Apple's reduced commission of 15% for loyal users, this will help to significantly increase the earnings of your application. But unfortunately, in order to use it correctly, you will have to pretty much tinker with setting up your own server.
Source: https://habr.com/ru/post/453514/
All Articles