I've a free Android app and I need to enable user to buy the app by hitting remove ads button. what is the best practice?
Questions:-
1-What is the best practice of converting free Android app to paid app? do I need to generate a new application with different package name?
2-What are recommended libraries/code to be included on top of free app to be paid app?
3-How to guarantee downloaded paid apk from out side google play will not work? and force user to buy the app from google play?
When I built an app, I did a separate build and uploaded a separate paid app without the ads. I regret this choice. IMO, going with in-app billing instead would be better.
Related
I am wondering what is the best way to have two different versions of an android app. I would like to have version of my app with ads and one without ads (the paid one). What is the easiest way to achieve this ? I have found something called version flavours here but since I am new to android development I am not sure if that is what I want. Please any suggestions for addressing this ?
You could have two versions of the application in Play store. However, you would have to maintain these separately and it is frustrating to upgrade from free to paid with this approach. If you chose this way of maintaining your application, you would have to have two projects, one for each version. This would result you into having two copies of almost identical source code.
One approach I've seen people do is that the free version also contains the premium features which are unlocked once the user installs a paid unlocker application from the store. However, this has the same result as the first option: you would have to maintain two applications (this time different, though) and the users would have to install additional software.
The best option is to include the premium version as an in-app purchase. The app would contain all the premium features but would be locked by default. Once the user pays for the in-app product (in this case the premium membership), he would unlock all the features.
You can read more about in-app billing here.
Why not just publish two apps with the free one as this :
MyApp
and the paid one as this:
MyApp(Paid).
And this is how to prepare them:
Get your app working, and add ads and then sign it and generate the apk. Publish it. MyApp.apk
Then go back, and remeove the ads, change the package name, add the Paid to the name, and then sign the apk. MyApp(Paid).apk
Then Publish it.
I have requirement to keep both free (limited features) and paid versions of my android app on Google Play store.
What is the best way to do this?
Can I use single APK in anyway?
Do I have to manage two projects in my development environment because of having different package names?
Use the licensing library and make the paid features an in app purchase that are disabled until bought.
I developed one application with advertisement. Now I am planning to make in paid without advertisement but free with advertisement.
Now my Question is: Is it compulsory to make two version of app by changing package?
if NO then how to manage the advertisement?
You cannot publish two apps with the same package name on the Play Store.
You have two options here:
Remove ads and publish it as a separate app with a different package name
Make ad removal an in app purchase.
No, two applications / one app is not advised, if you want a free app and a paid version, the second version should be an in app purchase, when the buy has been registered you remove the ads.
Read up on in-app purchases and store a secure variable that remove the ads
One app with in app purchase is the recommended way to go rather than two apps.
The android developer docs give details but you may want to look at this open source lib which handles the whole ad display/purchase logic for you.
https://github.com/MagicMicky/FreemiumLibrary
I have just created a developer account at Google Play. Now I got to upload the application but I have a few doubts:
Can I add more then one android APKs for different applications?
Is it possible to upload an application for a testing and after that set the price of the app?
Is it possible to set such criteria where first 500 users get a free download and then the app will be paid?
Is it possible to delete an app and re-upload it if something gets wrong while uploading?
Multiple APKs for one application:
Multiple APK support is a feature on Google Play that allows you to
publish different APKs for your application that are each targeted to
different device configurations. Each APK is a complete and
independent version of your application, but they share the same
application listing on Google Play and must share the same package
name and be signed with the same release key.
Besides that, with your developer account you can create multiple application projects and provide your APKs for them of course.
No. After you have released an application for free you can not introduce a price for it. You'd have to create a new app project with a different package name.
This is not naturally supported by the Google Play Store. But you could implement this by writing a counter function that synchronizes over the web. You could also crawl/scrape your app page in the Google Play Store to get the install number. There are various ways.
After you upload your APK, there is some kind of sanity check integrated in the Play Store routine. This should prevent that anything goes wrong during the upload. Anyway, you can also upload a new APK, replacing the previous. That's how app updates work.
Your case overall sounds like you could use In-App-Billing to let your users access most functionality in your app for free, and after a certain time period has passed, offer them the full functionality after a payment.
Keep in mind that it is not a good practice to promote your app for free in the Play Store but then hide everything behind a payment wall inside the app.
Updated answer:
You need to have different package names (i.e. different app projects in your developer account) if you want to offer a free and a paid APK. It's actually a common practice and you'll find many apps in the Play Store that have a "free" and a paid "premium" version.
Very often, it would be easier for you to maintain and to update your app if the premium version only functions as a key (i.e. without actual functionality) that unlocks certain features of the free version. Therefore, you can check in your code if the user has installed the premium version.
Still, it would be more elegant to not "pollute" the Play Store with a dummy premium app and by implementing this with an In-App-Purchase of your premium functionality. Here is a good tutorial (besides the Android guide that I have linked above).
1)Yes, your account can have multiple applications. Or did you mean for the same app multiple apks?
2)No, once an app is free it can't have a price added to it later. If it has a price you can change what it cost though
3)No
4)You can always upload a new version, which seems to be what you want here.
I was wondering if there is any way to progammatically determine if the android app has been paid for?
I am going to implement the Android LVL library code in my app. But I also want to let the users first try out the app and then buy it if they like it. So how can I determine if the app has been bought and hence fully licensed.
If you want to let users try your application out first before buying release a limited free version. (Limited by features not time)
Then also release a paid application. I would recommend 'up selling' your application from the free one. i.e. promote and encourage the upgrade from the free one by saying it has more features, better this, better that..
The LVL then only belongs in the paid version, not the free one.
This can be done with the new In-app Billing API but not with the existing LVL, as LVL can only be used to verify upfront purchases from the Android Market (read paid apps.)
Effectively LVL and In-app Billing server responses are the same and can be verified in the same manner.