In this article, my goal is a facts-based comparison of the Windows Store (for Windows 8 apps) and Google Play (for Android apps). I’ve included links to my references throughout this article that were available and published as of April 25, 2013.
Ability to make money
First, here is a quick table to summarize the key differences in making money with the Windows Store and Google Play.
|Windows Store||Google Play|
|Revenue Share||70% for the first $25,000 USD; then 80%||70%|
|Minimum price of app||$1.49 (USD)||$0.99 (USD)|
|Maximum price of app||$999.99 (USD)||$200 (USD)|
|Developer registration||$49 or $99 annually||$25 one-time|
|Cost of dev tools||Free||Free|
Let’s dive into the details.
You have the potential to make a higher revenue share in the Windows Store. Google Play takes a 30% cut of the revenue and you keep 70%. For a new app in the Windows Store, this is also true. But, in the Windows Store, once your application makes $25,000 USD, your share increases to 80%. So you are rewarded for creating a compelling app! For example, if your app makes $1 million in sales, you would take home $97,500 more* selling in the Windows Store than Google Play.
* To show my work: on $1 million in sales, you would get 70% from Google Play, which is $700,000. In the Windows Store, you would make 70% on the first $25,000 (which is $17,500) and 80% on the rest (which is $780,000). $780K + 17.5K – 700K = $97.5K difference.
The minimum and maximum prices of an app in Google Play are listed here. In USD (United States dollars), you can charge $0.99 - $200 for your apps.
The Windows Store constrains its range of prices to tiers. For example, I couldn't charge $3.78 for my app, but I could charge $3.49 or $3.99. There are predefined price tiers within the range above that gives you the flexibility to choose a price that works with the laws of supply and demand. Google Play does not have tiers; any price in the range is valid.
In the Windows Store, you set the price once, and it is converted to all currencies. In Google Play, you can override the pricing and charge different amounts in different markets.
Developer registration cost
There is a charge to register as a developer who can submit apps to the stores. For Google Play, it is a one-time fee of $25 USD. For the Windows Store, it is an annual fee of $49 USD for an individual or $99 USD for a company (the differences between an individual vs. a company account are listed here). The full list of registration costs for the Windows Store in local currencies is here.
Cost of dev tools
I’ve compiled a table to summarize availability, with links to the resources and full lists of markets.
|Windows Store||Google Play|
|Markets where users can buy apps||231 countries/regions||134 countries (for paid apps) and 136 countries (for free apps)|
|Markets where users can buy apps in local currency||75 countries/regions||30 countries/21 currencies|
|Markets from which developers can submit apps||121 countries/regions||32 countries (for paid apps) and 148 countries (for free apps)|
In addition, your website can promote the discovery of your Windows Store app. With just 2 lines of markup in your site, you can promote your app via the app button within the browser, visible to anyone running Internet Explorer 10 on Windows 8. When this markup is present, Internet Explorer uses it to identify if the app is already installed on the user's computer. If so, the user’s click will launch the app. If not, the user’s click will launch the app’s description page in the Windows Store so it can be downloaded.
The Windows Store has a certification process, where a human tester does evaluate the application before publication in the Store. The Google Play store does not have a certification process before publication, but end users can report inappropriate content.
Methods to sell
There are a variety of ways to make money selling applications in an app store, from regular purchases sales to advertising to utilizing trials to entice your users. I will discuss each of these options for revenue:
Both stores support free apps and paid apps, in-app purchasing, and advertising.
At a high level, the Windows Store has a variety of options for your business model: collect full price before download, time-limited trials, feature-limited trials, in-app purchases, advertising, and third-party transactions. Here is a good article which walks through some of the options. The Windows Store API gives you access to classes which provide access to licensing and listing information about apps and in-app purchases. There is strong support for trials, and both persistent and expiring in-app purchases. The Windows Store also allows you to use an existing commerce engine if you’ve already built one, or a third-party one like PayPal.
At a high level, Google Play has a simple method for developers to join and submit apps. There is support for in-app purchases which includes subscriptions and consumables.
The Windows Store has support for time-based and feature-based trials. A time-based trial doesn’t require any extra coding; you just set the length of the free trial in a dropdown menu when you submit the app to the Windows Store. A feature-based trial may be coded using the LicenseInformation class; you can code “full” features in conditional blocks and only provide them if the user has a full active non-trial license. When the trial period ends, the user must explicitly initiate the purchase of the application; you can’t automatically charge their credit card.
Google Play only has built-in support for trials in in-app purchases. There is support for free subscription trials (but no support for trials of an in-app product that is a one-time purchase and no support for trials of an app). When the trial period ends, Google Play automatically initiates billing against the credit card that the user provided during the initial purchase, at the amount set for the full subscription, and continuing at the subscription interval.
In Google Play, these free subscription trials must be 7 days or longer. In the Windows Store, the free trial for an application can be 1, 7, 15, or 30 days (or forever).
In-app purchases or in-app billing refers to the ability to buy extra features from within the application. For example, you may have bought and downloaded a coloring app which allows users to color on existing black-and-white drawings (like a coloring book). Inside of this app, there is a button to buy a set of additional holiday-specific pages to color; this is an in-app purchase.
Both the Windows Store and Google Play have support for in-app purchases.
However, the Windows Store allows you to make in-app purchases through the Windows Store (subject to the normal transaction fee of the Windows Store) or through your own servers (and you completely handle the payment process, and Microsoft does not take a cut). Google Play requires that you must use Google Play's payment system as the method of payment, except:
- where payment is primarily for physical goods or services (e.g. buying movie tickets; e.g. buying a publication where the price also includes a hard copy subscription); or
- where payment is for digital content or goods that may be consumed outside of the application itself (e.g. buying songs that can be played on other music players)
The standard transaction fee of 30% applies to in-app transactions on Google Play. In the Windows Store, the transaction fee is only applied if the in-app purchase goes through the Windows Store purchasing infrastructure (you get 100% of the sales if you are handling payment on your own server).
In Google Play, you cannot set an in-app price of “0” (free). The Windows Store does allow you to have free in-app purchases.
In the Windows Store, every in-app purchase requires the user to enter their Microsoft Account password to guarantee that they are intentionally making the purchase. Google Play has a subscription model that will automatically charge the user’s credit card every billing cycle.
Google Play supports subscriptions or recurring charges within its in-app billing API (so subscriptions are purchased from within your app, not directly from Google Play). It provides a way to charge users on a monthly or annual basis, and will automatically charge the user’s credit card every billing cycle. Subscriptions can offer a free trial period, after which the user’s credit card will start to be billed automatically. There is more information at http://developer.android.com/google/play/billing/billing_subscriptions.html.
In the Windows Store, subscriptions can be implemented using the in-app purchase APIs. The current in-app purchase API allows in-app purchases to last as long as the customer has a valid license for the app, or the in-app purchase license can expire after a set amount of time. The available time periods are 1, 3, 5, 7, 14, 30, 60, 90, 180, or 365 days (and “forever” for the non-expiring option). When the license expires, the product can be purchased again for another period. Developers are not allowed to automatically charge customers to renew a license like in Google Play; the customer must launch the app and explicitly purchase it again.
Consumables are items that can be purchased multiple times within an app; they can be “used up” and then purchased again. For example, you might want to purchase gold coins or weapons for your character in a game. The gold coins/weapons could be considered consumables.
In Google Play, an in-app purchase can be bought and then “consumed” by sending a consumePurchase call, and then the in-app product is available to buy again. The in-app purchase cannot be bought again while it is owned but not consumed yet.
The Windows Store has no extra built-in support for consumables outside of its existing in-app purchase infrastructure. For an in-app purchase, you can specify how long the purchased product’s lifetime should be (forever, 1 day, 14 days, etc.), so this can be used for consumables.
Both the Windows and the Android platform don’t impose any restrictions on your choice of advertising provider.
Advertising on either platform consists of the same high-level steps:
- Download an advertising SDK.
- Sign up for a publisher account.
- Put ads into your application, in a way that doesn’t annoy your users.
- Submit the app to the Store.
- Use your publisher account to monitor your ad revenue.
In the Windows Store, applications can’t just display ads; they must provide functionality besides advertising. Also, it is not permitted to display ads in an app’s tiles, notifications, app bar, or the swipe-from-edge interaction.
Both Windows Store development and Android development provide free development tools. Visual Studio and Eclipse are rich IDEs that allow you to develop and debug.
The Windows Store development experience includes a local simulator for the Windows Store to simulate purchases. You can define the initial licensing state of the app in a WindowsStoreProxy.xml file, and use the CurrentAppSimulator class instead of the CurrentApp class to test licensing and purchasing calls against the local Store simulator. In Google Play, you must test billing from a device (not the emulator). You can test by sending reserved product IDs to Google Play, which returns a specific static response. To test using your own product IDs, you must upload your application as a draft, publish your in-app purchase product, and create a test account (your developer account won’t work because Google Checkout won’t let you buy something from yourself). You will also need to make your test account the primary account on the device to test this. (The only way to change the primary account on a device is to do a factory reset, making sure you log on with your primary account first.) Finally, when you purchase items with the test account, the test account is actually billed through Google Checkout and your Google Checkout Merchant account receives a payout for the purchase. Therefore, you may want to refund purchases that are made with test accounts; otherwise the purchases will show up as actual payouts to your merchant account.
Next, you can use the Windows Store APIs to work with application licenses and check their status; this information is automatically cached locally on the end user’s machine in case of an offline scenario. Google Play limits calls to the Google Play Android Developer API and necessitates the developer to have a backend server for storing and caching subscription expiration information.
Finally, the Windows Store provides a tool known as the Windows Application Certification Kit (WACK), which is installed with Visual Studio Express 2012 for Windows 8. The WACK is a client-side tool that runs a series of automated tests on your application before submission to the certification process. The same series of tests is run on your application during certification, so running this and fixing any errors before submission will save you time and give your app a better chance of passing certification. Google Play does not have a certification process and therefore doesn’t need such a tool.
The Windows Store initiates payment to the developer when you reach $200 in app sales. Google Play pays out monthly only if you have received a payout for that month; your earned balance must be at least $1 USD.
In Google Play, buyers will have 15 minutes to cancel their purchase after downloading a program. After this cancellation period expires, Google automatically charges the card and initiates payments to your account. In the Windows Store, there is no built-in refund mechanism.
- Ratings and reviews
- App's installation numbers (graphs over time and broken down by various filters)
- Comparison of your app's metrics to other apps in the same category
- Financial reports on payouts (Google Play and Windows Store), including the ability to export transactions into a spreadsheet
- Ability for users to send crash/hang data on the app to the developer
Google Play Developer Program Policies: http://play.google.com/about/developer-content-policy.html#showlanguages
Google Play Developer Distribution Agreement: https://play.google.com/about/developer-distribution-agreement.html
Windows Store Application Developer Agreement: http://msdn.microsoft.com/en-us/library/windows/apps/hh694058.aspx