This story was written by Keith Dawson for UBM DeusM’s community Web site Develop in the Cloud, sponsored by AT&T. It is archived here for informational purposes only because the Develop in the Cloud site is no more. This material is Copyright 2012 by UBM DeusM.

In-App Purchase in Android

Android revenue is catching up to iOS.

Android's share of app revenue has been climbing lately relative to iOS, and in-app purchases are a big part of the reason why.

We have discussed before the preponderance of the "free" price-point in the marketplace for mobile apps, particularly in the Android universe. The Android Marketplace, now called Google Play, introduced in-app purchasing (IAP) in the spring of 2011, and revenue from that channel began to climb slowly. An in-app subscription purchase model followed in the spring of this year, and just last month Google added an option for a free trial period for subscriptions.

Blogger Sameer Singh recently posted a piece in which he attempted to pull together scattered and somewhat incommensurate data from various analytics firms to estimate how the revenue situation for Android developers is stacking up today against Apple's iOS universe. The methodology employed may be too loose to draw a hard quantitative conclusion, but a trend is clear that Android's share of app revenue is rising relative to iOS's. (Not surprising given that Android now runs on three out of every four smartphones shipped.)

Multiple app stores
In a post on, independent developer Tim Mackenzie goes over some of the options available to developers who want to enable in-app purchasing in multiple app stores, including the smaller players such as GetJar. The problem is that some stores -- including the largest, Google Play and the Amazon App Store -- require apps distributed there to use their own IAP mechanisms, and no other. If you don't want to create entirely separate code for the different stores, your choices are to use a third-party product that provides a wrapper over the native APIs, or to develop your own wrapper, as Mackenzie did.

In-app purchase guidance
A post from Droid Gamers offers good advice for developers, specifically game developers, who are implementing IAP in an Android game. The crux of it is this: "The in-app purchases should facilitate, not necessitate gameplay." In other words: do not infuriate your loyal users.

The Droid Gamers piece alludes to the two types of IAP that are available to developers in Google Play. Extreme Tech goes into more depth on the distinction between "managed" IAP and the other kind. With managed IAP, Google keeps track of the purchase per-account, so that whatever the user has purchased -- weapons to enhance gameplay, say -- is available on all Android devices connected with that account. Not so for the other kind of IAP, which only the developer tracks. Data about the purchase is usually stored only on the one device, and it is lost if the app is uninstalled or the device is reinitialized. The user normally has no way to tell which kind of IAP the developer has implemented.

An Amazon caution
In September we highlighted a blog post on ZDNet recommending that indy developers consider "going all in" on the Amazon App Store, because it is easier to get an app noticed there. That recommendation failed to account for countervailing news from last summer of which I just became aware. In July the International Game Developers Association had warned its members about developer-unfriendly policies in Amazon's Android store. This came after game developer Bithack butted heads with the retailer.

Amazon doesn't provide a way for developers to filter downloads by hardware version. Many users had downloaded Bithack's game Apparatus on devices on which it had not been tested and did not run. Users trashed the game in Amazon's reviews, and the developer was unable to respond there because Amazon had stripped their contact information out of the store. Amazon also unilaterally reduced the game's price from $3.99 to $0.99 without notifying Bithack.

I haven't found any updates to this situation since July. A call placed to the IGDA was not returned by press time.

Related links