4

I want to implement auto renewable subscription with different discounts offers to the user. I have one product id but I want to apply different discount on same product id. Scenario like this, If user purchased within 1 week of installed app then want to give 50% discount on first payment. If user purchased after 1 week and before 2nd week completion then want to give 25% discount on first payment. Else user go with original price of product..

To achieve this functionality I have searched over internet and found something SKPaymentDiscount. But I don’t know I can achieve with SKPaymentDiscount or not.

If anybody have implemented same things or have experience with SKPaymentDiscount then please share with me.

If anybody have other suggestions then I will try that also.

Thanks in advance and welcome the suggestions.

Vipul Kumar
  • 893
  • 9
  • 19
Jasmit
  • 241
  • 3
  • 16

2 Answers2

0

As far as I know you cannot change the introductory offer dynamically on an auto renewable subscription. A workaround could be to create two different subscription types with different product IDs and different introductory offers. Then you can dynamically select the desired product ID based on the specified condition.

Keep in mind that the users will only get the introductory offer if they haven't purchased the product previously.

A similar question:

Free trial implementation for auto-renewable subscription for macOS app

Some relevant links in Apple's documentation:

Endanke
  • 867
  • 13
  • 24
  • Thanks Endanke. Can Apple reject such type of usage of Introductory offer? because different product ids for same in-app purchase? – Jasmit Feb 28 '20 at 08:57
  • @Jasmit I don't think so. I've worked on several apps that used multiple products for different conditions without any problem. In case they reject it, try to explain the use-case in the review notes of the subscription product. – Endanke Feb 28 '20 at 09:01
  • 1
    Thanks the way you suggested. Do you know what is the use of SKPaymentDiscount class (Just for curiosity)? – Jasmit Feb 28 '20 at 09:24
  • You can use it to select an available "Promotional Offer" for the subscription, which you can define on App Store Connect. I think you can also use this to achieve what you'd like to do, but it's slightly more complicated to use because you need to generate a signature for the purchase. Read more here: https://developer.apple.com/documentation/storekit/in-app_purchase/generating_a_signature_for_subscription_offers Also: https://developer.apple.com/documentation/storekit/in-app_purchase/implementing_subscription_offers_in_your_app – Endanke Feb 28 '20 at 10:21
  • Thanks a lot Endanke. I will go forward with introductory offer. The one and only fear is Apple rejection :) Let's see time will tell. – Jasmit Feb 28 '20 at 10:38
  • 1
    The only time we had problems related to IAP when we had irrationally high prices and too many separate packages for the same item. (More than 10.) Apart from that I think they are pretty flexible with one or two alternatives. – Endanke Feb 28 '20 at 10:44
0

No, you can not set introductory offer for different time stamp/ for different user as per your requirement.

You need to create 3 different products and assign the product id's according to user.

For SKPaymentdiscount:-

The SKPaymentDiscount contains the details of a subscription offer discount that you want to apply to a SKMutablePayment.

For more information follow : https://developer.apple.com/documentation/storekit/skpaymentdiscount

Also check this cool link to know more about SKPaymentdicount class https://blog.apphud.com/subscription-offers/

iOS Developer
  • 464
  • 6
  • 24
  • Thanks Sidharth, I can create 3 different products but after first time discount it will auto subscribe with discounted price not original price that i don't want. Is there any other way? and what will be the issue if i set introductory offer to product? (Apple rejection?) – Jasmit Feb 28 '20 at 10:05
  • Check the second link. I have never worked on "Promotional Offer" in in-app purchase. But this might help you. I am not confirming you if it helps. – iOS Developer Feb 28 '20 at 10:21