Later implementing inapp purchase for free app android - android

I want to publish an android app which is free on download but can be upgraded using in app purchase. Right not I want to keep all functionality intact in the paid version and implement inapp purchase and disable full functionality later when releasing a new update.
Is this possible to do such a thing because on the developers console it says that"Setting the price to 'Free' is permanent. You cannot change it back to 'Paid' again after publishing"
Or should I follow the first few steps of implementing inapp purchases like adding permissions,aidl files etc.,then release the free app?

This term is only about the initial prize of the app.
In app purchases are totally independent of that.
Yep you can add in-app purchases later altough your app is free without problems.

Related

When can I add In app purchases ? Google Android Play Store

Do I have to integrate In app purchase before publishing my app or can I do it after?
I want to publish a app on Google play store and make it free to download. And, if it gets some traction, I want to integrate In App Purchases.
I know that if I make it free for download it can't be reversed, but what about In App Purchases, can they be added later ?
While, as you already noticed, you cannot turn free app into paid once released, yet you still can add paid features to already released of any type (free or paid) using in-app purchases mechanism. You can do these features at any time.

How to convert a paid app to a free app with in-app purchasing?

First I had created one app, which I uploaded into the Play store with some price, and I got some downloads. Now I want to add in-app purchases to my app and I want make my app free.
If I update my .apk (with in-app purchase) into the Play store then it will send notification to the users who have purchased my app.
If they are updated then it will show in-app purchases also so they have to purchase some modules.
So I want to set in-app purchases as active for users who have purchased my app.
Is there a specific process for accomplishing this?
You can make a paid app be free
Is there a specific process for accomplishing this?
No, their is no official way to do this, Because In-App you have to add items on google play and its show to every user util he/she pay for that In-App Item.
but you can handle by your own way.
Like if user already pay then you have to hide in-app(or whatever your app flow) for that perticular user and enable that future for them.
So no need to pay again for same
in sort you can handle by JAVA code(because you have list of paid user)
If app have same package and current version is new then installed then its update app(make sure both version are signed with same certificate/keystore)
Important:
If you change an app from Paid to Free and save the change, the change is permanent. Once changed to free, the app can't be changed back to a paid app. If you want to charge again for a paid app that you’ve changed to a free app, you would need to create a new app with a new package name and set a price for the new app.
Android Developer Help
first of all you have to add vending inapp billing files in your package, then in manifest you have to give permission. thats from application side, now you have to configure product id and licence key. Below is very useful link which i also had applied, Hope it works for you too :)....
Sample Project && configuration
My little contribution is that setting the app to use in-app purchases is in the Content Rating (of all places) There is one checkbox!!! Lost an hour at least on this.

Changing app's price to free, while implementing in-app items

I work on a new version of my application already available on the Store.
For the moment this is a paid app.
I want to change my business model and set the app price to free with the possibility for new users to unlock some features by purchasing an in-app.
I already understand how to add the in-app.
I don't know how to manage users that have already bought the app!
What is the good way to detect / unlock an in-app for my previous users when they will update the app?
Thanks
François
I would do it in three steps:
Publish a new release of the paid app that includes a feature that sets a SharedPreference (or any other way) to mark the fact this one was paid
While users are upgrading to the new version, prepare the future free release in a way it checks whether the SharedPreference described in 1. exists. Unlock features accordingly and keep them locked for non-paid instances
Publish this new version and switch to the free business model. The SharedPreference will survive the upgrade.
This would work for most users but this is not perfect though: users who will have either
uninstalled/reinstalled the app (even the new free version)
installed the app on a new device (even the new free version)
kept a former version of the paid app that doesn't set the SharedPreference
would not benefit from the unlock.
Answer from Google support:
"there isn't currently an easy way to allow users that have previously purchased the app to buy in-app products. These users might have to purchase the in-app items like all other users. We apologize for any inconvenience this may cause."

Change a Paid Android app to a Free app with in-app purchasing

I have a successful paid for application on Google Play Store and want to update this app to be a free application with in-app purchasing.
I have just completed developing the free version of the app which gives users restricted access which can then be unlocked using an in-app purchase system.
The issue i have is that all my existing users who have paid for the app will upgrade and then be prompted to pay again, which of course isn't right.
Is there any way to check the purchase history of the user, identify that they have paid for the app previously and unlock the extra features without the in-app purchase?
Thanks for any help.
Lewis
It's been a year, so the OP probably doesn't need this, but in case anyone else happens upon this one...
You could approach this a couple of ways. Obviously there is some business logic on your new in-app purchasing app to track who has/hasn't paid. So the two ways I see you being able to go about this is as follows:
Idea 1:
You could do a preliminary update to your paid app that stores a SharedPreference or some other persistence in the app (you could store the versionCode, so you know what you're upgrading from and have business logic around that). Then update to the free version, and have the free version check your shared preference and do the right thing on an update from a "paid" versionCode.
Idea 2:
You could keep both apps separate (have a paid version and a free with in-app purchases) and push an update to the paid version to have a BroadcastReceiver that doesn't really do anything other than listen to specific intents and have your in-app purchase check to see if something will receiver your custom intent. If your old paid-version exists, then they paid for it, if not they didn't. (If they paid for the paid version then uninstalled you'll have problems obviously...)
Idea 3:
You could keep both apps separate (have a paid version and a free with in-app purchases), and push an update to the paid version that just posts an Intent to open the in-app purchase app (if it's installed) with some special arguments, to let you know they opened it via a paid app and do the right thing to set them up as having paid for it in-app. That opens yourself up to some detection problems though... (Solvable but kind of clunky)
You can keep the existing paid version and create another free version.
If you really don't want to have 2 versions, just make it free and tell users something like 'Contact us if you have bought the paid version. We will give you redeem code to unlock xxx'.
https://developer.android.com/distribute/tools/launch-checklist.html#decide-price
This link seems relevant, hope it helps
On Google Play, you can publish apps as free to download or priced. Free apps can be downloaded by any Android user in Google Play. Paid apps can be downloaded only by users who are in a country that supports paid downloads and have registered a form of payment in Google Play, such as a credit card or Direct Carrier Billing.
Deciding whether you apps will be free or paid is important because, on Google Play, free apps must remain free.
Once you publish an app as a free app, you cannot change it to being a priced app. However, you can still sell in-app products and subscriptions through Google Play's In-app Billing service.
If you publish your app as a priced app, you can change it at any time to be a free app (but cannot then change it back to priced). You can also sell in-app products and subscriptions.
If your app is be priced, or if you'll be selling in-app products, you need to set up a Google payments merchant account before you can publish.
I feel the most easy way is to use theese line of codes
This gives you the old version code
SharedPreferences prefs = getSharedPreferences("Name_of_Prefs", MODE_PRIVATE);
int oldVersionCode = prefs.getInt("version_code", -1);
This gives you the current version code
int currentVersionCode = getPackageManager().getPackageInfo(getPackageName(),0).versionCode;
Now you can compare and do what you want. Don't forget to update after every time
with this line of code
prefs.edit().putInt(PREF_VERSION_CODE_KEY, currentVersionCode).commit();
In my case (affirmations counter app)
my paid app is running based on sharepreference value "lastaffirmationcount"
in my new iap app i just changed the way of I'm saving the affirmations counter values like "lastaffirmationscount_foriap"
So what i did in my free with In app purchase app is,just cross checked the "lastaffirmationcount" value is not null,if its null then it means new user,if not null then it means he is old user who bought the paid app
so the old user will not suffer forever
(Optionally Once its checked i immediately ask this user to sign in with google and saved his email as a premium user to ur database)
For Google Play there's no distinction between having paid for an app or downloading it for free. For example, if an user download an app while it's free and it's later changed to paid that user will still have full access to it, even being able to download it on other devices.
There are some lame workarounds for that:
Enable google play game services on the paid version and try to convince users to connect to it. Use google play services to store "bought while paid" information to the cloud and restore it whenever that user logins
Give all the users who've bought some key to unlock features
Create a different for the free version of the game
That said, keep in mind that many games have become free after some time. Maybe the users won't mind it that much.

How to create in-app purchase to upgrade from free version to paid version android

I have two version of my app
Paid Version
Free Version
Now in free version I disabled some features that are available only in the paid version.
So what i want is when user taps on any of those disabled features, the in-app purchase window should pop up and when the transaction completes the free version of the app should get replaced by the paid version.
Can you please tell me what would be the right way to do that.
Free version to paid version scenario:
To understand why you should only go for in app billing inside free
version
1)
Upgrading free to paid Android apps without leaving two icons
2)
Is it possible to replace an existing Android free app with its paid version
Both case scenario:
3)
In app-billing implementation , buying paid app from free version
After all it is your choice to select the way as you want to develop app but according to what I suggest:
you should go for the first option that you should provide all feature in the free app version only and upgrade your feature after simple product in app flow.
Hope you clear the way for the further development flow in your app.
You should not use two versions if you are using in-App billing. Just use free version and implement in-app purchase in it. When user click on disabled features just open the in-app flow. If user complete the in-app purchase, just unlocked the features with in your free version. You also need to store user information on your server if user uninstall or change his device you will know that this user has already purchased your app. here is the implementation of in-app purchase.

Categories

Resources