I am developing an Android app with two modes
Trial - free with limited functionality. The user has no time limit here. They can continue to use the app for forever but will not have access to full functionality.
Paid - full functionality. The user can make a one time payment to gain full functionality.
I have seen some posts indicating that you could publish two different apps to the Play store, but I would prefer to publish one app and use an internal flag to limit functionality when in Trial mode.
What is the best way to do this on Play Console? Should I set the App pricing as free and then add an In-app product for the paid version? Then from my app I can have a button that makes the request for the purchase?
The Play store indicates that once an app is published as free then it cannot be changed to paid? Is there some way to indicate paid app that has trial with limited functionality?
I don't want to use Subscription since the payment is one-time to get the full App.
Are there other good options to follow?
Using the Google Play Billing Library is the Google recommended way to do this (integrates with GPay nicely), otherwise you can use other payment processors and setup a server configuration to verify users purchases.
Using only an internal flag is not recommended as if users ever clear app data/uninstall their purchase is lost.
Related
I am going to publish my first app on google play store. Currently my app is completely free but later on I want to add some in app purchases ( but users should still be able to download it for free).Now how should I set the pricing now - free or paid ??
You can publish your application for free. You can add in-app purchases with IAP.
Best practices:
Make your app available as a free download with limited features or full features for a limited time. Then use an in-app purchase to
unlock the full, unlimited app.
Offer additional features or content items through in-app purchases, such as new levels, special playing pieces, or other
features in games.
Use subscriptions where your app provides regularly updated or time-based content.
have the following scenario:
we have an app that users need to pay for. But we also want to sell the app bundled with a book meaning there is a code / voucher in the book that can be used to use the app for free. Unfortunately we haven't found any good way to address this scenario yet:
a) make the app a paid app and use Google / iOS Promo Codes for the books - not good, because the number of promo codes per app and quarter is limited
b) make the app itself free but require users to make an in-app purchase to access most of the content. Alternatively make it possible to enter a code to access that same content. The code comes with the book and is created and maintained by us.
negatives: a lot of effort to maintain the promo codes, handle the in-app purchases and Google / Android don't like it if content within the app is paid for outside - so we could end up being rejected.
I'm really wondering: are we the first one with this need? is there maybe already a solution to this problem we are not aware of? We do not want to rip Google / Apple of their 30% share of app sales. But there doesn't seem to be a supported solution for this.
any ideas? thanks
Thomas
Welcome to SO.
This could be done but i dont know if this is the optimal solution.
Make the app free and lock down at the sign-in, there give link to your play books.
In the app check if the user has purchased the book using
https://developers.google.com/books/docs/v1/using
So if user pays for the book and downloads it, On the next app launch give access to him to use the app.
You should be careful with Apple's in-app purchase guidelines, 3.1.1:
If you want to unlock features or functionality within your app, (by
way of example: subscriptions, in-game currencies, game levels, access
to premium content, or unlocking a full version), you must use in-app
purchase. Apps may not use their own mechanisms to unlock content or
functionality, such as license keys, augmented reality markers, QR
codes, etc. Apps and their metadata may not include buttons, external
links, or other calls to action that direct customers to purchasing
mechanisms other than in-app purchase.
I think for users that purchase the book, they would need to register outside of your app (e.g. on your website). If you had some authentication system you could store a flag on the users profile if they've unlocked the book or not and give them premium access to your app upon logging in.
You can make your app free and set non-consumeable book SKU in your app.
If you want to send the promo code, you can use Google Play Console.
https://android-developers.googleblog.com/2016/01/create-promo-codes-for-your-apps-and-in.html
Google only allow a small amount of promo codes per app, 500/quarter. This is because they don't want to encourage developers to sell this promo code offline. But this is still an official feature supported by Google Play. You will be totally fine as long as you're less than 500/quarter.
Can anyone explain how does in-app billing process works for Android?
Do I need to upload two different apk (free and paid) to Play store and link buy button click in free app to paid version on Play store, but in this case will free app get replaced with paid app when user purchases paid one? How to achieve this?
If I give buy button in my free app which enabled purchase of paid full version (extra features) then how does this purchase works? Is it that upon activity startup I get some event when will tell me if app is purchased or not. Based of which I can enable paid features in my code. If yes Will this kind of logic work when user is offline? and how?
Appreciate if someone could clear my confusion with sample code. I have successfully run Google's sample code but not able to understand if I upload my app as free app how and when do I need to mention amount paid features?
Do I need to upload two different apk (FREE & paid) to play store .
This depends on the use case. If you want to give your users different app that has limited and Pro features that differs majorly then you should put two different apk's in market.
Otherwise , If your app has Free and Paid content you should include In-App purchases.
in this case will free app get replaced with paid app when user
purchases paid one ? How to achieve this.
No , Your app won't get replaced , you will only get payment successful/failed response from Google play , you have to save that information in your app shared preferences and manage your app flow accordingly.
If I give buy button in my free app which enabled purchase of paid
full version (extra features) then how does this purchase works?
Your application accesses the In-app Billing service using an API that is exposed by the Google Play app that is installed on the device. The Google Play app then conveys billing requests and responses between your application and the Google Play server. In practice, your application never directly communicates with the Google Play server for purchases. Instead, your application sends billing requests to the Google Play application over interprocess communication (IPC) and receives responses from the Google Play app. Your application does not manage any network connections between itself and the Google Play server.
If yes Will this kind of logic work when user is offline? and How.
To complete in-app purchase requests, the Google Play app must be able to access the Google Play server over the network. But after initiating a purchase request , you can save your payment response in shared preference for maintaining offline status.
Appreciate if someone could clear my confusion with sample code. I
have successfully run google's sample code but not able to understand
You should first start by reading the API docs Google Play In-app Billing and Selling In-app Products ,
if I upload my app as free app how and when do I need to mention
amount paid features ?
After that follow the steps to create In-App products on Google play account and run the API sample for those products.(There are plenty of tutorials online). Also you can take a look at official website for Establishing In-app Billing Products for Sale
Enjoy!
I have a free app running on google play store.
I want to add In-app billing feature in my application.But still I want to keep my app free(i.e.,Not paid apps).So is it possible.I have google merchant account.
You can add in-app billing but if you have existing users you will not want to restrict features that are already available to them for free. The usual use of in-app billing is to have a free app with a basic tier of features that remain free indefinitely, and then to create a value-added tier of features that can be accessed by making an in-app payment. If you deviate from that model by charging for features that people were told they could obtain free, then you will have lots of angry users and bad reviews. I don't know whether Google would also look askance at it, but the effect on users should be enough to make you avoid it.
The one exception would be if you offer a timed free trial up front, and all of your users were told from the start that the trial would expire and could only be continued by making an in-app payment.
Yes, you have to worry about Google's policies, but treating your users well should be just as important, and will certainly affect the perception of your app.
Yes i think there is but it needs evualated/approved by Google before you can use it
I need a way to share my app to allow people to download it for free with a coupon code or promo code or checkout code. I would like to post the code to a board, and invalidate it after some time. My app uses licensing and in-app billing, so mailing the APK may not be appropriate. The last question I saw regarding this was 6 months old, so I did not know if there was a newer solution available.
There is not a way to do this with the current feature set in the Play store.
You could produce a similar effect using the Licensing service (http://developer.android.com/guide/market/licensing) and perhaps in-app purchases. However sadly you will have to do most of the work yourself.
Google has recently enabled support for promotion codes for paid apps and in app purchases. You will first need to setup a promotion through your Google play store developer console:
https://support.google.com/googleplay/android-developer/answer/6321495
Or add support for in app purchase codes through in app promotions:
https://developer.android.com/google/play/billing/billing_promotions.html
Note however that there are limits to the amount and type of codes that can be created:
For each app, you can create up to 500 promo codes per quarter. To
reach that limit, you can use any combination of paid app and in-app
promo codes.
Here are some ways you could reach your promo code limit for an app:
500 paid app promo codes, or
500 promo codes for one in-app product, or
250 paid app promo codes + 250 promo codes for one in-app product, or
100 promo codes for five in-app products
As others have said, this is currently not supported by the Android Market/Play. There is, I believe, a feature request, you can vote/star it. If you are already using in-app billing, it is fairly easy to implement this yourself though. All you need is a database with Web access, so you can check if the coupon code is valid. You might want to implement some sort of restore functionality, so people can reuse the code if they switched devices. And/or set up an upper limit for coupon use, so that you can prevent people from sharing the coupon code.
I think I have a part-way ok way to do it. I use the licensing service, which is not terribly hard (10 times easier than in-app billing), and embedded an expiration time into my app, and post the debug version on a web site. Before the expiration, it ignores the license server response. After the expiration, it reports "Unlicensed App" with the option to purchase.
You can do this if you distribute your app through a third-party app market, such as Appia. However, this functionality is not built into Google Play.
If you wish to provide users with a coupon so that they can download a paid app for free on Google Play store, that can't be done. You either need to use another market or distribute the paid app yourself.