Recently I have implemented in-app purchases (subscriptions, more specifically) in my
Android app.
My initial idea was to have a month, a quarterly, and a yearly subscription, and make it clear to the user how much discount (compared to the monthly) they would get by signing either the quarterly or the yearly.
The problem is that Google's Billing API doesn't provide you with the actual price for the products, just with an already localized and formatted price string.
I found out the hard way that converting that string to a price and doing calculations on top of it isn't failproof.
So my question here is: have any of you managed to do discount calculations on top of in-app product prices?
Thanks in advance.
Related
In our app, we have four different subscriptions - Basic monthly, Premium monthly, Basic Yearly and Premium Yearly. If a user purchases any of these subscription, he will be given a free trial for the same. Once his free trial expires, his subscription will be auto-renewed. Afterwards, If he tries to upgrade/crossgrade/downgrade to another subscription, there will be no free trial for that subscription.
In Google play console, I am able to provide one free-trial across all the subscriptions in my app through the subscription settings.
We are also providing introductory price to the users.
But I am not able configure the free trial like settings for introductory price. Introductory price is provided to all the subscriptions when he purchases it. But we want it to be available only once across all subscriptions. How to do it?
We cannot add the Introductory price to all the plans
As the document states [ Link ]
If the introductory period is a different length of time than the
subscription period, the introductory price must cost less per day
than the original price. For example, if a subscription costs $15 per
month (or $0.50 per day), a week-long introductory price must cost
less than $3.50. For these calculations, a month is always considered
to be 30 days.
Based on the above calculations, it is impossible to calculate and validate a single "Introductory Price Value" matching all SKUs.
An app for a US client sells a subscription for $1.99/month through in-app billing. When I test the app from the Netherlands, the local price is reported to be €2.11. Two questions:
Where can I find the price tier information per country? The amount seems incorrect because right now the EUR is worth more than the USD, not less.
It is not formatting the price correctly. Is this a bug? It should display € 2,11 in NL and 2,11 € in FR but it's not doing this. It's only converting the amount and not localizing the way the currency is displayed.
Thanks!
You can check the conversion in your google play developer account for the app. Check the in app product you created and you'll be ablt to either auto convert or override the prices.
Here's how it typically looks
Programmatically, I understand how to manage a single users subscription, but have not found a way to retrieve a holistic picture of In-app Subscriptions.
The closet thing I've found in the In-app Subscription documentation deals with tracking subscriptions to order numbers:
To help you track transactions relating to a given subscription, Google Wallet provides a base Merchant Order Number for all recurrences of the subscription and denotes each recurring transaction by appending an integer.
Using this mechanism in a roundabout way one can determine current subscription orders, but this doesn't give a clear picture of subscribers. How do you enumerate the number of users who are currently signed up for an In-app Subscription?
The Finance overview for an app in the Google Play Store Developer Console provides a summary of app revenue. In addition to App Sales the Fiance screen details a summary for Subscriptions which breaks down revenue by: day, last 7 days, last 30 days and overall.
Is it possible to get product price in local currency from the app itself. For example if I am selling Product1 with price of 1$ through Google Play In App billing. A customer from UK clicks on a button to purchase the product and the price at Google Play is shown in GBP. Can I get localized price in the app from Google Play so I can display it to the customer in its own currency?
The in-app billing v3 claims to be able to accomplish this:
The API also introduces a long-anticipated feature: the ability to query in-app product information directly from Google Play. Developers can now programmatically obtain an item's title, description and price. No currency conversion or formatting is necessary: prices are reported in the user's currency and formatted according to their locale
Source: http://android-developers.blogspot.com/2012/12/in-app-billing-version-3.html
Since you are asking this i suggest to just leave as it is.
This is more about economy rather than programming, and the problem is that the ratio between 2 currencies keeps changing every time and there is no way to calculate this because of the market and the actual evaluation is only given by the stock markets for a particular point in time.
There are 2 ways of thinking about this:
The merchant makes an evaluation about what is the average ratio between 2 currencies, he quantifies this value in real money and adds it to the final price, so he can avoid money loss or at least a good part of it
The merchant puts in place a mechanism for prices that, given real-time infos from the stock markets ( probably you have to pay for this ), calculates prices of real goods in real time or every time that the user wants to checkout his order.
If this is new to you don't say nothing about this, there are a lots of money that are burning and magically appearing every day in every stock exchange market, if you give a bad advice to your client he can be really disappointed and lose a lot of money.
Also different currencies are usually handled directly by credit card services, there is no reason to handle this by yourself, you can only risk more than it's worth doing it.
If your users wants to know the price in their currency teach them to use Google or some reliable online currency converter.
Is it possible in Android In-app purchase to create something like registered members or subscribers, to allow the users in that group to download content and to take fee at the end of the month?
As of now, not with Google Play. The Amazon in-app billing API does support this though.
It is possible with unmanaged purchase, but you will need to have server side support for this.
You will have to save the purchases in your own system, keep track of the expiry for each user, etc.
Also, you could do it with managed purchase by creating a new product for each month, but it has its limitations. E.g. you offer monthly subscriptions from the first day to the last of the month and the user buys one on the last day of the month, the he/she will pay the full monthly price for only one day. I do not recommend it.