How to use IAP subscriptions with existing subscription web service

Hi!

Setting up iOS subscriptions for an app itself seems to be quite straightforward. However, when trying to connect an existing iOS app to an existing web service I came across several possible problems and conflicts.


While there is a lot of information out there about how to implement iOS subscriptions in general, I found no information on how to use them with an existing subscription web service.


The Setup:


The existing web service

  • A webpage where users can create a user account to access premium content.
  • When a new account is created it starts with a one-month free trial. During this time the user can test the service and access the premium content for free.
  • The user can decide at any time to subscribe to the service. This can be done using one-time purchases to extend the subscription for a fixed period (e.g. 3 or 6 months) without automatic renewal. Or by starting a real subscription which will auto-renew every 6 months.
  • In both cases (one-time purchase or subscription) the purchased period is always added to the end of the existing period. If, for example, the user purchases a 6 months extension after he has finished one week of his free trial month, the 6 months will be added to the end of the trial period. Thus the user will be able to access the premium content for 7 months.
  • All purchases are directly handled on the webpage


The existing app:

  • A freemium iOS app. It can be downloaded for free from the store and tested with some basic features. Additional features can be unlocked using non-consumable IAPs.
  • The App should now be upgraded to be able to be connected to the web service to access the premium content from within the app.



Question 1:

As far as I understand the App Store Guidelines it would be OK to simply offer a login feature within the iOS App that allows to connect to an existing web account and to access the premium content. As long as the user cannot create a web account or make web purchases from within the iOS app everything is fine. Is this correct?


However, it would, of course, be a much better user experience if the users could create a web account directly from the iOS App. In this case, it has to be possible to buy the premium content access using IAP while directing the user to the web store is not allowed. Is this correct?



The goal:

Let the user create a web account and purchase premium content subscriptions from within the iOS App


The Problem:

If it would only be possible to purchase the content subscriptions from within the iOS app everything would be fine. But when bringing together subscriptions from the web service and the iOS app there are many possible conflicts.


Problem 1: Purchase only available when the user is connected to web service

As described connecting the iOS app to the web service is completely optional. Thus there will be a lot of users who do not use the web service at all. Of course, it does not make any sense to offer the subscription IAPs to them. Is it allowed to show the subscription purchase option only when the user has connected to a web account?


Problem 2: IAP subscription when web subscription is already active

If the user connects to an existing web account it is possible that he has purchased a subscription on the web page before. Offering him another subscription within the iOS app does not make any sense. Is it allowed to hide/deactivate the subscription IAP if the web subscription is already active?


Problem 3: IAP subscription when web one-time purchase is active

If the user connects to an existing web account it is possible that he has purchased an extensions package on the webpage before. For example, his premium subscription is active for the next 3 months but will not auto-renew. I would possible to offer the user the possibility to switch to a auto-renewing subscription but as described before this subscription should be added to the end of the active premium-period. While this is no problem with the web-subscriptions I am not sure how to handle this with iOS subscriptions. The iOS subscription would start immediately and not in 3 months when the current premium-period has ended. How to solve this? Is it allowed to hide/deactivate the subscription IAP as long as the premium-period is active?


Problem 4: Account creation within the iOS app and trial month

If the user has no existing web account it should be possible to create on directly from within the iOS app. As described before a new account starts with a one month free trial. This is basically the same as Problem 3: How to let users extend the premium-subscription after the trial month using iOS subscriptions? If the users purchase the iOS subscription after one week of the free trial he would lose 3 free weeks. How to solve this?



Possible solution:

In general, I would offer the iOS user two options: Sign in to an existing web account OR Create a new web account. In both cases, I need to check if the users already has an active subscription. This is always the case if a new account was created due to the free trial month.


  • If an auto-renew subscription is active the subscription IAP is deactivated to not let the user pay twice
  • If a one-time purchase extension is active (e.g. trial month) there are two options:
    • Hide the subscription IAP until the premium-period has ended. Then offer the user the possibility to subscribe using the subscription IAP.
    • Offer the subscription IAP even if the premium-period is still running.
      • Let's assume that the account was created on October 1st and thus the free trial will be active until November 1st.
      • The user purchases the subscription IAP on October 15th and it will auto-renew after one month.
      • Internally the web service will add the subscription to the end of the trial month and will thus set the expire date to December 1st (trial month + one month paid).
      • The subscription IAP auto-renews on November 15th. Internally the web service adds the purchase to the end --> expire Date = January 1st.
      • On December 5th the user cancels the subscription IAP. From the point of view of the subscription IAP the premium-period now ends on December 15th. However, the web service continues to let the user access the premium content until January 1st.


Is this a valid solution?

TMI.


You can operate under:

3.1.3(a) “Reader” Apps: Apps may allow a user to access previously purchased content or content subscriptions (specifically: magazines, newspapers, books, audio, music, video, access to professional databases, VoIP, cloud storage, and approved services such as classroom management apps), provided that you agree not to directly or indirectly target iOS users to use a purchasing method other than in-app purchase, and your general communications about other purchasing methods are not designed to discourage use of in-app purchase.

Yes, this is obviously the use case my app would operate under. But this does not answer my questions, does it?


  • The user installs iOS App and logs into existing web account. A paid, auto-renewing web subscription is already active within this account.
  • What to do? Is it OK to hide/deactivate the IAP option since the user already paid? Or does this conflict with "not to use a purchase method other than iap"?


  • The user installs iOS App and logs into existing web account. A paid one-time purchase (or the trial month) is already active within this account.
  • What to do? Currently, the user gets a notification mail before the subscription/package is about to expire. Is this OK or a conflict with "not to use a purchase method other than iap"?

The user installs iOS App and logs into existing web account. A paid, auto-renewing web subscription is already active within this account.


What to do? Is it OK to hide/deactivate the IAP option since the user already paid? Or does this conflict with "not to use a purchase method other than iap"?


3.1.3 states: "Apps may allow a user to access previously purchased .....content subscriptions"

If it would be ok to not have an IAP (and it is) then it would be ok to hide the IAP.


What to do? Currently, the user gets a notification mail before the subscription/package is about to expire. Is this OK or a conflict with "not to use a purchase method other than iap"?


3.1.3 states: 3.1.3(a) “...... provided that you agree not to ..... target iOS users to use a purchasing method other than in-app purchase, and your general communications about other purchasing methods are not designed to discourage use of in-app purchase."

Therefore the email you send out, which is a "general communication" cannot "discourage use of in-app purchase". It also cannot "target iOS users" which means it can't be generated from, nor rely upon, the app (e.g. iOS notifications). I'd add 1) a note in the email for non-IAP subscribers telling them they can subscribe via IAP and 2) omit all mention of the web service subscription method in the app and in the access to the web service obtained through the app.

How to use IAP subscriptions with existing subscription web service
 
 
Q