I'm a geekette who enjoys playing with new technology for software developers. I work as a Developer Evangelist for Microsoft. My current focus is on machine learning and big data on Azure.
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.
First, here is a quick table to summarize the key differences in making money with the Windows Store and Google Play.
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 pricing model of an app in the Windows Store is described on MSDN and on the Windows Store blog. In USD, you can charge $1.49 - $999.99 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
Both provide free development tools. You can download Visual Studio Express 2012 for Windows 8 from here to build Windows Store apps. You can download Eclipse from here to build Android apps.
You must do Windows 8 development for the Windows Store on the Windows 8 operating system. You can do Android development on Windows, Mac OS X, or Linux.
I’ve compiled a table to summarize availability, with links to the resources and full lists of markets.
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.
You can submit an app to the Windows Store here and submit an app to Google Play here.
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.
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).
Windows Store: How to create a trial version of your app
Windows Store trial app and in-app purchase code sample
Google Play: Configuring a subscription (for free trials)
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:
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.
Windows Store: How to support in-app purchases
Windows Store: The in-app purchase experience for a customer
Google Play In-App Billing Overview
Google Play "Selling In-app Products" training class
Google Play In-app Billing reference documentation
Google Play in-app billing sample application
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:
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.
Windows Store: Advertising guidelines
Ads in Apps for Windows 8 (using the Microsoft Advertising SDK)
Android: Advertising without Compromising User Experience
Google AdMob Ads SDK
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.
Both the Windows Store and Google Play provide rich reporting to the application developer. Both include:
Windows Store Reporting
Google Play Reporting
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