We want to change the price of a renewable subscription, but only for newly subscribed users. Old users should keep the old price.
Apple offers a pretty simple option to keep the old subscription price for current subscriptions if you change the price of a renewable subscription. I don't see such an option available in Google Play.
My idea for this is to add a new subscription ID with updated pricing. Users that newly subscribe would use the new subscription ID, while nothing would change for users that are already subscribed. If users cancel the subscription and then subscribe again, they would get the updated pricing, but that's OK.
Is this considered a viable option? How can I make sure new subscriptions only use the new subscription ID? Anything else I am missing?
Everything you've said is right:
Apple documentation: https://help.apple.com/app-store-connect/#/devc9870599e
Google documentation: https://developer.android.com/google/play/billing/subscriptions#price-change
And yes, this is the only way to do it if you want to keep the old price for current subscribers on Google.
I don't think you've missed anything since, contrary to Apple, you can't access to the list of the available products on Google Play, so users won't be able to subscribe to your old product if you don't show the option in your app.
Since May 2022, Google has made some changes to the way subscriptions work on Google Play.
By default, "when changing the price of a subscription, it only applies to new purchases". More information can be found on the Play Billing documentation.
Related
In Google Play Console, I have previously created yearly and monthly subscriptions and they work just fine, however now I want to create a subscription where the user only pays once and gets a lifetime subscription to the application.
Unfortunately, when I create a new subscription, it is required to select one "Renewal Type", which has the most a period of 1 year
How can I create a subscription, where the user only pays once and is never charged again?
Google Play Console: Create New Subscription
This would technically not fall into the Subscription category. A Subscription has to have recurrent billing. I see two potential solutions to your case:
You could go to the App Pricing page and set a price for your app there.
You can create an In-app product that would not expire.
I see an increasing number of developers using the second option. A good example would be Forest.
We already have an app on Google Play with in app purchases (as subscriptions), and there are lots of users who already purchased our subscriptions. However, we have developed a new version of this app from scratch and we want to list it on Google Play as a new app. After few months, we want to unpublish the old version of it. There is one issue with this: How do we make sure that users who already purchased subscriptions in the old app keep their subscriptions in the new one? It seems like there is no way around this other than asking them to purchase on the new one. But maybe there is a better idea than that?
P.S. We are publishing as totally new listing because of significant changes in the app and also the old one wasn't taken care of properly, therefore there were many bad ratings. This would be a fresh start.
Maybe , there is a way.
From Your Old App Obtain 2 things
GOOGLE API KEY FOR IN APP PURCHASE
product id (is unique everytime)
Inside the java code, check all the purchase history for this particular product from Billing object.
This library is excellent in simplyfing in-app purchases.
https://github.com/anjlab/android-inapp-billing-v3
I'm pretty sure there is no way to tell the play store that the user has bought a subscription for the new app. You could update the old app to send subscription data to a server which can mark the user as having bought a subscription, and then the server can validate the new app to deliver subscription content. But the play store will not know anything about it.
I have working app that sells in-app products (InApp billing v3).
Recently I've made an update for this app and made a terrible mistake there: I consumed some of purchases I didn't want to consume.
I issued an update and users updated the app and then wrote me they have no purchased access. (As I found later, I consumed wrong items).
So I have some questions now:
Is there a way to restore consumed purchases or I should return payments to my users?
Is there a way to find out how many and which purchases were consumed?
If returning payments, is there a way to find out if user still has the product or is it consumed with out changing the app (through google services)?
Thanks.
According to what I have understood from your question, It seems like you want to purchase product only once.
What I wished to ask: is there a way to request information about consumed products like about owned products.
you can get response or it's information in any type(Managed Product, Unmanaged Product, Subscription) in the onActivityResult method() check my below link.
In-app billing-v3 error in activity result
but I would not prefer you to manage it customly as you told for one time purchase product(not consumable product). You should go with the Manage product.
Managed In-app Products:
Managed in-app products are items that have their ownership
information tracked and managed by Google Play. When a user purchases
a managed in-app item, Google Play stores the purchase information for
each item on a per-user basis. This enables you to later query Google
Play at any time to restore the state of the items a specific user has
purchased. This information is persistent on the Google Play servers
even if the user uninstalls the application or if they change devices.
for more information about product type
you can query any time you want and you will get the product information, and even you don't need to manage if user has already purchase this product or not.
Is there a way to restore cnsumed purchases or I should return payments to my users?
Better option is you should give the payments back to the user and for the next time check the whole app once using dummy product "android.test.purchased" and update your app.
Is there a wat to find out how many and which purchases were consumed?
You have to check in the Google wallet because all transaction should be handle by the it, check if it gives you product type or not. Using your google developer console credential you can signed into google wallet.
If returning payments is there a way to find out if user stil has the product or is it consumed with out changing the app (through google services)?
as per above answer you have to check in google wallet, according to my knowledge they are provide us all of information about product type with user detail.
Let me know if I have not properly understood your question.
Hope it will solve your problem.
I want to remove the existing subscription product from product list.
How would I be able to perform so as I didn't found any option on my developer console to delete the subscriptions ?
Also if in any way possible it is allowed, then will it have any effect on the existing users who have purchased that subscription when they call for RESTORE_TRANSACTION from their app while communicating with Google Play ?
Unfortunately, It's not possible to remove a subscription product from the product list of the developer console. You can just remove the subscription product from the product list offered in your app to prevent users from seeing or purchasing it.
Since the introduction of the new subscription setup in May 2022 it is now at least possible to deactivate the base plan of the subscription making it unavailable to new users, the mess in the console remains as I created a bunch of test-subscriptions which I can't hide or get rid off.
https://support.google.com/googleplay/android-developer/answer/140504?hl=en#zippy=%2Cdeactivate-or-reactivate-a-base-plan
It seems you can also change price and move users over according to this https://developer.android.com/google/play/billing/subscriptions#price-change
I have integrated in-app Billing into my android app. And there is one requirement: user should be able to buy (only one existing product) once a year. Is any way to do this? Because now if user have successfully finished purchase process, this product will be available for him forever!
Thanks!
You need to use an unmanaged purchase as these can be purchased as often as necessary and are intended to be consumable.
You will also however, lose the convenience of the Android Market handling the license server and you will need to manage that yourself.
Why not make a new product for every new year? Then check in your code whether the user has bought the product for the current year, otherwise offer him to buy it.
As far as I know, you can not take a previously bought product away from a user, so you must find another solution.
From in-App version 2 Subscription is also available. You just create a subscription product and set frequency as yearly. Google will automatically takes care rest of headache.
Tutorial can be found here.