Announcing the availability of our Amazon Appstore for Android SDK and In-App Purchasing API to our developer community. The In-App Purchasing API enables you to offer digital content and subscriptions--such as in-game currency, expansion packs, upgrades, and magazine issues--for purchase within apps.
We created the In-App Purchasing API to make it easy for you to increase customer engagement and monetize your apps on Kindle Fire and other Android devices. With the Amazon Appstore for Android In-App Purchasing solution, you can reach customers with existing accounts who have already bought apps, including millions of Kindle Fire customers. Our simple, secure, and trusted 1-Click purchase experience is easy for customers to use, increasing conversion rates for purchases within your app. Plus, we designed our in-app purchasing (IAP) solution to be simple and easy to integrate so you can be up and running quickly.
It’s easy to get started from the Amazon Appstore Developer Portal, where you'll find documentation, sample code, tutorials, frequently asked questions, and more. In the coming weeks, we’ll also be featuring strategies and tips from in-app purchasing beta program partners, such as Glu Mobile, G5 Entertainment, Storm8, and New York Post, here on our developer blog. You can also learn more about our IAP solution from our Introduction to IAP video.
What do our beta program partners say about IAP on the Amazon Appstore for Android?
“Storm8 coordinated closely with Amazon’s team during the initial launch of its IAP beta test, and within two months of integration, we saw revenue grow by tenfold from our game,” said Perry Tam, CEO and co-founder at Storm8, producer of games such as Restaurant Story, Bakery Story, Farm Story, and Fashion Story. “We immediately brought over additional Storm8 games, and in two weeks, not only did our revenue continue to grow, but we had four of the top five free apps in the Amazon Appstore. With the tremendous initial success, we definitely plan on continuing to invest in the platform and can't wait to bring additional Storm8/TeamLava games to Kindle Fire and Amazon users.”
“Amazon's in-app purchasing solution created a great way for us to reduce friction and drive more revenue from our games, as millions of people already have Amazon accounts,” said Michael Ritter, senior vice president Licensing & Distribution at Social Gaming Network, maker of Warp Rush, Dress Up! Fashion, Bird's the Word, and Night of the Living Dead Defense. “Kindle Fire already has a well-integrated storefront and marketplace to distribute mobile games. By enabling in-app purchases we are able to be more flexible in pricing. We can release free games, provide updates, and enhancements, and continue to monetize.”
“We found that by offering a product with IAP, rather than other monetization types, our conversion rates went up as did our revenue on a per title basis,” said Larissa McCleary, director of marketing at G5 Entertainment, Inc., creator of Virtual City Playground and Mahjong Artifacts. “Although our experience on Amazon has always been great, we are thrilled now that IAP is available. This will allow us to continue our business model, but also to allow other developers to partake as well. Eventually, if more and more developers participate, we think we will experience even higher conversion rates, since players will be more familiar with what IAP is and how it functions, making the play experience even more engaging.”
We look forward to seeing how you integrate the API into your apps!
How do you get a high-resolution icon for your app to display on Kindle Fire?
The icons on Kindle Fire are dynamically pulled from the Amazon Appstore for Android. Side-loaded apps cannot use this feature. Once you've submitted your app, and it's live in the Amazon Appstore, your app's appropriate icon will automatically be displayed.
You set up an emulator per the specifications in the Kindle Fire FAQ but the screen is being recognized as an x-large screen instead of a large screen, and loading assets accordingly. How do you fix this?
The default Android emulator mis-identifies the screen size as x-large instead of large with the standard emulator configuration. To override the configuration, complete the following on your activity onCreate method (before loading layouts or anything else):
final Configuration config = new Configuration(context.getResources().getConfiguration()); config.screenLayout = (config.screenLayout & Configuration.SCREENLAYOUT_LONG_MASK) + Configuration.SCREENLAYOUT_SIZE_LARGE; context.getResources().updateConfiguration(context.getResources().getConfiguration(), context.getResources().getDisplayMetrics());
Taking this action will ensure the emulator configuration properly uses the large screen size and loads the appropriate assets.
How do you keep the soft key menu on Kindle Fire visible at all times, instead of partially hidden?
To keep the menu bar present at all times, remove any code in the activities that enables full screen mode. The soft key bar at the bottom will then be visible at all times. Sample code to remove:
How do you connect Kindle Fire to Android Debug Bridge (ADB)?
To connect Kindle Fire to your Android Debug Bridge (ADB), follow the instructions in this PDF. Kindle Fire has USB debugging enabled by default.
Your app requires access to Google Mobile Services. Will it work on Kindle Fire?
Apps that run on Kindle Fire do not currently have access to Google Mobile Services (GMS). If your app currently requires access to GMS apps or services, we recommend that you either remove the features that require these services or modify them to degrade gracefully when invoked (e.g., with an error message such as: "This feature is not currently available on this device.").
Your app is optimized for the Motorola Xoom (Honeycomb 3.0-based Android). Will it work on Kindle Fire?
In general, apps optimized for a tablet experience will work on Kindle Fire. To increase the probability that your app will be compatible with Kindle Fire, you should only use APIs that are backwards compatible with Gingerbread (Android 2.3 OS).
What are the dimensions of the status bar (time, battery, signal strength, etc.) on Kindle Fire?
The status bar is 40 pixels in height.
How can you promote your app to Kindle Fire users?
We encourage you to promote your app's availability on Kindle Fire and in the Amazon Appstore for Android using Amazon-approved marketing assets. Developer Portal account holders can find Amazon approved marketing assets and brand, trademark and marketing guidelines here:
How do you get your app marketed on Kindle Fire?
All apps in the Amazon Appstore for Android are discoverable by millions of Amazon customers. Amazon's automated and targeted marketing and merchandising algorithms provide a unique and personalized shopping experience for every Amazon customer.
The Free App of the Day is our premier promotion in the Amazon Appstore for Android. Each day, the app we select is featured in some of the most visible placements in the Amazon Appstore. These placements and the exposure they provide drive significant traffic to the featured apps and allow the developers to quickly grow their installed base. In fact, it is common for apps to be downloaded more than 150,000 times on the day they are featured in the Free App of the Day. That volume of new users can not only generate great word-of-mouth publicity for your app, but can also provide a compelling opportunity for you to monetize your apps downstream through features like in-app purchasing and advertising.
If you'd like to submit your app for inclusion in the Free App of the Day program, please complete this form.
A few months ago, Amazon introduced Kindle Fire and, here on the blog, we talked about how you can get your app(s) onto Kindle Fire. We endeavor to provide our developers with useful, relevant information to help you develop your app(s) and we continue to get queries about developing for Kindle Fire. We have more information to share!
Your app requires an SD card—does Kindle Fire have one?
Kindle Fire has an internal SD card that your app can write to. Kindle Fire's SD card is internal and is not removable. You should not have to change your app for Kindle Fire if it currently stores data on the SD card. Using getExternalStorageDirectory() will enable you to write to the internal SD card on Kindle Fire.
Your app uses Adobe Air—will it work on Kindle Fire?
Yes, Adobe Air 188.8.131.529 is pre-installed on Kindle Fire. If you wish to create and publish Adobe AIR 3 applications, you may do so by packaging them as 'captive runtime' apps. Note that captive runtime apps will not support on-device debugging.
Your app needs the support of an e-mail client—is that a feature of Kindle Fire?
Kindle Fire has a pre-installed e-mail client that will respond to both mailto links and e-mail intents.
How do you configure the supports-screens element for compatibility with Kindle Fire?
To ensure your app is compatible with Kindle Fire, specify <supports-screen android:largeScreens="true"/> in your manifest file.
Your app has audio—what audio playback does Kindle Fire support?
Kindle Fire supports the following audio formats natively:
You plan to upgrade your app to Android v4.x (Ice Cream Sandwich)—will your upgraded app work on Kindle Fire?
To increase the probability that your app will be compatible with Kindle Fire, you should only use Android 4.x APIs that are backwards compatible with Android 2.3 Gingerbread.
Your app has lots features—what specific features does Kindle Fire support?
Kindle Fire supports the features in the following list. To ensure your app is compatible with Kindle Fire, it should only use features found in this list.
If you own a Kindle, you’ve experienced the power of having a Digital Locker and the ability to download your purchased content to just about any device. The notion of “buy once, read anywhere” will now also apply to your Android apps purchased through the Amazon Appstore.
Customers who purchase an app will retain an entitlement to their app even if they decide to replace their current Android device and/or purchase new devices, as long as the new devices meet the installation requirements of the app. This provides insurance to customers that their purchased apps will be available for use on all supported devices, even if the customer has uninstalled or otherwise removed those apps in the past.
The digital locker service combined with a robust Digital Rights Management (DRM) solution not only make managing apps easier for customers, they also address one of the biggest concerns developers have: unauthorized copying and distribution. An authorized user can now install your app on any of their supported devices; however, if you chose to apply DRM on your app at submission time, your app will not run on unauthorized devices.
Any app that has Amazon DRM applied to it will require users to have installed and signed-in to the Amazon Appstore client to access the app. When an app is accessed by the user, it will verify with the Amazon Appstore device service as to whether the user has an entitlement to the app. If the user does not sign in or does not have an entitlement to that app, then the app will not be usable. However, any user can gain an entitlement by purchasing the app through Amazon.
We will be posting more updates on Amazon DRM over the next few weeks on the Amazon Appstore Developer Blog. We will cover additional topics, such as sharing data between apps and signing your app after Amazon DRM has been applied.
Update: In response to your questions, we’d like to take this opportunity to provide a few clarifications.
Do I have to use Amazon DRM if I sell my app through Amazon.com?
No, it is not required. When you submit your app you can choose to offer your app DRM free or you can apply Amazon DRM.
Do customers need to have internet access to use an Amazon DRM-enabled app?
No. Once an app is installed, a user can use the app without having internet access.
How can you verify that the user has an entitlement to the app without internet access?
During the installation process for an app, the Amazon Appstore client downloads a small token that grants the user the right to access the application. A valid token permits the user that purchased the app to access their app offline. The Amazon Appstore client will periodically communicate with Amazon servers to refresh the token.
While designing and building your apps, you may encounter the question: Should I create multiple versions of my apk for different devices? In most instances, the answer should be an emphatic no! Unnecessarily offering multiple copies of your apk to your customers will not only make your development process more complex and painful, it may also create confusion for your users. A well-designed app that follows the best practices guidelines will be deployable and usable on almost all Android devices.
Some common scenarios when developers think they need to create multiple apks, but really don’t, include supporting:
If you are concerned about your app being installed on an unsupported environment, follow the best practices guide for Android development to avoid such issues.
After appropriately defining settings in your Android manifest file, you will want to design your app to make the necessary runtime decisions at the lowest levels in your code. For instance, you may want to implement conditional user interface logic at the latest point possible, such as altering display and layouts based on device screen and density settings. This is an ideal way to not only lower the total lines of code you write, but it may also reduce the number of bugs in your app and reduce the size of your apk.
There are, however, a handful of situations that justify creating multiple apks. These include:
If you are offering your app for a different price to customers on a smartphone versus a tablet, then submitting a separate apk for each form factor makes sense. Furthermore, if the apk file size difference is significant and you want to avoid users of your SD version unnecessarily downloading MBs of HD images, then a separate apk may be appropriate. You should consider making this decision when your apk grows larger than 8 MBs. Under these circumstances, and others that we did not cover, you will need to submit each apk individually to the Amazon Appstore as separate apps.
In conclusion, unless your reason for creating multiple versions is well-justified, we recommend that you submit only one apk per app version.