Is is possible to create date-ranged in-app subscription in Apple and Google Plays stores? - ios

We are currently offering a variety of premium plans on our app using in-app purchases and not Subscriptions. We have a 4 months plan and 1 year plan when user pays from the start (he can cancel at any-time by contacting us and our back-end manages the plans so after the period of the plan has ended he is downgraded automatically) and we want to switch this mechanism to monthly payments subscriptions for better revenue reasons.
It looks as (at least on Google Play) that we can define the billing period by weekly, monthly, etc, but the period of the subscription is still indefinit by meaning of time.
Are subscriptions are "for life" until user cancels it? How does it work?
Is it possible to create a fixed 4 months or 1 year subscription that is paid monthly until its finished automatically? How can we define that a subscription needs to end after exactly 4 months since user first purchase it? (It should also be auto-renewal month by month in that period).
If this is not possible, can we somehow create an indefinit subscriptions and "cancel" the subscription on iOS and Google Play stores for the user without him knowing? (from back-end or clients)
Also, what happens if user to buy a different subscription while he is already in one? Should he cancel and also then buy?
Thanks for any clarification. The official guidelines by both companies are no so clear.

Related

How to rank subscription plans using Apple In-App Purchase in same subscription group?

We are trying to upgrade and downgrade subscription plans in apple in-app purchase.
All plans are in one subscription group having different prices and duration.
Our app has in-app purchases with auto-renewable subscriptions.
After buying subscription
1- I chose to downgrade to another product
I got a popup asking me to do I want to upgrade and will get a refund. I press confirm
2-After some time, I chose to upgrade to a higher subscription
I got a popup asking me to do I want to modify my subscription and subscription plan will begin and you will be charged when the current subscription expires
We have followed the below document.
https://developer.apple.com/app-store/subscriptions/#ranking
Still, We are a bit unclear about the apple developer document regarding subscription plan ranking.
Can anyone suggest, how to set the rank to a subscription plan?
I suppose you've configured your subscriptions in the wrong order since an upgrade should cancel immediately your current subscription, whereas a downgrade should wait for the next renewal date.
Here is an example of configuration:
Where the higher plan is "Gold".
So:
when you change from Silver to Bronze, you have to wait until the next renewal date
when you change from Silver to Gold, your subscription is immediately canceled and changed into Gold

Does free trial period for In App Purchases in iOS only work once?

We are integration IAP in our iOS11 app and want to give new users some start offerings with a long free trial period.
My implementation alternatives are:
Use auto-renewable subscription with a generous free trial (like 2 months for monthly subscription), and rely on Apple that a user that cancels can't restart and get 2 months again. Is this correct?
or
Make two IAPs, present the one with free trial to new users and present the one without free trails to a user that has canceled or stopped the free trail version. But users might find the IAP on App store (specially now when Apple will start feature IAP) and buy it anyway?
What is the best thing to do?
I'm managing an application with InApp Purchase and auto-renewable subscription.
As far as I know, InApp Purchase is linked to user AppStore account, and free trial can be consume only once per account.
If you present the same product after a free trial period, the user will resume your auto-renewable subscription and not benefit the free trial again.
So in my mind the first option is the best.
However if you would like to implement the second one, you should know that the new IAP management feature in your product store page allow you to show and hide the subscriptions you want.
For more information about this new feature, take a look at the WWDC video : What's New in StoreKit

Is it possible to deduct amount for monthly app uses through In-App purchase from user/customer?

I have one iOS app and want to deduct some amount through In-App purchase for every month as a maintenance charges. Example: I want to give my app as a free trail for first one month and after that I want to deduct $2 for every month as a monthly maintenance charges. Is it possible through In-App Purchase? Please advice me. Thanks in advance.
I don't believe that Apple would allow you a monthly maintenance charges just for using App. Subscription means you would unlock some content (which is paid), until user is in subscription period.
Still, just put a logic to detect whether user has been using your App since a month. You can do this by storing date in defaults. If it is more than one month, present user a subscription page with pricing.
Specify everything in details in review notes to make App reviewer understand well. If they don't have any issue with that, you will be done.

iOS IAP with auto renew subscription that has multiple products in the same family with the same duration

I'm currently working on an iOS app that will allow users to purchase an auto-renew subscription to access service charged monthly. I would like to be able to offer a basic and premium service, and allow users to upgrade or downgrade from one or the other.
I've set up test users and some test products and I've found that if you select the basic subscription first and then later on select to purchase the premium subscription the test user is charged for both services simultaneously.
Does anyone know if its possible to programmatically cancel a users current subscription when we've noticed they've either upgraded or downgraded their service, so they are only being charged once?
I've seen that using this link
https://buy.itunes.apple.com/WebObjects/MZFinance.woa/wa/manageSubscriptions
Allows a user to manage their subscriptions manually, but I would like to handle migrating them to their new plan automatically.
The control over the subscription once purchased is by the user. Only the user who purchased can cancel the renewal. As a developer you can't do any changes.
After a discussion with someone at Apple the answer to this is question is that there is no support for multiple product subscriptions with the same duration. They would not comment on how certain apps are able to do this. Officially it's not possible.

How to grant free months to an auto-renewal subscription (iOS)?

I have an iOS app with different auto-renewal subscription possibilities, and I want to offer it's user the chance to earn a free month when they invite friends to the app.
I know how to handle the scenario where I'd give a free month to a user that's not already subscribed, but I'm wondering how to handle a user that's in the middle of a year-long paid subscription and should receive a free month..
EDIT
Make sure to read budiDino reply below, it seems this is now possible (Full disclosure, I haven't tried it myself but I did glance over the references linked).
OLD ANSWER
Ok, after some digging and asking around on Apple's forums I can confirm it's not possible.
The only way to achieve this is to give users a free month outside of Apple's subscription process...meaning users should turn off auto renewal to enjoy those free months.
Whether this is good or bad for your app depends, but it required that the user manually turns off auto-renewal while using the earner out of charge time, and then turn it on to get back into the normal auto-renewal flow handled by Apple.
You can maintain a value like additionalMonths on your server side.
So once his subscription period gets over, you can check for the value of additionalMonths and accordingly provide him subscription for those number of months.
1. Promotional Offers
This option allows you to add a free or discounted price for a period that you specify and it will be executed before the next payment cycle. You can use this feature starting with iOS 12.2.
Apple Documentation:
You can provide lapsed or current subscribers a limited-time offer of a discounted or free period of service for auto-renewable subscriptions on macOS, iOS, and tvOS.
Some useful links:
Implementing Promotional Offers in Your App
Set up promotional offers for auto-renewable subscriptions
Subscription Offers Best Practices video - WWDC 2019.
2. Offer Codes
Apple Documentation:
Offer codes can help you acquire, retain, and win back subscribers by providing a subscription at a discount or for free for a limited time.
Read more
3. "Extend a Subscription Renewal Date" endpoint:
Potentially simpler alternative that is not really suggested to use for this use-case. It has certain limitations though:
you can move the renewal date for a customer’s subscription up to 90 days into the future for each extension
you can extend the renewal date twice within a year (365 days) per customer
The following types of subscriptions aren’t eligible for renewal date extensions:
Subscriptions in a free offer period
Inactive subscriptions in a billing retry state
Subscriptions in a grace period state, with an expiration date in the past
Subscriptions that have already received two renewal date extensions within the last 365 days
Read more

Resources