开发者控制台
感谢您的访问。此页面目前仅提供英语版本。我们正在开发中文版本。谢谢您的理解。
Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts

Archive

Showing posts by David Isbitski

March 26, 2014

David Isbitski

Launched in 2012, publisher DJiT describes edjing as the first and only multiplatform track-mixing application on the market. With edjing, customers have been given the opportunity to mix like a professional DJ, record their tracks, and numerous effects and then share them out with friends. Available on the Amazon Appstore here and other platforms, edjing has already registered more than 15 million downloads and is available in more than 170 countries across iOS, Android, Windows and Amazon.

I had a chance to sit down with Jean-Baptiste Hironde, CEO of DJiT, to discuss their experience bringing edjing into the Amazon Appstore ecosystem, what they’ve found Amazon customers like about their app, and what type of success they’ve seen.

Porting to Amazon with a single developer

The process of updating the existing Android version of edjing for the Amazon Appstore was a simplified one and done by a single developer on the team.  “We have been very pleasantly surprised on how easy it was to port the app over to Amazon. We only had few modifications to do in order to adapt to the Amazon environment, especially concerning the In-App Purchases. We just simply had to match our existing In-App Store SKUs with Amazon’s.” recalls Jean-Baptiste.

Figure 1- Mixing tracks in edjing

Amazon’s free In-App Purchasing API allows publishers to sell digital content and subscriptions—such as in-game currency, expansion packs, upgrades, magazine issues and more—for purchase within their mobile apps and games. It includes a fully integrated checkout experience with the Amazon 1-Click settings customers are familiar with.

DJit Experiences Higher ARPD and ARPU in the Amazon Appstore

Edjing chose to have a Freemium business model for the initial release. The app was downloadable for free but customers could buy additional features as in app purchases via the edjing in-app store. Currently this includes selling additional sound effects as well as customizable turntable backgrounds. The Freemium version also implemented an offer wall within the app, to help offer purchasing options to customers who had not bought anything yet.

“The Average Revenue Per Download (ARPD) on Amazon is actually higher than on Android.” – Jean-Baptiste, CEO 

Figure 2- Buying a new Skin via Amazon's In-App Purchasing API

Based on the success with the Freemium model a Premium version of edjing was released. “Amazon monetizes very well, therefore we’re currently offering a Premium version. We actually noticed that though the volume of downloads might be lower than on other platforms, the Average Revenue Per Download (ARPD) is actually much higher than on Android." says Jean-Baptiste.

Soon after being launched edjing was also featured in the Amazon Appstore. According to Jean-Baptiste after being featured, the average daily downloads on the Amazon Appstore for edjing increased by 400% during that time.

“Amazon users spend more time in edjing than any other platform. Close to 25% of edjing for Amazon sessions exceed 30 minutes!” – Jean-Baptiste, CEO

Edjing has also seen a stronger engagement than on competitive platforms.  “Amazon users are very qualitative users. User engagement with edjing on Amazon is higher than on any other platform. In proportion, Amazon users spend more time in edjing than any other platform. Close to 25% of edjing for Amazon sessions exceeds 30 minutes! “In summary, it is so easy to port the app on Amazon that there’s no reason you shouldn’t!” concludes Jean-Baptiste.

You can check out edjing today in the Amazon Appstore including both free and premium versions.  You can find out more about the Amazon In-App Purchasing API here.

-Dave (@TheDaveDev)

 

March 13, 2014

David Isbitski

Founded in 2011 Pixowl, Inc is a mobile games developer headquartered in San Francisco, CA. With the success of its four iOS games, The Sandbox, Greedy Grub, Doodle Grub and Safari Party, Pixowl has made a name for itself in casual mobile games.  Their game, The Sandbox, is a unique world-building and crafting game in 2D with touch controls and access to over 150+ physics elements. Players can craft amazing worlds, create pixel art, chiptune music, electric circuits or just play with physics.

I had a chance to sit down with Sebastien Borget, COO and Co-Founder at Pixowl and ask him about Pixowl’s experiences porting The Sandbox to the Kindle Fire, what type of success Pixowl has seen in the Amazon Appstore, and what it was like implementing many of the APIs available in the Amazon Mobile App SDK.

Betting on the Amazon Appstore pays off

“We have built with Amazon an improved version of The Sandbox which is deeply integrated with Amazon’s GameCircle service for a more seamless experience on Kindle Fire.” – Sebastien, Pixowl

Pixowl was able to submit The Sandbox early on in the Amazon Appstore’s launch.  “We were present at an event organized by Amazon UK to present other developers success stories on the Amazon Appstore.  While it was still in an early stage of maturity we were really impressed by the performance the apps had already seen there. This convinced us we had to be among the early movers and adopt a cross-platform strategy fitted for each partner.  Now, we couldn’t be happier about this decision as the Amazon team has held all of its promises and has been over achieving for us.” recalls Sebastien.

For the Kindle Fire version of The Sandbox, Pixowl decided to integrate Amazon GameCircle allowing a more seamless experience.  GameCircle is a free, cross-platform API from Amazon that provides everything you need to implement achievements, leaderboards, and saved game syncing across any device, regardless of mobile platform. Once you integrate GameCircle, customers can play and interact with other gamers across any mobile device.

“Amazon is proving that Android users could be as engaged with games as on other platforms and made it worth considering alternative distributions models, with  a huge revenue potential.” – Sebastien, Pixowl

“For us, the decision making process was relatively easy. On a business perspective, we wanted to make sure that the platform had enough of our core audience: kids and casual players, from 5 years old to 20+ .  On the technical side, we had to check what level of compatibility with existing Kindle models was, evaluate the adaptations required and make sure we could provide the best game experience on the devices.” says Sebastien.

Quick porting process and easy Amazon Mobile App API integration

Pixowl already had an existing Android version of The Sandbox so moving to the Amazon Appstore was relatively quick.  “The overall porting process took us 2 weeks maximum including development and testing. We are developing in C++ with Cocos2DX and everything worked almost seamlessly.” says Sebastien.

The Sandbox follows the “freemium” monetization model; a free download to all Amazon customers the games utilizes Amazon’s In-App Purchasing API to unlock additional campaigns of level or acquire elements faster.

The API offers a completely Amazon hosted checkout experience to customers and integrates fully with their Amazon account.  They can choose to utilize their 1-Click purchase settings as well as Amazon Coins which now work on both Android and Kindle Fire devices.

According to Pixowl the Amazon Appstore represents 5% of the total downloads volume from all Android marketplaces, but over 20% of their total Android revenues. Some days, it’s could be as high as 50%!   “That’s very close to the performance we’re seeing with Apple iOS!” says Sebastien.

According to Pixowl Amazon is proving that Android users can be as engaged with games as on other platforms.  It made it worth Pixowl considering alternative distributions models, with a huge revenue potential.  “Success is no longer determined just by the amount of downloads, but by their quality. Go for the full experience with Amazon.  It’s really worth it!” says Sebastien.

You can check out The Sandbox in the Amazon Appstore here.  You find out more about the Amazon In-App Purchasing API here and the cross-platform GameCircle API here.

-Dave (@TheDaveDev)

 

February 28, 2014

David Isbitski

We just gave our case study page a quick update to make it easier for you to navigate and find the developer stories that you are looking for. Check out the case study page to see what other developers are building and learn what they are doing to engage their users, promote their apps, and successfully monetize them.

Take a look at some of the developer stories that we’ve recently featured:

Developers like Sean Sheedy and his two sons Tommy and Ian love to participate in MoDevEast competitions. In their latest competition the team created an app that would let you playback a track that somebody else recorded and while it plays back you can record your own track. Sean mentioned that “It was a no brainer to port this over to Kindle. It basically ran right away. We basically did no work.” Since Kindle is Android, it’s just like any other Android environment using Eclipse. “In development, it’s really cool that I can plug the Kindle in, and it’s just like any Android device. That is REALLY nice,” says Tommy. Read the full article.

https://m.media-amazon.com/images/G/01/DeveloperBlogs/AmazonDeveloperBlogs/legacy/mysingingmonster1._CB520510310_.png

When we spoke with Bryan Davis, the Director of Development of Big Blue Bubble, he shared some general strategy on how they generated 10%-15% better average revenue per user and 25%-30% better IAP revenue in the Amazon Appstore for My Singing Monsters. Davis tells us: “A very important aspect of monetization from free-to-play games is IAP (in-app purchasing). Our strategy is to go for volume, rather than chasing whales.” While average revenue per user (ARPU) is important, Bryan tells us that a high conversion rate is more important for Big Blue Bubble. Read the full article.

https://developer.amazon.com/public/binaries/content/gallery/drpandacropped2.jpg

Others like Tribeplay have been building apps since 2012 and created the series of games under the title Dr. Panda that first appeared on iOS and Android. According to the team, making their Android Apps available on the Amazon Appstore required little to no extra tweaking.” The team added thatone of the best things about the Amazon Appstore is that there wasn’t much work to get our apps on there. We already develop for Android, so getting our games on the Amazon Appstore was a real breeze.” The team ended up doubling their gross revenue in UK, Germany, France, Italy, and Spain. Read the full article.

We plan to make these case studies a regular series, so check back every month for a new case study post, and learn more about how the Amazon Appstore is benefitting developers. If you’re interested in checking out other developer stories, visit our case study page. If you have a specific experience with your apps and games in the Amazon Appstore or integrating the Amazon Mobile Developer SDK that you’d like to share with other developers we would love to hear about it. Just email us your story at mobile-app-marketing(at)amazon.com and you just might end up on our website.

 

 

 

February 27, 2014

David Isbitski

About Kinetic Art

Kinetic Art, an Israeli startup established in 2010, is the publisher of the highly popular cooking app Look & Cook. Kinetic Art's core technology and intellectual property revolves around in-app ecommerce optimization.

Recently, Kinetic Art published Look & Cook to the Amazon Appstore (download here) their first ever-Android version. I had a chance to sit down with Dudu Mimran from Kinetic Art and talk about Kinetic Art’s experience publishing on the Amazon Appstore, what it was like implementing the Amazon Mobile Associates API, and what type of success they have seen so far.

“Look and Cook is a cooking and now a shopping app, thanks to Amazon’s Mobile Associates API. We are building a platform for building cooking apps.” - Dudu Mimran.

Why start with Amazon? A better user experience.

Having found early success on iOS, including an advertising campaign on Pinterest, the team decided it was time for an Android version. For Kinetic Art the most important thing for Look & Cook was ensuring a great user experience. They were confident they could achieve this vision on Kindle Fire as they only needed to target a single device vs a multiple of Android devices. “On Amazon, you can focus a lot on Kindle. With Google Play you have to make sure you having everything looking good on many, many devices. We decided it would be a much easier transition going from iOS to Amazon because of this.”

Look & Cook was able to leverage Amazon to create a culinary lifestyle experience by integrating ecommerce into the food and culinary world. The current version of Look & Cook now has numerous physical goods related to the cooking of the selected recipe. “We created a small shop within each recipe. The tools that are included in the app are recommended by the recipe creator to make the recipe perfectly. In general, this is what our investors have in mind. Our main business model in the future will be ecommerce. We are not there yet, but this is a great step. We are betting everything on ecommerce and we already have purchases. People are buying for sure,” declares Dudu.

“Look and Cook is a cooking and now a shopping app, thanks to Amazon’s Mobile Associates API. We are building a platform for building cooking apps. Amazon’s Mobile Associates API really excited us because we have always wanted to integrate ecommerce but it’s something very hard to do as a startup. Since Mobile Associates launched it has made it much easier for us. We are very happy working with Amazon,” says Dudu.

Amazon Customers: More Engaged

Even though the team has seen a smaller number of app downloads on Amazon vs. iOS people are definitely buying goods and they have already seen differences in the behavior of customers. “We have two types of users on Amazon: those that use it on an ongoing basis and those that love it for cooking. We also see those that love it for the very first time. They are more engaged on Amazon, and if I compare the amount and depth of reviews, then totally, people are much more engaged into the app itself,” says Dudu.

According to the team, once they understood the basics of integrating the API for Amazon Mobile Associates, things progressed quickly. “It was very easy, and it just works!” says Dudu.

“Our main business model in the future will be ecommerce. We are not there yet, but this is a great step. We are betting everything on ecommerce and we already have purchases. “

Figure 1- Look & Cook running on a Kindle Fire HDX 7”

Figure 2- Tapping on Shop will bring up a physical good for that recipe you can buy with the Buy Now button.

Figure 3- Clicking Buy Now takes you right to the product from Amazon without leaving Look & Cook

Figure 4- Look & Cook’s category of recipes

Kinetic Art projecting 8-10x growth

To measure success the team built a detailed level of conversion measurement. For example, they know how many people download the app, navigate through the app, navigated to an extended view, and buy products. In the future, one of the improvements will be creating greater exposure to other random products and not forcing people into the ones the app recommended.

It’s too early to tell how much money the team will be making but already they are seeing purchases. “It’s less important for the number at the moment, behavior is what is very important. Really getting customers used to the behavior is important. They are not accustomed to buying within the app. Now we are working on several angles: distribution, volume of users, exposure of more products, and then quality of product and selection,” says Dudu. 

When asked about potential growth, the team projects as much as 8-10x growth once they start really marketing to users. Their favorite part about working with Amazon? “I would say the personal touch. This is very, very important to us and a huge differentiator. From a user perspective, Amazon customers are much more engaged and seem to be people that buy.”

You can check out Look & Cook in the Amazon Appstore here and find out more about the Amazon Mobile Associates API here.

-Dave (@TheDaveDev)

 

February 25, 2014

David Isbitski

Two years ago, Sean Sheedy, saw an opportunity to teach his boys more about mobile app development. He decided to take his sons Tommy and Ian with him to MoDevEast and participate together in a hackathon. These three were our big winners from the MoDevEast competition. It all started out with Sean bringing paper, pens and other supplies so that the boys could help out by drawing the app’s user interface in prior MoDevEast competitions. Once they came up with the user interface Sean would code whatever ideas the boys came up with.

Figure 1Sean with his sons Tommy and Ian

His oldest son Tommy (ten at the time) would always talk to other attendees and sponsors from the hackathon and would work alongside them. When one of the attendees gave Tommy an iOS app recipe, it wasn’t long after that Tommy had an entire app running and needless to say dad was impressed.

At the recent MoDevEast 2013 conference Tommy brought his friend Devin and his Dad to the conference too, bringing the teams total membership to four. 

“We were trying to decide what app to write,” recalls Sean, “Devin’s Dad and I like to get together and jam on the guitar. We thought about doing an app called Jam Session. The idea that we tried to implement was an app that would let you playback a track that somebody else recorded and while it plays back you can record your own track. I found two API’s called Audio Track and Audio Record for Android. We found that it was possible to do this and then figured out how to make the app work.”

“Tommy investigated early on of what it would take to make this work on a Kindle. He saw that it would be really easy to port over to the Kindle because it’s basically Android,” says Sean. “Tommy saw the benefit of creating the design and then began writing code. We initially built it for Android. The API we ended up implementing was really a simple audio playback. “

Figure 3 Sean and the boys using post it notes to flush out the app user interface

“There was no porting involved – it was intended to run on any Android device and that includes the Kindle.” - Sean

So what was the process like getting their Android app running on Kindle? “It was a no brainer to port this over to Kindle. It basically ran right away. We basically did no work,” Sean says. “The only thing that would have been a deal breaker is if we had used vendor-specific or unpublished APIs. Nothing stood out to be an issue. There was no porting involved – it was intended to run on any Android device and that includes the Kindle Fire. “

What about the Kindle development environment? Since Kindle is Android it’s just like any other Android environment using Eclipse. “In development it’s really cool that I can plug the Kindle in and it’s just like any Android device. That is REALLY nice.” says Tommy. 

   

So what do Sean and the boys envision for the future? “We would like to be able to make it easy to buy the music that people are jamming to in our app. You can start off by buying the music you want to jam to and make that the base track and then add your tracks to it. Amazon’s Mobile Associates API would help us do that.”

“In development, it’s really cool that I can plug the Kindle in, and it’s just like any Android device. That is REALLY nice.” - Tommy.

Did the boys have fun on this father and sons hackathon adventure? “Tommy thought this was our best concept yet. We didn’t win the top prize, but we won the Kindle Fire and some money,” says Sean. “Pretty much every hackathon I’ve gone to I’ve gone to with the kids. The boys are getting a lot from the experience, and I highly recommend this to any tech parent.” 

Amazon Mobile Associates

Interested in selling Physical Goods in your Android Apps using the Amazon’s Moble Associates API that Sean mentions? Be sure to check out our Mobile Associates Blog Posts and Developer Portal for full details.

-Dave (@TheDaveDev)

 

February 10, 2014

David Isbitski

Setting up your Kindle Fire device for testing and debugging is a simplified process thanks to Android Debug Bridge (ADB) support.  Since questions around ADB driver support have come up on Stack Overflow and our developer forums I thought it would be beneficial to walk through the setup process. 

Certain development tools referenced in this post are provided by third parties, not by Amazon. Any links to these tools will take you to third-party sites to download and install them.

Getting Started

Note – this post was updated on April 16th, 2014 to reflect changes in the Amazon Android SDK addon.

First, ensure your development computer has at least one package of Kindle Fire system images installed. This is critical because the package includes the vendor identification needed for ADB to recognize any of the physical Kindle Fire tablets.  This is done through the following steps:

  • Ensure you have the Android SDK already installed
  • Launch the Android SDK Manager
  • Under Tools, select Manage Add-On Sites, and enter the following url: http://kindle-sdk.s3.amazonaws.com/addon.xml

  • Select Close and wait for the list of available packages to refresh
  • Select Kindle Fire USB Driver, Kindle Fire Device Definitions, and optionally the Amazon AVD Launcher.

  • Select at least one Kindle Fire image so that vendor information is available for ADB.  I’ve chosen to select the three Kindle Fire 3rd Generation images (API Level 17).

  • Accept the license agreements and install.

For complete information about setting up your development computer and installing the SDK packages, see Setting Up Your Development Environment.

Uninstalling existing Windows drivers

If you installed a previous version of the Kindle Fire USB driver then take the following steps to remove the previous USB device driver and force re-installation of the driver.

  • Connect your Kindle Fire tablet to the USB port on your development computer.
  • On the development computer, from the Start menu, right-click Computer, and then click Manage.
  • In the left pane, under Computer Management, expand System Tools, and then click Device Manager.
  • In the right pane, expand Portable Devices.

  • Next, Right-click Kindle and then click Properties.
  • In the Kindle Properties window, on the Driver tab, click Uninstall, and then Confirm.

  • Finally, unplug your Kindle Fire tablet from your computer.

Enabling ADB on the Kindle Fire

Next, we need to turn on ADB support on our actual Kindle Fire device.  Follow these steps:

  • On your Kindle Fire tablet, go to Settings.
  • On a third-generation Kindle Fire tablet, tap Device.  On a second-generation Kindle Fire tablet, tap Security.  First-generation Kindle Fires already have ADB enabled by default so no action is needed.
  • Set Enable ADB to On, and then accept the pop-up warning message.       

As a security precaution, you should set Enable ADB to Off when you are not trying to connect to the Kindle Fire tablet to your development computer.

Installing Windows ADB drivers

First, ensure you have enabled ADB on the Kindle first as described above.  For the USB driver to install correctly, Windows must recognize the device as Android Composite ADB Interface during installation. If ADB is not enabled, Windows instead recognizes the device as Portable Devices.

Do the following to install the Kindle Fire USB driver:

  1. In your Android SDK directory, at \extras\amazon\kindle_fire_usb_driver, run KindleDrivers.exe, and then follow the instructions on the screen.

  1. Connect your Kindle Fire tablet to a USB port on your development computer.
  2. From Start, click Control Panel, and then select Device Manager.
  3. In Device Manager, under Kindle Fire, verify that the device appears as Android Composite ADB Interface.

Next, do the following to detect your Kindle Fire tablet through ADB:

  1. Open a command prompt window.
  2. Change directory to your Android SDK platform-tools directory.
  3. Run the following commands and confirm that the serial number for your Kindle Fire tablet appears in the list of devices.

adb kill-server

adb start-server

adb devices

If the serial number does not appear after running adb devices, do the following:

  1. Change directory to your Android SDK tools directory.
  2. Run the following command:

android update adb

  1. Change directory back to your Android SDK platform-tools directory.
  2. Run the following commands:

adb kill-server

adb start-server

adb devices

If your Kindle Fire device still does not show up you may need to reboot your development machine and then try again.

Installing Mac OSX ADB drivers

Perform the following steps if your development computer runs OS X:

  1. Connect your Kindle Fire tablet to a USB port on your development computer.
  2. Open a terminal shell and navigate to your Android SDK tools directory.
  3. Run the following command to update ADB.

./android update adb

4. In the terminal shell, navigate to your Android SDK platform-tools directory.

5. Run the following commands and confirm that the serial number for your Kindle Fire tablet appears in the list of devices.

               

If your Kindle Fire device does not show up in the list of devices you may need to reboot your development machine and then try again.

You should now be able to fully test with your Kindle Fire device over the Android Debug Bridge.  For additional information on enabling ADB for Kindle Fire Devices, see Setting Up Your Kindle Fire Tablet for Testing.

-Dave (@TheDaveDev)

 

January 23, 2014

David Isbitski

Amazon allows you to distribute your web apps and mobile-optimized HTML5 websites to millions of Amazon Appstore customers in nearly 200 countries across the globe.  With Amazon’s In-App Purchasing API for JavaScript you can increase revenue by enabling compelling monetization strategies.  This includes a "freemium" model for your app where the app itself is free but you charge a premium for advanced services or functionality.  Your web app can offer customers in app currency, subscriptions and entitlements all through the secure Amazon checkout process.

Getting Started

The first step in implementing In-App Purchasing in your web apps is to download the Amazon Mobile App SDK, then you will submit a new web app to the portal and then finally add a reference to the Amazon Web API libraries in your html. 

The latest versions of the Amazon Web API libraries are hosted by Amazon for you.  The current urls can always be found in the LATEST_URLS.txt file located in the Amazon Mobile App SDK folder.

<!DOCTYPE html>

<html>

<head>

    <title>Button Tester</title>

    <!-- Use of this sample code involves calling jQuery from Google

                 Hosted Libraries and is subject to the terms located here:

                 https://developers.google.com/speed/libraries/terms

    -->

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>

    <script src="https://amazon-web-app-resources.s3.amazonaws.com/v0/latest/Amazon-Web-App-API.min.js" type="text/javascript"></script>

    <script src="https://amazon-web-app-resources.s3.amazonaws.com/v0/latest/Amazon-Web-App-API-tester.min.js" type="text/javascript"></script>

    <script src="js/buttonclicker.js" type="text/javascript"></script>

    <link rel="stylesheet" href="buttons.css"/>

</head>

Once you have referenced these JavaScript files you will have everything you need to access the Amazon In-App Purchasing API from your web app.

Setting Up Your Catalog

Before you can make any In-App Purchase calls you need to have a catalog of SKUs set for your web app to use.  You can add SKUs to your web app’s catalog by opening the Developer Console, selecting Apps & Services, choosing the web app submission you want to add SKUs to and then clicking on the In-App Items link, which will take you to the list of SKUs currently offered in your web app.

There are three types of SKUs you can offer to your customers.

·         Consumables – This type of purchase is available only on the device it was purchased on.  Some consumable examples include in-game currency or an extra power up in a game.

·         Entitlements – This is content that requires access rights such as unlocking additional game levels or offering specific magazine issues.  Entitlements do not expire, are tied to a customer’s Amazon account and are available on any device they access the content from.

·         Subscriptions – These are entitlements that are bound by a period of time which auto-renews at the end of the period and is tied to the customer’s Amazon account. Subscriptions are available on any device a customer accesses the content from. You are allowed to have multiple subscriptions for purchase within your app.

 

Simply click on the type of SKU you would like to add and you will be taken to a new screen where you can provide information about the SKU.  For example, if I wanted to offer an Entitlement purchase for my World of Warcraft Realm Status app to track a single realm I would click Add an Entitlement and then enter a Title and SKU.

 

Next you will need to enter pricing information for your new SKU.  In this case, I want to sell a Track Single Realm for $1.00.  Amazon gives you the option of setting your own list price for each marketplace or it can match the prices based on your entered base price.

 

You can also enter a detailed description, along with keywords for the Entitlement.  Descriptions can be provided in multiple languages and if no translations are given the default English description will be used.

 

You also need to provide images of the item for users along with the image you want displayed upon a successful purchase.

 

Once you  have completed this, click Save, and then Submit In-App Item.  You will be taken back to our In-App Items screen with the new SKU now listed.  In the upper right corner will be a button to download a JSON Data file. 

This JSON file will include a list of our SKUs that will be used by the SDK Tester Tool when we want to simulate a purchase in our development environment.

 

The SDK Tester Tool is included in the Amazon AVD Launcher emulators or it can be installed on a device via the APK included in the Amazon Mobile App SDK under the /Android/InAppPurchasing/tools.

The Button Clicker example includes a similar JSON file that covers all of the purchasable item types.

Purchase Process Flow

The JavaScript In-App Purchasing API is designed to encapsulate the complexity behind the purchase process while providing a fully featured API. While building your app, it is important to understand which parts of the purchase flow the app must implement, and which parts are handled by the Amazon Services library.

Note: In order to protect customers, we also require that you serve the page of your app that uses In-App Purchasing over  SSL/HTTPS. For more information, please refer to the Making Your Web App Safe documentation

Below is a simplified chart explaining responsibilities during the purchase flow.

 

In-App Purchasing API for JavaScript is comprised of three elements:

  • Amazon Services JavaScript - The class/API that manages the interaction between the application and Amazon's native APIs.
  • Purchase Handlers - The object your application provides to respond to callbacks from the Amazon Services JavaScript. They are registered as an observer to the Amazon Services In-App Purchasing API.
  • Receipt Verification Service - An HTTP service you should use to validate the customer's purchase receipt.

The process workflow between your JavaScript calls and the Amazon Services JavaScript library looks something like this:

 

You can deliver static content stored locally or dynamic content that is updated over time for customers.  For more details about the Purchase Process workflow and the types of deliverable content you refer to the Understanding In-App Purchasing for JavaScript API documentation here.

Implementing and Testing Purchase Calls

Now that you understand the process flow, have referenced the proper JavaScript libraries and have created a list of SKUs (or local JSON file) it’s time to call out to the Amazon Services in your own JavaScript.

Every call you initiate via the Amazon Services JavaScript Libraries results in a response received by the corresponding response handler specified in registerObserver(). Each of these responses makes use of a response object and includes the following:

  • GetUserIdResponse - Provides the app-specific UserID for the user currently logged into the Amazon Client
  • PurchaseUpdatesResponse - Provides a paginated list of receipts and revoked SKUs since the offset passed into the initiating request. Receipts are returned in a set and are unordered.
  • ItemDataResponse - Provides item data, keyed by SKU.
  • PurchaseResponse - Provides status on purchases initiated within your app. Any error for a purchase is automatically managed for you by In-App Purchasing API.

There are also purchase handlers, similar to the In-App Purchasing API for Android that have already been implemented for you inside the Amazon Services JavaScript files.  They include the following:

  • onSdkAvailable(onAvailableResponse) - This gets called when the In-App Purchasing services are ready to be called by your code. Production applications should not grant entitlements when they are run in sandbox mode.
  • onGetUserIdResponse(userIdResponse) - Called in response to GetUserId.
  • onItemDataResponse(itemDataResponse) - Called in response to GetItemData. data.itemData is a hash table of itemData objects keyed by SKU.
  • onPurchaseResponse(purchaseResponse) - Called to report the status of a purchase operation. purchaseResponse.purchaseRequestStatus contains the status of the response. If a prior session of the application shut down before a purchase response could be delivered, this function will be called when a new session of the application registers a purchase hander.
  • onPurchaseUpdateResponse(data) - Called with the list of entitlements that the user has been granted. data.receipts contains a hash table, keyed on SKU, that contains the receipts for the IAPs that have been granted to the user. data.revokedSkus has a list of SKUs that the user can no longer use.

Implementation of the Amazon Services JavaScript library is as follows:

  • Enable the API Tester
  • Register a Purchase Observer
  • Check to see if we are running in developer Sandbox Mode
  • Update any existing Purchases
  • Handle Purchase Responses
  • Store Receipts

For example, the Button-Clicker example starts off by calling an initialize() function which will set up an IAP observer using amzn_w.IAP.registerObserver() and then checks the response object to see if the web app is in debug mode.  If it is an alert box is generated telling the user the app is in development mode.  If not it will check for updated Purchases.

Finally, the function sets up handlers for Purchase Response and Purchase Updates Response objects.

// Setup

function initialize() {
    loadPageState();
    amzn_wa.enableApiTester(amzn_wa_tester);
    refreshPageState();

    // Setup button press handlers
    $("#theButton").click(function() { buttonPressed(); });
    $("#redButton").click(function() { redButtonPressed(); });
    $("#greenButton").click(function() { greenButtonPressed(); });
    $("#blueButton").click(function() { blueButtonPressed(); });

    // Ensure we can call the IAP API
    if (amzn_wa.IAP == null) {
        console.log("Amazon In-App-Purchasing only works with Apps from the Appstore");
    } else {
        // Registers the appropriate callback functions
        amzn_wa.IAP.registerObserver({
                 // Called the the IAP API is available
                'onSdkAvailable': function(resp) {
                    if (resp.isSandboxMode) {
                        // In a production application this should trigger either
                        // shutting down IAP functionality or redirecting to some
                        // page explaining that you should purchase this application
                        // from the Amazon Appstore.
                        //
                        // Not checking can leave your application in a state that
                        // is vulnerable to attacks. See the supplied documention
                        // for additional information.
                        alert("Running in test mode");
                    }

                    // You should call getPurchaseUpdates to get any purchases
                    // that could have been made in a previous run.
                    amzn_wa.IAP.getPurchaseUpdates(state.lastPurchaseCheckTime != null ?
                            state.lastPurchaseCheckTime : amzn_wa.IAP.Offset.BEGINNING);
                },

                // Called as response to getUserId
                'onGetUserIdResponse': function(resp) {},

                // Called as response to getItemData
                'onItemDataResponse': function(data) {},

                // Called as response to puchaseItem
                'onPurchaseResponse': function(data) { onPurchaseResponse(data); },

                // Called as response to getPurchaseUpdates
                'onPurchaseUpdatesResponse': function(resp) { onPurchaseUpdatesResponse(resp);
            }
        });
    }
}

$(function() {
    initialize();
});

Once initialization is done you can make purchase calls by passing in your SKU title.  The example code here is making a call to purchase the more “sample.clicks” SKU.

function buyClicks() {
    if (amzn_wa.IAP == null) {
        alert("You are out of clicks, however Amazon In-App-Purchasing works only with Apps from the Appstore.");
    } else if (confirm("Buy more clicks?")) {
        amzn_wa.IAP.purchaseItem("sample.clicks");
    }

The purchaseItem function will return a response object you need to handle and check for success or failure.

// purchaseItem will cause a purchase response with one receipt
function onPurchaseResponse(e) {
    if (e.purchaseRequestStatus == amzn_wa.IAP.PurchaseStatus.SUCCESSFUL) {
        handleReceipt(e.receipt);
    } else if (e.purchaseRequestStatus == amzn_wa.IAP.PurchaseStatus.ALREADY_ENTITLED) {
        // Somehow we are out of sync with the server, let's refresh from the
        // beginning of time.
        amzn_wa.IAP.getPurchaseUpdates(amzn_wa.IAP.Offset.BEGINNING)
    }
    refreshPageState();
}

If it gets back a status of PurchaseStatus.SUCCESSFUL it will handle the receipt returned in the response object like so: 

// purchaseItem will cause a purchase response with one receipt
function onPurchaseResponse(e) {
    if (e.purchaseRequestStatus == amzn_wa.IAP.PurchaseStatus.SUCCESSFUL) {
        handleReceipt(e.receipt);
    } else if (e.purchaseRequestStatus == amzn_wa.IAP.PurchaseStatus.ALREADY_ENTITLED) {
        // Somehow we are out of sync with the server, let's refresh from the
        // beginning of time.
        amzn_wa.IAP.getPurchaseUpdates(amzn_wa.IAP.Offset.BEGINNING)
    }
    refreshPageState();
}

In this Button-Clicker example we are setting a Boolean value to true based on a successful purchase.  In a real web app you would want to save the purchase receipt to local storage or back to your own cloud storage so you can verify purchase receipts in the future.

Using the SDK Tester App

If you are running in the development Sandbox Mode we mentioned above calls to the Amazon Services will go through the local SDK Tester App instead of to the Amazon Cloud. 

This allows you to simulate purchasing SKUs in your web app without having to spend any actual currency.  You have the option to test a purchase inside the browser itself using the included Amazon Service JavaScript Libraries.

In this scenario you need to ensure your JSON file holding the SKUs is located in the same folder as you web app.  If you want to test the In-App Purchase on a device you can do so using the SDK Tester tool and a JSON file that has been copied to the SD Storage.

For a complete video walkthrough of the purchase process and SDK Tester tool you can watch the following screencast on our Youtube Channel.

Conclusion

By utilizing the Amazon In-App Purchasing API for JavaScript you are able to quickly implement and test purchases through your existing web app.  Customers can take advantage of in app items, subscriptions and entitlements you might offer all through the secure Amazon checkout process.

Be sure to check out our HTML5 Web App materials on the developer portal to get started today!

-Dave (TheDaveDev)

 

 

January 08, 2014

David Isbitski

HTML5 Web Apps: Tips on Acquiring Customers in the Amazon Appstore

We want to start the year off by focusing on getting your Web Apps noticed in the Amazon Appstore, so you have the best chance of acquiring new customers.  There are a few easy steps you can take to so that your apps, whether web or non-web apps, are more appealing to first time downloaders.  This includes ensuring you have quality screenshots and promotional images, detailed product descriptions, an easy way for customers to review or share your app, as well as a way for customers to discover your apps outside of the Amazon Appstore.  Amazon also offers unique ways to help your Web Apps get noticed including weekly promotions for the top Web Apps in the Appstore as well as access to Appstore Developer Select.   

Appstore Developer Select

All Web Apps submitted to the Amazon Appstore will be automatically entered into for Appstore Developer Select, if they meet the program requirements.  This program helps get your Web Apps discovered and gives you more opportunities to boost your sales and revenue.  As a developer with one or more qualifying apps, you will receive the following benefits:

  • Enhanced Merchandising to Improve Discovery: Your qualifying apps will receive 500,000 free mobile ad impressions across the Amazon Mobile Ad Network. We’ll provide enhanced merchandising for your apps in a dedicated section on the Amazon Appstore home page and consider your apps for advertising on Kindle Fire.
  • Amazon Coins Rewards to Customers to Improve Conversion: Consumers purchasing your app or in-app items in your app will receive up to 30% of the purchase price back in Amazon Coins. We’ll boost customer acquisition by rewarding first-time purchasers of Select paid apps and in-app items with an extra 250 bonus Coins.
  • 25% off AWS Services to Help You Scale: You will earn 25% credit back on qualifying purchases of Amazon Web Services (AWS) products, up to a maximum $500 credit per year.

You can check the status of your eligibility by going to the My Apps section of the Apps and Services Tab in the Developer Console.
 

 

You can click on View Report to see which items your App has passed on and which items you need to update in order to become eligible.


 

Once your app has been enrolled in Appstore Developer Select you will also have the option to view the Ad Campaign that has been set up on your behalf.
 

 

Optimizing App Details

The title and description of your app is like the front door of a building.  Customers will never know what’s inside until they knock and walk inside.  By writing an effective description you can change your app from the spooky abandoned house on the corner to an enticing new shopping mall just waiting to be explored.

 

The keywords section will be how customers find your app when searching the Amazon Appstore so make sure you chose relevant discoverability terms. 

In addition to the App details you can also select a Content Rating for your app letting customers know what to expect.

Be sure to read our previous blog post with tips on effective title and description for your apps here.

High Res Screenshots and Multimedia

Your Web App submission will need to provide screenshots of your app running as well as an optional video.  You should create and upload both a 114x114 icon and a 512x512 icon, which will be used for the app list and carousel respectively.

 

In order to take the screenshots of your app running you will need to use the Web App Tester program on a Kindle device (emulators are not currently supported) and use the Kindle built in screenshot button combination.  The button sequence for each Kindle device can be found here.

You will need to next copy the screenshots off of the Kindle device and uploaded to the developer portal.  

On windows simply plug in your Kindle device and open File Explorer to Internal Storage > Pictures > Screenshots.

 

For Mac OSX you will need to use the Android File Transfer Tool and navigate to Pictures > Screenshots.

 

While you are only required to submit three screenshots, having additional screenshots as well as a promotional image is recommended and will help to increase the chance for downloads.  You can also include an optional Video showcasing your Web App.

 

You can get additional information on taking screenshots of your Web Apps via the official developer documentation  here.

App Badges

Amazon also offers App Badges you can include on your Website and customer communications such as email blasts.

  

These Badges are available in a variety of languages and will further increase potential download traffic to your app by referring customers who are already interested in your products or have come across your website. 

For full details on using App Badges be sure to check out the documentation here.

Conclusion

Building an audience for your apps and connecting with new customers is an important concern for most developers.  By following the steps listed here you can ensure a higher chance of getting noticed.  The more customers who see your app the greater the chance of increased downloads, more reviews and eventual promotion inside the Amazon Appstore.

Got a great HTML5 Web App in the Amazon Appstore?  Looking to get promoted?  Why not tell us about it!  You can Contact Us directly and let us know. 

 

-Dave (@TheDaveDev)

 

December 19, 2013

David Isbitski

Starting today all Web App submissions to the Amazon Appstore now support Amazon Device Targeting.   While it is possible to detect and optimize your mobile websites server side, you may decide you only want to target your Web Apps to specific devices.  Web App submissions to the Amazon Appstore now allow the same device targeting capabilities that Android submissions do.  This means you can elect to make your Web Apps available for download on Kindle Fire, Kindle Fire HD, Kindle Fire HDX, general Android (all non-Amazon) devices or any combination of these.  

By enabling device targeting within your individual Web Apps you can tailor your app experience to the specific screen size, density, and capabilities of Kindle devices.  For example, you may decide to target only devices capable of the Amazon Webview (Kindle Fire 2nd generation and up) giving your Web Apps native-like speeds on Kindle devices.

What has changed?

In the previous version of the developer portal you did not have the option of choosing the device on which devices your Web Apps would be available.  By default your Web Apps would run on all Kindle Fire devices as well as Android capable devices. 

As of today, a new Device Support section has been added that will allow you to target any or all of Web App capable devices you choose.

Enabling Device Targeting

To enable Device Targeting in your Web Apps simply navigate to the Apps and Services, My Apps section in the developer portal, click on the title of your Web App, and then select the App File(s) tab.

You can then select the individual devices you want to target.  By default we will enable all Web App capable devices so be sure to uncheck any devices you specifically do not want to support.  Once you click the Save button you will find a new list of all the devices you have selected to support.

That’s it!  By following these few steps you now have more control over which devices your Web Apps will run on, giving you the option to tailor your app experience to the capabilities of each device.

 

-Dave (@TheDaveDev)

 

December 18, 2013

David Isbitski

We recently launched the Mobile Associates API (MAA) for Amazon Appstore (including Kindle) and general Android devices. Since the launch, the API has been successfully integrated in hundreds of Android apps and has helped generate incremental revenue for developers. Mostly, developers use MAA to complement revenue generated from mobile ads. Using MAA, you can sell real products from the millions of items at Amazon, whether physical (i.e. toys, clothing) or digital (i.e. eBooks), from inside your apps while earning up to 6% in advertising fees from those purchases.  With wide variety of the Amazon product catalog, there are probably many items that are relevant to your users. Plus, you have complete control over the products you want to promote and the in-app user experience. 

In this post, we will show how to build “Relevant products” experience using Mobile Associates API. In this experience, you can offer contextually relevant products in your app by specifying a search term and direct customers to mobile optimized Amazon search result page. Customers can browse through the search results page, select products, and complete the purchase after signing in to their Amazon account. You earn advertising fees equal for qualifying purchases made during that session. Most developers can build this experience in 30 minutes.

“Relevant Products” Experience

For developing other experiences, please visit Amazon Mobile Associates API

Steps to Integrate                                                                                                  

1.       Identifying relevant products to promote

2.       API code integration

3.       Testing the app

Identifying relevant products to promote

Mobile Associates API provides four parameter, searchTerm, product category, Brand, and SortOrder, to search and promote most relevant products to your app users on search landing page. Please see the available product categories and compatible sorting and filtering options here.

To identify relevant products, begin by identifying the most relevant product categories based on your app category and your app user’s demographics. You can also use different product categories in different sections of your app.

Once you have identified the relevant product categories, identify a relevant searchTerm to find relevant products within your chosen categories. Now go to Amazon.com and search for products using searchTerm within your chosen categories. App users will see this list of products when using your app. Refine your searchTerm to identify the list of products your users are most likely to purchase. These items may not be the highest value item available under the given category. For example, most app users are unlikely to buy the most expensive running shoes.

You can also sort these items in different orders. We recommend sorting them by “relevance”. You may consider other sortOrder such as “highest to lowest price” under special circumstances. You can also specify “brand” as a filter if you believe that your app users are more likely to buy a certain brand.

Once you have identified the products you want to promote, you can use the appropriate searchTerm, product category, Brand, and SortOrder in the APIs to promote the relevant products.

Example: If your app belongs to the fitness category, you can pick product categories such as “Health and Personal Care” to promote vitamins, “Shoes” to promote running shoes, or even “Books” to promote fitness related books. You should promote context appropriate products such as barbells or protein supplements to a person who does frequent weight training. Use “men’s running shoes” in shoes category if the app user is male. You should refine the searchTerm based on your conversion rates and the products your users are purchasing.  Promote brands which are popular in your app user’s geographic location. For example, Adidas is a very popular brand in Germany.

API code integration

Update the Android Manifest

Making requests to the Amazon Mobile Associates API requires the INTERNET permission. These permissions need to be declared outside of the <application> tags in yourAndroidManifest.xml file.

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Initialize the API

In your Activity.onCreate(), initialize the API by calling AssociatesAPI.initialize(config) using your Application Key.

protected void onCreate(final Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   AssociatesAPI.initialize(new AssociatesAPI.Config(APPLICATION_KEY, this));
}

To get the Application Key, log on to the developer portal, click on the "My Apps" tab and then select an existing app or click on the "Add a New App" button. When creating a new app, just fill in the "App Title" and "Form Factor" fields and click the "Save" button. The next screen will show the unique Application Key value, which is a 32-character globally unique alphanumeric string that is used to identify your app. The same Application Key can be used across platforms, but each distinct app must have a unique Application Key.

Direct to Amazon Search Result Page

To direct customers to an Amazon product search results page, construct an OpenSearchPageRequest by specifying the search keyword and pass the search request to the LinkService.openRetailPage method.

String searchTerm = "running";
String category = "Shoes";
openSearchPageButton = (Button)findViewById(R.id.open_search_page_by_term_button);
openSearchPageButton.setEnabled(true);
openSearchPageButton.setOnClickListener(new View.OnClickListener() {   

    public void onClick(View view) {
       OpenSearchPageRequest request = new OpenSearchPageRequest(searchTerm, category);
       try {
           LinkService linkService = AssociatesAPI.getLinkService();
           linkService.openRetailPage(request);
       } catch (NotInitializedException e) {
               e.printStackTrace();
       }
   }
});

For more details on building “Relevant products” experience, please visit the Amazon Developer Portal.

Testing the app

Once you have integrated the MAA APIs in your app, you should test your app by clicking through MAA links and validating that the users are presented with the relevant products. We also recommend that you validate application id and that the app has INTERNET permission enabled before publishing the app.

 

 

December 09, 2013

David Isbitski

The Amazon Mobile App Distribution program enables you to distribute your existing web apps on Kindle Fire and select Android devices in nearly 200 countries across the globe (including the US, Canada, UK, Germany, Spain, Italy, France, Brazil and Japan). 

Almost any mobile friendly website you are hosting today can be run as a Web App.  This means all of the HTML5, JavaScript, and CSS code you have built today can be made available as an App in the Amazon Appstore

In the recent Webinar on Submitting HTML5 Web Apps to the Amazon Appstore, we covered how to get your existing web apps onto actual devices and debug and test them.

You can debug your HTML5 Web App in two different ways.

•      You can use your favorite IDE or debugging tools for normal Web App development like you are already doing. 

•      Or, you can optionally use the Chrome DevTools to debug your web app using a Kindle Fire or an Android device running the Web App Tester Tool.

Note: The Chrome DevTools, the Chrome Browser installation tool, the Android SDK and certain other development tools are provided by third parties, not by Amazon.

Setting up your Debug Environment

The Chrome Developer Tools are freely available from Google and included in all the latest versions of the Chrome Browser.  Simply select the Chrome menu at the top-right of your browser window, then select Tools > Developer tools to begin debugging.  You can get additional information on installing the tools off the Chromium blog.  The Chrome DevTools use the Android Debug Bridge (adb), part of the Android SDK tools, to communicate with the web app from your computer.

Next, we will need to install the Web App Tester Tool from the Amazon Appstore.  This tool will allow us to create a bridge to our computer over USB or WiFi. 

Simply swipe from the top of the device (if on a Kindle Fire device make sure you tap the full screen handle on the bottom of the screen to open the status bar) and then swipe down from the top of the screen to display the Quick Settings Notification Area.  Once there you will have the option to connect over either USB or WiFI.

In this example I have selected WiFi and am given a url I can put into my browser to connect the Chrome Dev Tools to that running app.

Here is a screenshot of a Kindle Fire running my Web App with the Chrome Debug Tools showing the source for my app.  This enables me to now select actual <div> tags now in the html code via Chrome on my computer and see those <div> tags being highlighted on my actual device (as in the example below).

Conclusion

By utilizing the free Chrome Developer Tools and the free Web App Tester tool we are now able to debug our Web App on an actual device in real time.  This includes everything you would expect from the Chrome Developer Tools, like real time resource monitoring, the ability to view our html source and a JavaScript console.

For a complete walkthrough of the steps described here you can watch the short screencast below as well as checking out the web app debug documentation on our developer portal here.

 

-Dave (@TheDaveDev)

 

November 19, 2013

David Isbitski

Over the last couple of years since our Amazon Appstore launch, we’ve talked with many unique and inspiring developers. Along the way we’ve learned quite a bit and wanted to pass some of those learnings back to our developer community. So to that end, we are excited to continue our Developer Spotlight series. This series will highlight developers’ experiences building apps, ranging from what inspires them and how they’re delivering innovation to consumers to the results they’re achieving.

For today’s spotlight, we’re excited to chat with one of the co-founders of ZeptoLab, a global gaming company whose game Cut the Rope has been an instant success since its debut in October of 2010. The game remains a top app throughout mobile markets, browsers and desktops, and has been downloaded more than 400 million times to date.

Below is our interview with Zeptolab co-founder and CTO, Efim Voinov.

Why did you start Zeptolab?

Creating games was a hobby for my brother and me since early childhood. We’ve started with the games for ZX Spectrum in the early 90s, switched to PalmOS in the 2000s, and jumped into iOS and Android development since the first days of those platforms. At that time we already had experience in several gaming companies, and thought it was the right time to start something on our own. The new platforms offered exciting opportunities for independent developers, and we believed they shouldn’t be missed.

When did you start Android development for Cut the Rope?

The original version of Cut the Rope was released for iOS only, since there were only two of us developing full-time, and we had to concentrate on a single platform. After the game was out, we started to receive feedback from the players that they would like it on other platforms, and Android was the most requested one. Once the company had grown enough, we started developing it and about eight months after the release of the original we had the Android version. The version for Amazon Appstore was released at the same time, and required very little adaptation.

What changes did you need to build into the game to make it available for the Amazon Appstore?

Since we released Cut the Rope, we’ve created other titles, like Cut the Rope: Time Travel, Cut The Rope: Experiments, and Pudding Monsters. All of our titles are available in the Amazon Appstore. The process of porting the app for Amazon is very easy; we simply swap out billing API’s for the Amazon API for billing, which is something we do for all platforms we sell our app on. In addition, we are using GameCircle to handle leaderboards and achievements for games in the Amazon Appstore, which we have built in.

What’s it like to work with Amazon?

We think the Amazon API’s are very well thought through, the implementation is efficient and it’s easy to find information on how to use them. Having this ease of use is very important to us because we have lots of different versions of the games and really value the quick turnaround time to support games. In cases where we need more information the documentation level for Amazon API’s is very good and compared to others it’s in many cases above the competition. We don’t have to communicate with the Amazon team a lot in terms of understanding how to implement.

We also really appreciate your developer relations team. Having these relationships with the team helps us plan for the future, so we can plan for our business and consider the best way to implement new API’s and improvements into our games. The level of technical features being brought to market is impressive.

What are you looking at doing next with the Amazon Appstore?

In our current titles we are actively using IAP and this is proving to be quite successful for us in the Amazon Appstore. They currently bring us more than 40% of our revenue, and this figure is growing. In general, our cumulative income in the Amazon Appstore is doubling every year, and we are looking forward to increasing this trend in the future. With the latest release of the Mobile Associates API, we are looking at various opportunities to sell physical goods for our games.

Do you have any tips and tricks for developers building mobile games and applications?

One of the things that we learned is that it’s really important to minimize the routine tasks during development, and optimize the process as much as possible. That’s why we have invested quite a lot of time into our own framework, which includes different tools that automate various tasks. For example, we have an animation system, which allows us to automatically export animations created in the Adobe Flash directly to the game.

We also try to keep things as abstract as possible while designing a native OpenGL application for the Android platform. We try not to rely too heavily on a list of pre-defined resolutions, even if the list is extensive, because hardware specs are always changing. Instead, we try to invent a system for adopting current graphics to any imaginary screen proportion and only switch version for graphic assets depending on a real resolution. The one constant that does not change is the size of a user’s finger. We try to estimate an optimal physical size for a gesture and calculate using real measures like dpi and screen size in inches on every device.

 

November 14, 2013

David Isbitski

We’re excited to announce a new tool for developers called the Developer Promotion Console (DPC). DPC gives you a self-service way to manage the pricing of all your apps with pricing campaigns. Want to run a 24-hour special holiday sale or discount all of your apps to celebrate the launch of a new game? It’s now much easier.

The Developer Promotion Console is available just in time for the holidays and it’s a great time run a special offer. In 2012, we saw a 50% increase in the number of app downloads during Thanksgiving week as compared to an average week. During ‘Digital Week’ 2012, the week after Christmas, customers purchased and downloaded 600% more apps than any other week during 2012.

What is it?

DPC allows you to create campaigns that run from 24 hours to any amount of time you choose, up to a maximum of 27 consecutive days. Pricing is worldwide so you can set discounts by Amazon marketplace. Best of all, you can run campaigns for the price of your mobile apps and any of your mobile in-app items.


 

What does it include?

Set temporary price drops: Create price drop promotions for your mobile apps and mobile in-app items to incentivize your customers to purchase your products. 

ReportingEasily view your ROI during your price drop promotion. Compare the performance of your promotion with your performance prior to the promotion.

Ease of use: Creating a price drop promotion is simple. Typically, it will take no more than five minutes and three steps to go from start to a scheduled promotion.

How do I get started?

Inside of the developer console, you will see a new tab called ‘Promotions.’ Clicking on the tab will display a new button to create a ‘Price Drop,’ as well as a list of your existing campaigns.

You will be able to set a discount for any of your apps and in-app items available for purchase.

For this example, we are going to create a new campaign for one app and set a price discount for the upcoming Thanksgiving holiday. We start off by giving the campaign a name, in this case the ‘Thanksgiving Holiday Promo’, and then selecting the app (currently blocked out in the image for privacy reasons) that we want to include in the promotion.

We then select the Amazon marketplaces we want the campaign to run in. Since Thanksgiving is a US holiday, we will only run it in the amazon.com marketplace.

Next, we can choose the dates for our campaign, with the minimum being one day and the maximum being 27 consecutive days. We are going to run this campaign for Thanksgiving Day only, on November 28, 2013.


We then click ‘Next’ and define the discount we want to apply to our app. We are going to do a 50% off sale with the price being rounded to the nearest 9. Selecting the amazon.com marketplace from the dropdown shows us that the list price for our app will go from 2.99 USD to 1.49 USD when the campaign is active.

Again, note that the app name in the above screenshot has been hidden in this example for privacy reasons.

Clicking ‘Next’ will give us a final confirmation of our campaign’s details. We have the ability to edit any of the sections before hitting ‘Submit’.

We’re finished. Our campaign is now ready to run on Thanksgiving Day in the amazon.com marketplace, where our app will be available for sale at 50% off.

How much did we increase sales?

Rather than guessing if we made more money with increased sales at a discount, the DPC reports will show us our net results of our campaign sales compared with our normal app pricing.

To view the results of the campaign, we just click on the ‘Promotions’ tab again (the same one we used to create our campaigns), and we will see a list of the campaigns that have run or are planned.

In the above example, we can see that we ran a campaign from October 29th through November 3rd (campaign name hidden for privacy reasons), and we have the option to click ‘View’ to see the results of that campaign.

We can see that during the campaign period, we sold 21 units of our app at 50% off.

The ‘Effect’ column takes the guesswork out of the ROI for our campaign and gives us the net results. Based on sales during the period of time before the campaign ran, we have increased our revenue for the period by 84%, resulting in a nice boost.

We can also click on the CSV icon, which will create a detailed view of daily sales during the campaign period and compare them with previous run rates.

Conclusion

The new Developer Promotion Console helps you manage discounted pricing which can lead to increased sales and customer engagement. Creating a new campaign is easy through the Developer Promotion Console, at no cost to you. With detailed reports that will show you the ROI of your campaign, you can feel more confident experimenting with discounts on your apps and in-app items.
 

-Dave (@TheDaveDev

 

November 12, 2013

David Isbitski


Update – 12/18/13 - As part of our continuing efforts to simplify the Amazon Appstore for developers we have loosened the requirement for SSL in Web Apps.  The practice is still recommended but not required to pass certification for certain scenarios such as Geolocation and Authentication.  You can view additional details on using SSL in your Web App here.

Following up on the latest in a series of webinars covering Amazon devices, game services, and mobile applications, here’s a list of questions we collected during and after our presentation on HTML5 Mobile Web Apps.

Q: How much does it cost to publish my Web Apps?
A: There are no developer registration or subscription fees. There is no cost to publish your Mobile Web Apps with Amazon and all of the corresponding services, such as In-App Purchasing, are free to use.

Q: How are apps currently published, do I need to have a Website?
A: Currently Web Apps get distributed by having you host all of your current on your own Web Infrastructure. You are free to use any hosting service and we walk through an AWS EC2 Micro Instance in the recorded webinar.

Q: Do I need to make any changes to my Website?
A: We support HTML5 and responsive web design for all Web Apps. The only required change is that you create a web-app-manifest.json file and return the JSON correctly. This ensures you are the owner of the website. We also highly encourage the use of SSL.

Q: How do I test my Web App?
A: Since the Web App application is the same HTML5 code as your Mobile Web site you can do all of your testing through a browser like you would normally or your favorite Developer IDE (WebStorm, Eclipse, Sublime, Visual Studio, etc.)

Q: How do I test my Web App on a Kindle Fire or Android Device?
When you are ready to see the website running on a device you can install the Web App Tester from the Amazon Appstore. The Amazon Web App tester will run on Kindle Fire and select Android devices.

Q: How do I debug my Web App on a device?
A: The Web App Tester tool uses ADB to allow debugging of your Web App through the Chrome Dev Tools. We do a complete walk through of this process in the recorded webinar and you can get more details on our SDK website here.

Q: What HTML5 features are currently supported?
A: The current version of Web Apps is built on the open source Chromium project version 25. You can view the full list of supported features here.

Q: Can I lock the device screen orientation?
A: Yes for a full list of best practices around device orientation and other capabilities check out the SDK documentation here.

Q: How do I take screenshots of my Web App for submission to the Appstore?
A: You will need to run the Web App Tester on a Kindle Fire device and hold down the power button + volume down. Once you have taken the screenshot you can find it in your pictures\screenshots folder. You can read more details here and we walk through this process in the recorded webinar.

Q: Where can I find the current version of the Amazon Web App API JavaScript file?
A: The current Web App API library is hosted here and available for viewing or inclusion in your own web projects. The recorded webinar includes a walkthrough and summary of this file.

Q: Can I use In-App Purchasing with my Web App?
A: Yes, you can choose to implement your own In-App Purchasing or you can take advantage of the Amazon In-App Purchasing API for JavaScript. We walk through setting up the IAP API for JavaScript in the recorded webinar.

Q: Are Web Apps eligible for the Amazon Developer Select program?
A: Yes, Web Apps are eligible for Amazon Developer Select and you will automatically see the status for each of your apps under the My Apps section in the developer portal.

 

-Dave (@TheDaveDev)

 

October 17, 2013

David Isbitski

Excited about the new Kindle Fire tablets?  Can’t wait to get your hands on them to run your app?  We are happy to announce the emulators for Kindle Fire HDX 8.9”, Kindle Fire HDX 7” and Kindle Fire HD 7”.  For a smooth and quick experience to create and configure AVDs (Android Virtual Devices), we are also announcing the beta Amazon AVD Launcher.

Just how fast?

Via Abu Obeida Bakhach, Kindle Developer Programs Product Manager…

“Let’s be clear, Android emulators have a bad reputation. They are slow to start and use. Keeping that in mind, running the x86 system images with a capable GPU and the right virtualization options, you can run apps at near-device speed. But speed alone isn’t enough. We have built the third-generation emulators directly from Fire OS source code to provide the most accurate Kindle Fire emulation.

With Kindle Fire HDX sporting best-in-class hardware, providing true-to-device emulation requires a development machine with an equally solid graphics configuration. Both x86 and ARM system images take full advantage of the GPU. However, the optimal emulation experience is through x86 system images.

To demonstrate how much faster the x86 system images are than the ARM system images, we looked at the performance of Air Patriots, a game from Amazon Game Studios. This is a 74-MB APK that includes complex gameplay code along with a large set of assets. We ran the game on the Kindle Fire HDX 7” emulator, as well as on an actual Kindle Fire HDX 7” tablet.  We hosted the emulator on a Windows 7 machine with a quad-core 3.10 GHz processor, 8 GB of memory, and AMD/ATI Radeon R6570 graphics card.

The result? Fast startup and response time for the x86 system image. The gameplay was nearly identical to that of the tablet.” 

Here are the stats:
 


 

Getting Started

You should first set up the x86 system images for the Kindle Fire emulator as a faster alternative to ARM-based emulation, if your development computer running Windows or OS X has an Intel processor that supports virtualization extensions (VT-x). To determine the capabilities of your Intel processor, visit http://ark.intel.com/.

Typically, the better the overall processor performance, the better the emulator performance.  The performance of an x86 system image can be comparable to a physical Kindle Fire tablet when the emulator is running on a development computer that has a sufficiently capable processor and GPU. Using an x86 system image eliminates the translation of ARM to x86 instructions that occurs at runtime when using the ARM-based emulator.

You can read the full documentation on Setting up Intel® Hardware Accelerated Execution Manager (Intel® HAXM) here.

If you have any issues downloading through the Android SDK Manager here is a direct link I have found helpful in my own installations.

I am using a Macbook Air for this blog post but all of the Intel HAXM drivers and Android AVD work just as well on Windows.
 




Once you have the HAXM drivers successfully installed you will need to make sure you check of Intel x86 support for each API Level/Kindle revision you want to use.  This is done through the Android SDK Manager like you would for any other Android Emulator image.

 


 

You will know that the x86 hardware emulation is successfully running when you first start one of the new emulators as seen below.
 


 

Choosing the correct Kindle Fire Images in the Android SDK Manager

Once you have the Intel HAXM driver installed and working correctly you will need to download the Kindle Fire Images from the Android SDK Manager by following the directions in the Setting Up Your Development Environment faq.

Be sure to select the appropriate Kindle generation under the corresponding Android API Level.  For example, the new Kindle Fire HDX’s are the third generation of Kindle Fire devices and support Level 17 of the Android API.

Android 4.2.2 API 17:

  • SDK Platform
  • ARM EABI v7a System Image (emulator prerequisite for ARM system images)
  • Intel x86 Atom System Image (emulator prerequisite for x86 system images)
  • Kindle Fire HD 7" (3rd Generation) (ARM and x86 system images for emulator)
  • Kindle Fire HDX 7" (3rd Generation) (ARM and x86 system images for emulator)
  • Kindle Fire HDX 8.9" (3rd Generation) (ARM and x86 system images for emulator)

Also, do not forget the Extras section as I have seen some developers miss the Kindle Device definitions specifically, which will result in blank entries in the Amazon AVD Launcher.

  • Extras:
    • Kindle Fire Device Definitions
    • Kindle Fire USB Driver (not applicable for OS X)
    • Android Support Library
    • Intel x86 Emulator Accelerator (HAXM) (emulator prerequisite for x86 system images)
    • Amazon AVD Launcher

Running the new Amazon AVD Launcher

Now that we have full Intel x86 image support and working Kindle Fire Images form the Android SDK we need to set up the Amazon AVD Launcher.  You can read the installation faq here for step by step instructions.

The Amazon AVD Launcher tool simplifies the process of creating an Android Virtual Device (AVD) by allowing you to select the device you want to emulate and automatically filling in the correct settings.  As a result, the Amazon AVD Launcher is a more reliable way of configuring the emulator than manually configuring it with the Android AVD Manager.

You will find the new Amazon AVD Launcher executable in the Android sdk/extras/Amazon/ folder of your local Android SDK installation.  Upon running it for the first time you will be treated to a graphical list of all the Kindle Fire Images you have installed and their associated specs as seen below.
 


 

Click the Create AVD button or switch over to the Amazon AVD tab and select New to create a new image.  You will notice the options are much more streamlined now and selecting the appropriate Kindle Fire image will automatically set all of the options for you.  No more guess work!
 


 

You can name the new AVD image whatever you chose.  Make sure that you have the Intel x86 image support selected and that Host GPU is clicked.
 


 

I also recommend clicking on the Advanced Options tab and selecting both My Computer Keyboard for Keyboard and Webcam (Webcam0 for my Macbook Air as seen in the screenshot) for the front camera.  This will be sure to use your computer’s keyboard instead of software emulation as well as its webcam
 

 

You can leave all of the Memory settings at the default levels they have already been set to the most optimized for the image automatically.  You can then start the image by clicking the Start button in the Amazon AVD Launcher and will be greeted with a couple of launch options, mostly associated with how you want to fit the emulator on your screen and the ability to wipe the virtual machine’s data.
 


 

Congratulations, you now have a fully functional Kindle Fire image running at hardware-virtualized speeds!
 


 

Do not forget if you are using an existing code base to change your target emulator from your previous AVD to the new Amazon AVD image you have created as seen below.
 


 

Conclusion

We found that 80% of developers ran into trouble using the Android Virtual Device Manager to create, configure and launch AVDs.  Instead of fiddling with build targets, guessing API levels, RAM and other settings, we know you want to instantly create and launch an emulator and just focus on developing and testing your app.

At Amazon, we believe that granting developers a choice of tools ensures a more flexible and productive mobile development experience. By preserving the Android definition of an AVD, the Amazon AVD Launcher is fully compatible with the Android Virtual Device Manager, allowing Kindle Fire AVDs created by either tool to be launched on the other.

Warning: Once we loaded games on emulators with the right GPU emulation and x86 system images, we had problems pulling away testers hooked on playing at device-like speed!

Please provide feedback at kindle-sdk-beta@amazon.com or the Kindle Development Tools forum.

 

-Dave (@TheDaveDev)

 

Want the latest?

appstore topics

Recent Posts

Archive