Developer Console
Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts


August 09, 2012

Lauren Stark

One question developers commonly ask us is how they can grow their business by introducing their app to new Amazon customers. The Amazon marketing team is here to help. Each day this week we’ll offer a tip on how to market your app on Amazon.

Marketing Tip #4: A picture is worth a thousand words. Submit visual marketing assets to make your detail page pop!

Customers respond well to great visuals, as screen shots and video help customers understand your app when they consider purchasing or downloading it. We encourage developers to submit visual marketing assets to grab the attention of customers who are considering download of purchase of your app.  Our marketing team has a few tips:

  • Think of your detail page as a way to tell a narrative about your apps.
  • Use visuals to demonstrate to curious customers how your apps look and feel.
  • Take screenshots of different levels or features of your apps and display them in a logical order.
  • Provide visuals that complement the story you tell in your description.
  • The more visual marketing assets the better!


Steps to Upload Video and Screenshots

1) From the Mobile App Distribution Portal, navigate to the My Apps tab.


My Apps

2) Select the app you'd like to edit and navigate to the Images & Multimedia tab for that app. Then, click the Edit button.


Edit Images and Multimedia

3) Upload your videos, images, and screenshots. 


Editing Images and Multimedia

Promotional Images


We are now accepting promotional images, and our marketing team is using these images in featured placements to highlight apps to customers. Promotional artwork gives you an opportunity to capture the attention of customers using colorful imagery that reflects the essence of your apps. We encourage you to submit your promotional image now to take advantage of these new marketing opportunities. If you missed it, learn more about how your app can be considered for featured placements by visiting tip #2.

Sample Promotional Image

Dragon Story

Recommendations for creating effective imagery:


  • Strive for an engaging image that speaks to what your app is all about. 
  • Create promotional imagery that is colorful and promotes the essence of your app and brand.
  • Text should be large and readable.  Keep text simple.
  • Do not add the price to the image ($0.99) or any discount call outs (50% off)


Steps to Upload Promotional Imagery

1) Create or use an existing promotional image that is 1024 x 500 pixels. The images file should be in PNG or JPG format. 



2) From the Distribution Portal, navigate to the My Apps tab.  Select the app you'd like to edit and navigate to the Images & Multimedia tab for that app. Then, click the Edit button.


Edit Images and Multimedia

3) Select Upload Image from the Promotional Image field.  Choose the image you’d like to upload, and then save the image.  Images must be 1024 x 500 in PNG or JPG format.


Uploading Promotional Images

August 08, 2012

Lauren Stark

Note: Effective 08-26-2015 Free App of the Day (FAD) has been replaced with Amazon Underground.

One question developers commonly ask us is how they can grow their business by introducing their app to new Amazon customers.  The Amazon team is here to help. Each day this week we’ll offer a tip on how to market your app on Amazon.

Marketing Tip #3: Nominate your app for the Free App of the Day Program

The Free App of the Day (FAD) is a curated promotional opportunity, where Amazon offers one paid app to customers free each day.  Participation in FAD helps you gain greater exposure and drive significant traffic to your app. The apps we select are featured in some of the most visible marketing placements, including placements on mobile devices, Kindle Fire, and the Amazon Gold Box Best Deals page, and are complemented by social media exposure including a Facebook post and Twitter tweet.  These placements and the exposure they provide drive significant traffic to the featured apps and allow the developers to grow their installed base quickly. 

We work closely with developers to offer a high-quality app or game that we think our Appstore customers will like and make it available for free, for a day.  Developers like Fire Maple Games and Vervv LLC have shared information on their FAD experiences through posts here on our developer blog. If you’d like to nominate your app for inclusion in the Free App of the Day program, locate the app within the Distribution Portal, and on the Availability & Pricing tab, find the Free App of the Day (FAD) eligibility option at the bottom of the page. Check the “Yes, please consider this app for the program” box.  Please also email the team at and include the name of the paid app that you are interested in featuring. 

If you have any questions or want to discuss the opportunity further, please email

August 07, 2012

Lauren Stark

One question developers commonly ask us is how they can grow their business by introducing their app to new Amazon customers. The Amazon team is here to help. Each day this week we’ll offer a tip on how to market your app on Amazon.

Marketing Tip #2: Submit your app to our marketing team for consideration for a featured marketing placement. 


We constantly strive to introduce Amazon customers to new apps they’ll love, thus helping our developers grow their businesses. We highlight apps through our storefronts on mobile devices, Kindle Fire, and and through marketing vehicles like e-mail, Facebook, and Twitter.  For example, as I write this, featured placements include “Highly Rated Apps and Games” and “Featured New Releases,” and your app would be considered for these placements as applicable.  Your app may also be considered for seasonally relevant placements like summer travel, back to school, or learning apps.

If you are interested in a featured placement through our marketing vehicles, we invite you to tell us more about your mobile app by completing our marketing request form available through the Amazon Mobile App Distribution Portal

Follow these steps to complete the form:

1) Check the Amazon Specific ID Number (ASIN) for your app on the site.



2) Navigate to the marketing section of the FAQ page. 


FAQ Screen shot (2)

3) Click the link to the form available under the question “How do I get my app marketed?” 


Marketing FAQ v2

4) Submit information about your app for our consideration by filling out the form.  Please include the ASIN number you recorded from the site. 


Request Form

August 06, 2012


One question developers commonly ask us is how they can grow their business by introducing their app to new Amazon customers.  The Amazon team is here to help. Each day this week we’ll offer a tip on how to market your app on Amazon. 

Marketing Tip #1:  Start with your best foot forward.  Write an effective app title and description.


The title and description of your app is a key opportunity to impress potential customers.  By writing an effective description, you can generate excitement about your app and increase the number of customer downloads of your app.  This is your chance to sell your app to customers! 


The title is the first thing a customer sees and may even be the term they searched on. It appears at the very top of the product detail page, right above your company name.

  • Keep it simple. Don’t include extraneous marketing verbiage such as “MyAppTitle – the best most greatest app in the whole wide world and beyond!!!!!!!!”
  • Make it readable. Unless your app has special capitalization (PicSay, SwiftKey, SeekDroid), capitalize the first and last words of the title, no matter what part of speech. Between those words, capitalize each word except for coordinating conjunctions (and, but, or, nor, and for), articles (the, a, an), and prepositions of four or fewer letters.
  • Be concise. No more than 100 characters—it’s a title, not a Tweet!
  • Be clear. If your app has multiple versions, let your customer know by calling it out in the title (e.g., Premium, Pro, Lite, Donate, Free).


The description provides you the opportunity to sell your customer on downloading/purchasing your app.   Consider your audience. Who is your app’s target customer? Make sure the customer knows you are speaking to their interests.  What is your app’s point of differentiation? What are the key features of the app? Let customers know why this app is special and something they would enjoy or need.


Check out the recommendations we shared with you last year here on the blog for writing an effective description.



  • Always use proper punctuation and grammar.
  • Introduce your app clearly and succinctly.
  • Describe your app's most notable features. 
  • Use conversational language.
  • Think about your target customer and highlight features that will appeal to that customer.
  • Explain how and why your app will benefit users.
  • Show off—don't forget to include the attributes that make your app stand out and feel free to do so in detail.


  • Refer to your app only as "this app" or "an app"—use your app's full name at least once in your product description
  • Make false, hyperbolic claims—this type of marketing rarely works and may hurt your app in the long run
  • Just write one single sentence—there's more to your app
  • Simply list your app's features, explain why these features are awesome and worth adding to a customer’s app collection
  • Exercise atypical or inappropriate language that could mislead or confuse customers
  • Use excess punctuation that could distract from the information you are conveying.


Editing App Descriptions from the Distribution Portal

1) To edit your app description from the Amazon Mobile App Distribution Portal, navigate to the My Apps tab. 

My Apps

2) Select the app you'd like to edit and navigate to the Description tab for that app.

Description Tab

3) Edit your app description and save it.

Edit Description

July 24, 2012

Amazon Mobile App Distribution Program

In this post, our optimization for Kindle Fire specifically targets graphical irregularities within an app. We have identified the most frequent graphic-specific optimizations, and provided code snippets and guidelines to help optimize your app for Kindle Fire.

What graphical issues may impact my app?

With the term graphical issues, we’re referring to a number of issues that affect how an app displays on Kindle Fire. These issues include:

  • Clipping
  • Collision with app UI and Kindle Fire’s soft keys
  • Displaced UI (e.g., if users must push next to a button instead of on that button)
  • Frame rate loss that degrades the app’s performance
  • Graphical flickering

Each of these issues could impact the compatibility of your app on Kindle Fire. While not all graphical issues are severe, if the issues interfere with the core functionality of your app, then you must address them before your app can be compatible with Kindle Fire.

Clipped or Overlapping Text

One of the most prevalent graphical issues involves unreadable text caused by clipping or overlay issues —where the text or areas of the app’s UI may overlap or display off-screen. Most of these problems can be avoided by optimizing your app’s layout to meet Kindle Fire’s specifications.

Specifically, Kindle Fire has the following display characteristics:

  • Width: 600px
  • Height: 1024px
  • Abstracted LCD density: 169


Additionally, these issues are often caused because developers forget to take into account the size of Kindle Fire’s soft key menu. While Kindle Fire has a width of 600px and a height of 1024px, Kindle Fire also has a soft key menu that is displayed at the bottom of the screen.

The soft key menu (which allows access to the standard Home, Back, Menu, and Search buttons) has two positions:

  • Maximized: when maximized, the soft key menu reserves 60px
  • Minimized: when minimized, the soft key menu reserves 20px

To keep the soft key menu minimized, make sure that your app enables full screen mode. Conversely, to keep the soft key menu maximized, remove any code that enables full screen mode. For example, full screen mode is enabled by the following sample code:




The soft key menu may overlap more than just text. Many apps include navigational buttons along the bottom of the screen. If the apps are not optimized for the Kindle Fire soft key menu, then the navigational buttons may be hidden by the soft key menu—making it difficult for users to navigate.

Displaced UI

If your app’s layout is not properly optimized for Kindle Fire, then the interactive buttons within your UI might not line up with where the buttons are displayed. That is, users may have to tap next to rather than on a button to activate it.

In addition to designing your app to take up 1024 x 600px (the dimensions of the Kindle Fire screen), if you forget to take into account the soft key menu, then the interactive area of your app may be misaligned with the displayed area.

Truncated Text

Truncated or misaligned text within textboxes is another widespread issue that apps exhibit on Kindle Fire. This issue is demonstrated in the screenshot below:


The issue, corrected:


If this issue is occurring in one textbox, then it is often occurring in other textboxes within the app. If your app contains multiple textboxes or forms with this issue, then the user experience can be severely impacted.

Truncated text can be caused by a variety of reasons. We’ll explain the most common issues below.

Text that is truncated at the top (like the screenshot above) is often caused by a few attributes in the EditText element:

  • android:layout_height - If the layout_height attribute is set a specific pixel amount (even if you used dp rather than px), then the EditText element will display at a different size on different devices—if the element is too short to display the text, then the text will be truncated
    • Try setting android:layout_height="wrap_content"
  • android:lineSpacingExtra - If the lineSpacingExtra attribute is added and set to a positive integer (e.g., android:lineSpacingExtra="5dp"), then we recommend setting android:layout_height="wrap_content"—otherwise, the extra space will push the text out of the textbox
  • android:gravity="top"- While this attribute doesn’t cause text to be truncated at the top, in conjunction with the above two points, android:gravity="top" will contribute to the issue





Text that is truncated at the bottom (like the image above which is followed by a corrected image) is also often caused by specific attributes in the EditText element:

  • android:layout_height - As with text that is truncated at the top, text that is truncated at the bottom can be caused by layout_height being set to a specific pixel amount
    • Try setting android:layout_height="wrap_content"
  •  android:lineSpacingExtra—if lineSpacingExtra is set to a negative integer (e.g., android:lineSpacingExtra="-10dp"), then text will often be cut off at the bottom
    • Try removing the android:lineSpacingExtra attribute or setting it to an integer closer to 0.


In addition to textboxes (EditText), drop-down menus (Spinner) and text areas (TextView) may also be affected by this issue. The fixes that we described above are also relevant to those elements.

The screen capture below demonstrates the difficulty that users have with truncated drop-down text.


Check back in for our final blog post in the Top 10 App Optimizations for Kindle Fire series where we take on multiple topics such as app stability, launch, and software and hardware capabilities.

July 19, 2012

Amazon Mobile App Distribution Program

Meet Amazon at Casual Connect Seattle from July 24-26!

Happy Hour at the Diller Room- July 24, 2012 6:00-8:00 PM

Join us for drinks (two drink tickets provided) and hors d' oeuvres at the Diller Room on July 24th from 6pm-8pm. Mingle with representatives from the AWS, Amazon Mobile App Distribution, and GameCircle teams and enter a drawing to win a Kindle Fire.

You can register for the Happy Hour event on this page or just simply drop by. Please remember to bring your Casual Connect Conference badge for admittance.

The Diller Room is located at 1224 1st Avenue, Seattle, WA 98101.  The location is one block west of Benaroya Hall on the corner of 1st and University.

Amazon Speaker Sessions at Casual Connect

 Join us for two conference sessions hosted by Amazon speakers:

  • Monetization Trends for Mobile Games with Aaron Rubenson, Director, Amazon Appstore for Android- Wednesday, July 25 at 10 AM.
  • Optimizing Games for Kindle Fire with CJ Frost, Developer Evangelist- Thursday, July 26 at 11:30 AM.

Amazon Tables at Casual Connect

While you are at the Casual Connect conference, please stop by our tables - #B29 and #B30. We'll be at the tables from 8AM-6PM.

July 17, 2012

Amazon Mobile App Distribution Program

Kindle Fire development resources are now available to our developer community! These resources provide detailed documentation, best practices, an emulator, and sample code to make it easy for you to build great applications for Kindle Fire customers.

Our documentation details how to set up your development environment, create a great customer experience, and optimize and test your apps for Kindle Fire. We also provide a Kindle Fire emulator to help you more easily lay out and test your apps, and sample code that illustrates our best practices for performing specific tasks.

It’s easy to get started building and optimizing your apps for Kindle Fire. Visit the Kindle Fire Development Resources page on the Distribution Portal and start building today!

July 16, 2012


The distribution portal is now available to developers looking to sell their apps outside of the U.S. Apps will be made available for distribution in the United Kingdom, Germany, France, Italy, and Spain later this summer, with plans for further global expansion in the future. To prepare for this expansion, developers can now localize their apps by adding marketplace-specific pricing as well as language translations for your apps, in-app purchasable (IAP) items and subscriptions. We’ve also updated the design of the distribution portal, and optimized it to improve your experience when adding, updating, and reporting on your apps, IAP items and subscriptions. This post provides an overview of the steps to localize your app within the Distribution Portal. 

Updating Your App Metadata

1. Within the distribution portal, choose the app that you want to edit and click on the app.


    2.  Confirm the countries where you’d like your apps to be made available by clicking on the Availability and Pricing tab in My Apps. This tab also lets you set list prices by marketplace. Developers allowing Amazon to sell apps internationally are responsible for ensuring their apps comply with all applicable export and import restrictions and the laws of the countries in which the apps are sold.


      3. Set the list price for each marketplace by setting the base list price and the currency of the list price. Unlike the U.S., the list prices that you set for each E.U. marketplace should be your suggested price inclusive of any VAT or similar taxes. These taxes are deducted from the list price when calculating royalties. If you do not set unique list prices for each marketplace, Amazon will calculate the list prices for you based on current exchange rates.


        4. Provide translated descriptions for app detail pages by navigating to the Description tab, editing the English (U.S.) description, and then choosing the option to add a new language. Languages available include English (U.K.), German, French, Italian and Spanish. You will be able to add language translations for the app title, short and long description, keywords, and product feature bullets.


          5. You will be able to go back and edit any of the above until you hit submit. Once you submit your app, it will be in the review state, and you will not be able to edit your app.

            Updating In-App Items and Subscriptions

            First find the related app, and then navigate to the IAP items or subscriptions. Follow the same process for setting availability, list prices and description.



            Updating Your Binary File

            1. From within the app you want to edit, click the Add Upcoming Version link.


              2. Within the Binary tab, you can now select the locales which you support. You can display localized versions of any string in your app or any sound or graphic by leveraging localization best practices and using resource files to provide the appropriate translation or asset. If you have already provided an APK that supports multiple languages, you will not need to take any action.


                3. You will be able to go back and edit any of the above until you hit submit. Once you submit your app, it will be in the review state, and you will not be able to edit your app.

                  With the launch of app availability in new countries, our reporting will split sales, earnings, and payments by marketplace. In addition, new payment reporting will enable you to track when a payment was made and the amount by marketplace.

                  For more information on international distribution, read our FAQs.

                  July 12, 2012

                  Amazon Mobile App Distribution Program


                  Founded in San Francisco in 2001, Glu Mobile is a mobile games publisher for smartphone and tablet devices boasting titles such as Blood & Glory, Frontline Commando, Contract Killer, Big Time Gangsta, Bug Village, Eternity Warriors, and Gun Bros. They also have new games launching regularly and recently launched their casual hit title, STARDOM: THE A-LIST. In addition to participating in the Free App of the Day program, Glu was part of Amazon’s In-App Purchasing beta program. Mike DeLaet, VP of Global Sales & Marketing, remarked on their experience:

                  What drove you to participate in the beta test for the Amazon SDK and In-App Purchasing API?

                  Glu offers freemium mobile means – which means that they are free to download and play with the additional opportunity for users to purchase in-game virtual goods to improve the gaming experience.  Amazon’s in-app purchasing functionality was a perfect fit for Glu and the type of games that we offer.

                  What types of monetization do you use (e.g., ads, in-app purchasing, subscriptions, upgrades)?

                  The majority of our games monetize through the use of in-app purchasing, though we do provide regular updates and upgrades to our games. 

                  How did you come to the decision to monetize your apps?

                  Glu decided in early 2010 to focus our efforts on creating high quality, high production value freemium games.   We set out to provide users with the best experience possible, while making our games free to download and play.  Because we were confident that users would find our games fun and engaging after downloading, we believed that they would be willing to spend money to enhance the gameplay experience.  However, users aren’t required to spend money if they choose not to.    

                  How has your experience with Amazon compared to your expectations and/or experiences with other Android marketplaces?

                  Our experience with Amazon thus far has been great.  Amazon as a company truly understands effective merchandising and has an enormous user-base with which to cross-promote.  We look forward to seeing how our business develops over the coming months and years with Amazon.

                  What advice do you have for other developers?  Any tips for how developers can leverage in-app purchasing to grow their businesses?

                  Every game is different, so analyze the results of your game and make sure you are providing what the customer wants. One of the most basic things we look at is what our customers are buying and what they are not buying within each game.  This helps us create more of what people want versus what they don’t and we can keep our stores filled with the right content. Building a freemium game is a constant iterative process. The best monetizing games require you to be fully committed!  

                  Have you received customer feedback on the Amazon experience?   

                  We keep a close eye on customer reviews for all of Glu’s games on the Amazon Appstore and so far they are excellent.  One of our recent releases, Blood & Glory, has over 7,000 five-star reviews and our other freemium titles are showing similar results.  This is proof to us that we are creating fun, engaging games that people enjoy playing.

                  July 10, 2012

                  Amazon Mobile App Distribution Program

                  Announcing Amazon GameCircle, a new set of services designed to make it easier for you to create more engaging gaming experiences and grow your business on Kindle Fire. GameCircle will make achievements, leaderboards and sync APIs accessible, simple and quick for you to integrate, and will give gamers a more seamless and entertaining in-game experience.

                  Game developers can sign up for access to the GameCircle APIs here: Game players can find Kindle Fire games that are now using GameCircle services here:


                  GameCircle achievements allow players to track all earned trophies, treasures, badges, awards, and more without leaving the gaming experience. Players can receive in-game messages to keep track of accolades earned in real-time or pause and view an achievements summary to check earned collections and determine what badges are still needed, before returning to gameplay.



                  GameCircle leaderboards provide an in-game view of score comparison information and percentile ranking, allowing players to quickly and easily check standings against top players or competitors, without ever leaving your game.




                  Sync automatically saves a player’s in-game progress to the cloud and allows them to pick-up exactly where they left off when restoring a deleted game or switching devices. Players will not have to worry about losing progress, scores or achievements between Kindle Fire devices, as all data is securely stored in the cloud. [Note: Sync to cloud functionality requires a game to integrate the Sync API.]

                  “Our goal is to give developers great tools to quickly and easily reach new customers and keep them engaged. That’s why we’re creating easy-to-integrate APIs for features like leaderboards, achievements and sync.  We also introduced In-App Purchasing API in April, allowing developers to offer a seamless 1-Click purchasing experience within their apps and games, and we’re just getting started,” said Paul Ryder, Vice President of Apps, Games, and Services at Amazon. “GameCircle gives developers the right tools to build an immersive, more entertaining experience on Kindle Fire, which will ultimately help developers grow their business.”

                  What do our beta program partners say about GameCircle services?

                  “We are thrilled to be part of Amazon’s GameCircle with Temple Run,” said Keith Shepherd, Co-founder of Imangi Studios. “The new service is a great way to keep our fans engaged by offering them more opportunities to play the game, and an intuitive platform to connect with new players.”

                  "Sync is a wonderful addition to Triple Town,” said David J Edery, CEO of Spry Fox. “It guarantees that Kindle Fire users will not lose their active game or their hard-earned coins if they replace their Fire, or if they must uninstall and reinstall Triple Town for whatever reason. It also enables multiple-device owners to transfer their game from one device to another—something we think gamers will love." 

                  "We’re excited about Amazon’s new Game Services because it brings a new level of engagement for our most popular Android titles such as Doodle Jump and Collapse!,” said Ken Murphy, VP of GameHouse Studios. “The ability to compete for high scores and achievements through the Amazon network means even more fun for GameHouse players.”

                  Game developers can sign up for access to the GameCircle APIs by visiting:

                  Game players can find Kinde Fire games that are now using GameCircle services here:

                  July 08, 2012

                  Amazon Mobile App Distribution Program

                  With the launch of the Amazon Mobile App Distribution Portal for international distribution, we'd like to talk about how to get your Android apps ready for an international audience.

                  Localization is the process of making your app display appropriate resources depending on the device's default locale and language. "Appropriate Resources" can include more than text. Depending on your app, you may also want to change:

                  • Number and date formatting
                  • Currency formatting
                  • Colors and layout styles
                  • Input methods

                  Localization is a big topic, so we'll focus on those resources that impact customers the most: text, images, and currency.

                  Each Android device has a default locale which consists of a region and language, which you can query programmatically. Fortunately, this is seldom necessary. Since Android is designed to be used on a variety of platforms, it looks for resources that are appropriate for the current execution environment. For example, you may already provide different bitmaps or backgrounds for your app based on the device's pixel density. As long as the resources are in the right directory (e.g., drawable-hdpi), Android will select the best resource for the job.

                  Localization works the same way – by putting your resources in the correct folder, Android will find the right one at runtime, without you having to write additional code. The simplest example is one you are probably familiar with: /res/values/strings.xml. The strings.xml file is designed to hold your user-viewable strings in such a way that they can be used by reference. Here is a sample definition in strings.xml:

                   <?xml version="1.0" encoding="utf-8"?>


                    <string name="hello">Hello!</string>


                  The string resource named "hello" can be referenced in your source code by calling:

                  String helloText = getString(;

                  And in other XML files (such as layout or the manifest) by referencing:

                  <application android:label="@string/hello" >

                  Now suppose you want to provide a better user experience for new customers who speak French or German. Simply create a new version of strings.xml for each language, and put them in their own "values" directory. The format is: values-xx-rYY, where 'xx' is the ISO-639 language code, and 'YY' is the ISO-3166-1 region code.


                        /values     (default directory, make sure all references are present)

                        /values-fr  (contains French language strings, region not used)

                        /values-de  (contains German language strings, region not used)

                  When Android looks for a string reference, it will try to match a resource that is specific to a region and language, then by language, then in the default directory (values). It is extremely important to make sure all of your string references are in the default directory.

                  If Android fails to find a reference after searching the default directory, your program will force close!

                  Once the references are defined in the defaults, your language-specific files can define the strings you want to localize in that language. For example, some language speakers are comfortable with a mix of English and their native tongue, while others speakers expect a full translation.

                  Not all UI presentation is done using strings, and many apps have menus, price lists, or instructions written as bitmaps or other graphical data. Fortunately, the same dynamic resource handling we just saw with strings applies to resources in the drawable folders as well.



                        /drawable-fr      (contains German language strings, region not used)

                        /drawable-de      (contains German language strings, region not used)

                  If you already have several drawable directories with resources based on pixel density, you can further extend the structure to accommodate language. The resource directory name modifiers (locale, pixel density, screen size, screen orientation, etc.) can be chained together:



                  If you find yourself reusing drawable assets (putting duplicate copies of bitmaps in several folders, for example), Android provides a way to "link" a reference to a binary using an XML file in the drawable directory.

                  Suppose you want the resource named "background" in the Great Britain locale to point to a resource in the default drawable directory. Save the following file as "/drawable-en-rGB/background.xml":

                  <?xml version="1.0" encoding="utf-8"?>

                          <bitmap xmlns:android=""

                          android:src="@drawable/background_common" />

                  Any reference to "background" that resolved to that directory (drawable-en-GB) would automatically use the resource: /drawable/background_common.

                  Lastly, we'll look at an example where we display the price of our IAP items in local format. The most important elements are the currency symbol, and the decimal divider:

                  €19,95                   // in some European locales

                  $19.95                   // in North America

                  Let's say your app uses the IAP API to fetch a price for an item from the regional store. The API will give you a price that you can parse to a float. Wouldn't it be nice to have an object that takes care of the number formatting for you? As it turns out, Android provides a NumberFormat object for this purpose.

                  To get the formatted String, make the following calls:

                  NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.getDefault());

                         String formattedPrice = nf.format(19.99f);

                  This is formatting only, and does not do currency value conversion. If you decide to use a locale other than the default, make sure you define it using both language and region (e.g., en_US, or fr_FR). Otherwise you won't get the correct formatting. For example, there are many countries using French as their primary language and have different currencies.

                  As mentioned before, localization is a deep topic – we've barely scratched the surface. Check back for additional tips to improve the customer experience as you distribute your apps around the world.

                  June 28, 2012

                  Amazon Mobile App Distribution Program

                   Jeff Hines, Kindle Fire test team, and Chirag Mehta, a2z Developer Center Inc., an company, are our bloggers for this post.

                  This fourth post in our Top 10 App Optimizations for Kindle Fire series involves optimizations that allow for successful installation on Kindle Fire.

                  While all too common, installation failures are easily preventable. Rather than by coding errors, installation failures result from a misunderstanding of the device software, features, and capabilities. This post contains helpful optimizations that address prominent issues preventing installation on Kindle Fire.

                  What version of the Android platform does Kindle Fire utilize?

                  When developing an app exclusively for Kindle Fire, ensure that your app is developed using the correct Software Development Kit (SDK) version. Many apps fail to install because they were developed to operate within a different version of the Android SDK platform.

                  If your app requires a different SDK version than what is used by Kindle Fire, then you will see an error similar to the following:

                  “…Could not parse package (at Binary XML file line #11): Requires newer sdk version #13 (current version is #10)”

                  To properly optimize your app for Kindle Fire, you should specifically target Android 2.3.4 - API Level 10.

                  If you have designed your app to install on Kindle Fire and multiple devices running other versions of the Android SDK, simply adjust the minimum Android Program Interface (API) Level within your manifest:

                  <uses-sdk android:minSdkVersion="10"
                            android:targetSdkVersion="13" />

                  Be aware that you can set the maximum API value by utilizing android:maxSdkVersion=”X”. However, we do not recommend blocking installation on future versions of the Android SDK, as all newer versions of the platform are backwards compatible.

                  If you intend to have your app exclusive to Kindle Fire, then you may simply equalize the minimum and target values:

                  <uses-sdk android:minSdkVersion="10"
                            android:targetSdkVersion="10" />


                  For more information on declaring API values within your manifest, visit

                  Kindle Fire and Google Mobile Services (GMS)

                  If you have packaged your app using Google Mobile Services (GMS) such as the Google Maps library, then your app will not install on Kindle Fire. Unlike some other Android devices, GMS are not present on Kindle Fire.

                  When trying to install an app that requires GMS, you may encounter the following error:

                  “…requires unavailable shared library; failing!”

                  While the Google Maps library is not present on the Kindle Fire, you may still connect to Google Maps via Wi-Fi. Otherwise, if your app must have offline mapping, then we recommend developing your app to utilize an alternative mapping service. 

                  If your app is fully functional without GMS support, we recommend disabling the service entirely by removing the line of code from the manifest that links to the library.

                  Depending on your app’s functionality, you may also need to modify your mapping features to gracefully degrade (e.g., with an error message such as “This feature is not currently available on this device”). If you plan to implement an alternate mapping service in an updated version, then you might use a message such as, “This feature is not currently available at this time.”

                  Be aware that if your app also uses in-app purchasing technology powered by Google Mobile Services, this functionality will not work on Kindle Fire. Amazon now directly offers an alternative In-App Purchasing API that allows easy access to purchasable digital content and subscriptions. Please refer to our In-App Purchasing section of the Developer FAQ for more information.

                  Continue to check back in for our next post in this series which will cover optimizations that target graphical performance on Kindle Fire.

                  June 27, 2012

                  Amazon Mobile App Distribution Program

                  Brett Taylor, Principal Product Manager, Amazon Web Services, and David Lane, Principal of Business Development, Amazon Kindle, are our guest bloggers for this post.

                  With its unique “split browser” architecture, the Amazon Silk web browser builds upon the power and capabilities of the Amazon Web Services (AWS) cloud to fundamentally rethink the level of performance and functionality that a browser can provide. Since the Kindle Fire launched, in late 2011, Silk has consistently been one of the most popular device applications. As web traffic originating from Silk continues to grow, many site owners have asked for guidance on how to ensure a great customer experience in our browser.

                  This post lists a few of the more common questions we’ve received from site owners and the prescriptive guidance that we’ve shared with them. If you have additional questions that we haven’t addressed, we encourage you to submit them here. We’ll continue to monitor your inquiries and post updates as needed.


                  1.       What is the Amazon Silk user agent string?

                  Amazon Silk will supply one of two user agent strings in the request headers. The first is referred to as the “desktop” user agent. This user agent string indicates that the browser is requesting the standard desktop version of the page.

                  Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/[browser version]) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=[true or false]

                  The second user agent is referred to as the “mobile” user agent. This user agent string indicates that the browser is requesting the mobile view of the web page.

                  Mozilla/5.0 (Linux; U; Android Android version; Silk/[browser version]) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Silk-Accelerated=[true or false]

                  The browser version section of the user agent string will change with each new version of the Amazon Silk browser.

                  The Silk-Accelerated parameter will be set to either true or false. If it is set to “false,” the request is being made directly to origin (i.e., it has not been routed through the Amazon Silk EC2 backend). If this parameter is set to “true,” the request may be routed through the Amazon Silk EC2 backend.

                  2.       What is the client’s IP address?

                  In cases where the Silk-Accelerated parameter is set to “false,” the source IP address of the request can be obtained as it normally would be on any HTTP request.

                  However, in cases where the Silk-Accelerated parameter is set to “true,” the source IP address of the request will be the IP address of the Amazon Silk EC2 backend server. In this case the source IP address of the end client is supplied in the x-forwarded-for request header.

                  Please be aware that each request from a single end user may be routed through different EC2 servers. In other words a web site may receive a series of requests from different source IP addresses but with the same x-forwarded-for header.

                  Additionally, a single Amazon Silk EC2 backend server will support multiple end users. This means that a web site may see requests with the same source IP address but different x-forwarded-for headers.


                  3.       Does Amazon Silk support the Adobe Flash plug-in?

                  Version 10.3 of the Adobe Flash plug-in comes preinstalled on the Amazon Silk browser. In the most recent version of Amazon Silk (v the Adobe Flash plug-in was disabled by default. Users can enable the plug-in by selecting the “Enable Flash” option in the browser settings menu.

                  Amazon Silk version numbers where Flash was enabled by default contain a hyphen. Version numbers with no hyphen have Flash disabled by default.

                  Web developers who wish to present Flash content to Amazon Silk users should check whether the Flash plug-in is enabled. If it is, Flash content can be safely presented to the user. If Flash is not enabled, the web developer should either present alternate content to the user (much like they would to iPad users) or present a message asking the user to enable the Flash plug-in in the settings menu.

                  Given Adobe’s announcement that it will discontinue support for the Flash plug-in on mobile devices, we are recommending that site owners transition to HTML5 video. Below are a set of steps to help solve for this issue going forward:

                  As part of website optimizations for Kindle devices and the Silk Browser, we are recommending a set of steps to help solve for non-Flash video playback.

                  • Ideally, your site would detect whether or not Flash is available on the device
                  • As a fallback, you can look for the Silk user agent (details above)
                    • When Silk is detected, use an HMTL5 video playback element rather than Flash video
                  • If HMTL5 video is not available, suppress the “Download the latest Flash player message” as this intent is unavailable to Silk customers on Kindle LCD devices

                  4.       How can web developers optimize site performance for Amazon Silk users?

                  There are several techniques web developers can use to optimize the performance of their web sites for Amazon Silk users.

                  Caching on the Amazon Silk EC2 backend is one of the primary mechanisms Silk uses to accelerate page loading. Silk’s backend will only cache page elements that are explicitly marked as cacheable by the web developer. Web developers can assure that their web sites are optimized to take advantage of this caching by explicitly setting at least one of the following HTTP cache-control headers: max-age, expires, and public. The longer the time-to-live for a cacheable element the more benefit Silk users will receive.

                  Another important consideration in web page design is to explicitly set the height and width attributes on any elements used in the page (e.g., images). The Amazon Silk EC2 backend will optimize the delivery of the page elements using the height and width. This optimization will improve page latency for the user and minimize bandwidth usage.

                  For additional, more general, information on the Amazon Silk web browser, visit the Amazon Silk FAQs.

                  June 19, 2012

                  Amazon Mobile App Distribution Program

                  We’re pleased to announce that you can now submit apps for distribution in the United Kingdom, Germany, France, Italy, and Spain, using the Amazon Mobile App Distribution Portal. We’ll begin distributing apps in these countries later this summer (and we have more countries planned in the near future). 

                  The Amazon Appstore in the U.S. has had a very successful year with millions of customers discovering and downloading apps and games. We continue to welcome new developers onto our platform, and since launch, we’ve grown to tens of thousands of apps—with more coming every day. Our recently launched In-App Purchasing API is already helping developers like Mobile Deluxe, G5 Entertainment, and Social Gaming Network delight their customers and generate significant revenue. Amazon now offers developers the opportunity to experience similar success with app sales outside the U.S.

                  Now is a great time for new developers to sign up and become familiar with the program. You have the ability to select the countries where you would like your apps to be sold and set your list prices by marketplace. If you are already participating in the program, your apps will automatically be made available for sale internationally by default. And you can easily change international availability for your apps via the Distribution Portal if your apps should not be sold in select countries. Developers allowing Amazon to sell apps internationally are responsible for ensuring their apps comply with all applicable export and import restrictions and the laws of the countries in which the apps are sold.

                  Though Amazon will not require apps to support multiple languages, we encourage you to consider localizing your apps with language translations and to think of creative ways to deliver great experiences to your international customers. Just as in the U.S., if you sell apps in the U.K., Germany, France, Italy, and Spain, you will benefit from Amazon’s trusted 1-Click purchasing as well as the easy-to-integrate In-App Purchasing API.

                  Today we are also announcing two changes to the Amazon Mobile App Distribution agreement. First, building on the success of the April In-App Purchasing Service launch, and to simplify our global terms, Amazon will be aligning the revenue share for paid apps with that for in-app products sold using Amazon’s In-App Purchasing Service. Starting July 1, you will earn 70% of list price on each paid app sale. This is a change from the prior terms under which you earned either 70% of the app’s sales price or 20% of list price (whichever was greater). To put it differently, starting in July, you’ll receive 70% of the list price for all sales, regardless of whether you monetize your apps up front (paid apps) or downstream (using our In-App Purchasing Service).  

                  Second, we will be adapting the terms of the distribution agreement to provide more flexibility around timing for app submissions. You will now control which apps you will make available to Amazon customers, and when, as well as the countries in which your apps may be sold. As a reminder, it’s your responsibility to ensure your list prices do not exceed the lowest prices at which your apps and in-app products are sold in similar stores. To review the full agreement, including the two changes described above, please follow this link.

                  If you don’t already have a developer account, it’s easy to join and we’ve waived the annual fee for 2012  it’s free to register for a developer account. Sign up now, and start submitting your apps for international distribution later this summer!

                  We’re pleased to announce that you can now submit apps for distribution in the United Kingdom, Germany, France, Italy, and Spain using the Amazon Mobile App Distribution Portal.  We’ll begin distributing apps in these countries later this summer (and we have more countries planned in the near future).   


                  June 17, 2012

                  Amazon Mobile App Distribution Program

                  Guest author Simon Newstead, CEO of Frenzoo, discusses designing games for monetization. In it he uses examples from Frenzoo's Style Me Girl, the first 3D fashion game on mobile. Simon can be reached at

                  A Numbers Game

                  Our debut game Style Me Girl gained impressive downloads in its first two weeks, reaching the #1 position in the Amazon game charts. Whilst the downloads and rankings were nice, what made us really happy was the monetization, with Kindle Fire performing particularly well.



                  To look at what drives monetization it's always helpful to look at the core game mechanics:


                  In our case with Style Me Girl, the primary is a fashion puzzle mechanic where the player must dress a series of models for different Photoshoots, each with a unique fashion genre. The game uses a proprietary judging algorithm to determine scores, taking into account the items used, the fashion genre as well as the attractiveness of the photo taken. Passing the level unlocks the next level (model and fashion genre), progressing the story. Story evolves with new levels added dynamically from the cloud each week.

                  The secondary is a casual "catch the falling item" mini-game called Style Catch. Style Catch escalates in difficulty and provides and increasing payout of coins, used for shopping.

                  A freemium game, Style Me Girl has a hard currency Cash (purchased via IAP) and soft currency Coins, earned in Photoshoots and Style Catch.

                  5 Tips for Monetization

                  1. Incorporate a storyline

                  No matter the game type, if your game has levels, story serves up more motivation for players to progress through them. Players are emotional beings, and we are all compelled to be drawn into a good story. In our case, the game could have functioned just fine without a story line. However we saw from player feedback a deep engagement with the protagonist and goals in the story arcs. Given how little engineering resource is often needed on story, the ROI to include it is usually pretty compelling.

                  2. Replayability and collectibles

                  One thing that drives many paying users of Style Me Girl is successfully completing all levels with perfect 3 star results. Why? Of course completionism plays a part but the main one is being able to win rare "signature edition" items. These cannot be bought in the shop and a sign of success is sporting an outfit featuring 1 or more signature editions. It's always good to make room for replayability and collectibles can play well in that.
                  3. Energy and speed up

                  It's a cliche but it's true - impatient players are paying players. Energy regeneration through paid items is a proven way to open up the purse strings. We saw that in Style Me Girl and cash purchase, even though Style Catch itself is just a game to let you earn the soft currency. Strange but it works.

                  4. Aesthetics and functionality

                  Whilst studies show that pure aesthetic items don't monetize as well as time saving and functional virtual goods, if you can combine them together that can work extra well. In our case the cash items bought in the shop are attractive fashions, which lets users both look good and play good. Combinations are always good. Think the success of Toms, based on looking good and feeling good about it. Or owning the latest Macbook Air, a style statement as well as solid productivity tool.

                  5. A/B testing

                  Like eating enough fiber, it may not be a glamorous part of game design but it certainly is necessary to get the most out of your game. We implement A/B testing in the major parts related to the in-game economy - coins earning rate, starting currency values, purchase conversion rate etc. We don't go to the point of A/B testing individual item prices yet though, but that's the direction. Running tests has helped us increase monetization while not affecting retention (not always the case), and it's something we're going to dive into even further.


                  These tips are certainly not rocket science and not the first time they have been used in games.That said, keeping these fundamentals in mind when designing your next game ensures you're getting biggest bang for your development buck. And that makes everyone happy.

                  Want the latest?

                  appstore topics

                  Recent Posts