Sure, "in-app purchases" becomes a bit of a dirty phrase when we're talking about games that abuse the privilege, but they're a critical element of any profitable app ecosystem, and today Google's making a bunch of IAP features easier and smoother for developers and, by extension, you. Here are some of the new improvements.

Easier Purchasing Implementation


Previously, if you bought an item in an app, the purchase was handled via an "asynchronous notification through a background service." This meant that the app would call out to Google to announce a purchase, but then have to talk to a separate service in order to find out how it went. Now, the new API will simply report right back to the application, making it dead simple for developers to implement.

More importantly, Google Play will now manage all purchases made. In other words, Google will keep a record of everything you've bought within an app and the developer can access this information easily at any time. This should make it much simpler to, for example, maintain a library of purchased items. Speaking of...

Local Caching


I love my Marvel app. It's not only my favorite comic reader, but it's one of my favorite apps altogether. Among other features, it contains a library of every comic I've ever purchased. This collection has grown over the years and is now pretty large. Up until version 3 of these APIs, it would've required a call to a server to find out which ones I've bought. Alternatively, a developer could build their own caching solution. It wasn't impossible before, but it meant more man hours to do it.

Now, thanks to local caching, an app can store information about the things I've paid money for right on the device without the need for the developer to create the functionality from scratch. This will save programmers plenty of time and generally make things run faster.

Product Information


This API will allow developers to easily query information about a particular virtual item as its entry appears in the Play Store. What this means is that it's possible to change something in an in-app purchase (like price) in the Developer Console and the new price will show up without ever needing to touch the app's code.

Currently, if a developer wants to, for example, display the price of an item in the user's local currency, that would need to be done on the app's end. Now, they can ask Google what's shaking with this new sale price thing and Google will be all "Oh yeah, that? Now it's €0.99" instead of returning an amount in dollars and forcing the app to convert. This should simplify things a lot.

And More

In general, most things here aren't going to be things the end-user will notice, but the whole process should function a lot more smoothly. Google also promises a "more robust architecture resulting in fewer lost transactions." In other words, things should be broken a lot less and you won't have to wonder where your purchase went.

Now I'll wait for you to make a Nexus 4 order joke.

Source: Android Developers (Blog)