In the Android Play Store: Is it possible to distribute an app for free, but provide multiple in-app purchases to unlock features, and also combine a (yearly/monthly) subscription to unlock yet another set of features?
All information I could find was the explanation to use one of the billing methods, but I couldn't find any information about combining multiple billing systems in 1 app.
You should be able to do whatever you want. Here's the documentation on subscriptions: https://developer.android.com/google/play/billing/billing_subscriptions.html and the Billing API for all the other things: https://developer.android.com/google/play/billing/api.html
Related
I've developed an Android app and need clarity on what is required to offer it, via Google Play Store, as a subscription app (i.e. offer use of the app for a monthly fee). For now, no in-app purchases or in-app subscriptions are planned; the only subscription is for use of the app itself. All of the documentation I've read about subscriptions from the Google Play Store seems only to discuss in-app subscriptions.
My questions:
1) Is an overall app subscription treated/processed the same as an in-app subscription (i.e. via the app)?
2) If not, what portions of the Google documentation/guides on subscriptions do I implement? Everything that isn't expressly mentioned as being for in-app subscriptions/purchases?
3) Do I need a back-end server to manage/track app subscription info, or can subscriptions at the app level be managed via Google Play Console?
4) Is there a guide/example/tutorial somewhere that clearly explains how to implement what seems like a basic solution, a subscription app with no in-app purchases?
Examples of what I found during research:
Create a subscription - Play Console Help indicates:
Create a subscription
Using Google Play Billing, you can offer in-app products that charge users for content or services on a recurring basis, known as subscriptions. Subscriptions can include items like a collection of apps, games, or other content for a recurring fee within your app on Google Play.
In Google Play Console, subscriptions are only mentioned (from what I can see) under Store presence->In App Products->Subscriptions
I reviewed other questions on SO related to subscriptions, but virtually all appear to be focused on in-app subscriptions. One exception was Implementing a Yearly Subscription. Per the answer from GNUzilla, I understand the need to create a payment profile in Play Console. The second part of GNUzilla's answer references the now deprecated AIDL interface, so I instead reviewed the guide page for its replacement, Use the Google Play Billing Library | Android Developers. However, this also appears focused on in-app subscriptions. For example,
Enable the purchase of an in-app product
...
To start a purchase request from your app, call the launchBillingFlow() method from the UI thread. Pass a reference to a BillingFlowParams object containing the relevant data to complete the purchase, such as the product ID (skuId) of the item and product type (SkuType.INAPP for a one-time product or SkuType.SUBS for a subscription).
Is an overall app subscription treated/processed the same as an in-app subscription (i.e. via the app)?
There is no such app subscription feature Google has implemented. It always will be in-app subscriptions. User will download the app free/paid and login/signup into the app then the developer will show the subscriptions plan based upon the business case.
If not, what portions of the Google documentation/guides on subscriptions do I implement? Everything that isn't expressly mentioned as being for in-app subscriptions/purchases?
In-App subscriptions. Check here https://developer.android.com/google/play/billing/billing_subscriptions
Do I need a back-end server to manage/track app subscription info, or can subscriptions at the app level be managed via Google Play Console?
Yes, you need the backend for managing the real-time notifications. If you don't want to have the backend then you will miss lots of scenarios like your app don't what is the current subscription status. It is also good from a security point of view to verify the purchase in the backend.
Is there a guide/example/tutorial somewhere that clearly explains how to implement what seems like a basic solution, a subscription app with no in-app purchases?
You can check google documentation here. In the future, I will also publish the blog regarding this.
I'm currently very much confused about with which subscription service to use between any Third-party or Google's In-App billing system.
Let me explain first , I have an app which is providing service to Landlord for Posting their vacant Properties where we are providing free trial 60 Days for full app features & after trial expires I would like to add Subscription Plans as below:
Silver: Less than 50 units (monthly or yearly)
Gold: Less than 51 - 100 units (monthly or yearly)
Platinum 100 and up units (monthly or yearly)
Now I'm exploring options to include to implement this subscription features & found that Stripe would be a good option for me but soon I find out about in-app purchases guidelines where they mentioned that In-app purchases must use Google Play’s payment system & also mentioned , examples of products not currently supported by Google Play In-app Billing:
So , basically there are two questions from my side :
Can I use other payment system or should I need to use Google's Play Billing system ?
For Google's Play system , How can I divide or how many subscriptions items will be there for above subscriptions plans?
Any help would be appreciated!
You can use both services Stripe and Google IAP(In App Purchases) or just 1 of them.
I suggest that you go with Google IAP since you do not have BE(BackEnd) and as I understand would be hard for you to maintain card numbers and everything.
Google IAP provides an SDK so that you can manage subscriptions on the Play Developers Console yourself. It also provides sandbox environment so that you can test it but also Stripe does that.
Here are some references:
https://developer.android.com/google/play/billing/billing_subscriptions
https://developer.android.com/google/play/billing/billing_overview.html
but I guess you have gone through them already. In the company that I previously worked on we were developing a project with pretty much the plans you described above and we used Google IAP and Apple IAP(for iOS/tvOS) without any problems. Furthermore we were able to query Google or Apple for previous subscriptions and let customers actually renew them instead of buying new ones.
As you mentioned the leasers/landlords will not be able to pay electronic bills with Google IAP but you can integrate Paypal/Stripe/BrainTree/WePay or any other alternatives for that.
Having mentioned that I would like to answer your questions now:
1) Yes you can use Stripe instead of Google IAP
2) You can divide subscriptions and you can manage them in your Google Developers Console at https://play.google.com/apps/publish/. However that can happen after you uploaded an .apk in console with in-app-billing dependencies and also permissions.
Hope it helps!!!
Your particular scenario is a bit of a grey area.
As a precedent the Autotrader app in the UK is using direct credit card billing in-app and this is a similar service to yours - i.e they are selling listings.
This seems correct to me because in app billing is designed to be used for digital content to be consumed in the app - not for real world services. Google may even reject your app for it.
In this case my advice would actually be to use Stripe or some other billing platform.
As for your billing model - it doesn't really fit the subscription model. I don't know specifically about Stripe but with Google you can't have a subscription AND a limit on items in the way you describe. So you would have to manage the listing limits yourself on your own backend.
There are some edge cases though - what happens if you use all of your 50 listings within the month? Do I have to buy another whole subscription?
The most suitable payment model I can see for you is Metered Billing from stripe - essentially pay as you go.
I recommended to use Google's In-App Billing. Because most of country payment support by google and user first trust on google that most benefit for you.
The google play billing overview states:
before your app enters the billing flow, call isFeatureSupported() to
check that the device supports the products you want to sell. For a
list of product types, see BillingClient.FeatureType.
The documentation for Feature type lists the following types:
IN_APP_ITEMS_ON_VR
PRICE_CHANGE_CONFIRMATION
SUBSCRIPTIONS
SUBSCRIPTIONS_ON_VR
SUBSCRIPTIONS_UPDATE
What is meant by "ON_VR"? The documentation does not elaborate on this.
Since there is only one IN_APP_ITEMS* possibility, am I to assume that this should be used to verify device support for all in-app items? The documentation states "Purchase/query for in-app items on VR." which isn't very helpful.
If I wanted to confirm support for subscriptions, which one would I use, SUBSCRIPTIONS or SUBSCRIPTIONS_ON_VR? Why would I choose one over the other?
Here is the link:
BillingClient.FeatureType
Thanks in advance for any help clarifying this
IN_APP_ITEMS_ON_VR and SUBSCRIPTIONS_ON_VR maybe reserved for future use, because I didn't see any mention of them in Google docs about in-app billing (in the web too).
All versions of Play Store support regular in-app products ("Managed products" in Google Play Console), so you can't check whether they are supported or not. Subscriptions support should be checked via SUBSCRIPTIONS feature.
I have created a free app that includes a in-app billing in order to unlock some features
and I need to use it. I need to buy it?
I have another app, that's not freeware and i have introduced my email address in the developer console in order to use it for free, but it doesn't work with in-app billing. why? I need to purchase my own app? :crazy:
thank's
You don't have to buy your own stuff :)
See Testing In-app Billing
I'm developing an application that will have some features that the user must pay to use. I was planning to use a Lite and Pro version for this, but the release of In-App Billing have got me thinking...
If I use In-app billing is there any need to implement the licensing (http://developer.android.com/guide/publishing/licensing.html) policies suggested by Google? Or is it enough to implement the Billing stuff?
The application is available for free, instead some features will be enabled using in-app billing. Hence I don't really care if someone "copies" the application as long as they cannot copy purchased features.
BR,
Rasmus
If both applications will be free, you should implement only In-App Billing. You can read Billing best practices for more information.
I have found that the inapp billing and licensing code don't play well together, crashing the app in certain scenarios, like when attempting a purchase when not online.
I don't think it would be worth the risk and overhead to use licensing for a free app even with inapp purchase options. I believe the licensing documentation even mentions licensing can't be used with free apps.