Developer Console
Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts

Archive

Showing posts tagged with monetization

July 18, 2014

David Isbitski

Harpan, the developer of popular games Solitaire, FreeCell, Sudoku and Pyramid Solitaire, distributes more than 12 gaming apps on iTunes, Google Play and the Amazon Appstore. Harpan was interested in a cross platform mobile ads solution, which can provide the needed earning lift without compromising their user experience. In order to focus more on app development, Harpan needed a solution that was easy to integrate and could help track app performance.

Harpan decided to use the Amazon Mobile Ads API for monetizing their apps across platforms. Tim Oswald, co-founder and CEO of Harpan shared that Amazon was their solution of choice.  The Amazon Mobile Ad Network delivered higher eCPM, provided a great experience for their users with high-quality tailored ads, and enabled app optimizations through actionable performance tracking and reporting.

20% higher* eCPM versus other ad networks

Harpan’s earnings increased with the Amazon Mobile Ad Network.  The biggest factor driving this was the payment structure.  Amazon pays on ad impressions served instead of clicks on ads. “With the Amazon Mobile Ads API, we are consistently getting 20% higher eCPM on our Android, iOS and Kindle Fire apps compared to other ad networks. We were extremely pleased to see the Amazon Mobile Ads API performing better than other ad networks on iOS, said Tim Oswald.

Macintosh HD:Users:skaush:Documents:Launches:iOS 07152014:Harpan Solitaire Screenshot.png

25% higher* CTR on ads delivered by Amazon Mobile Ad Network

The quality of ads was very important for Harpan to provide a great experience for their users. Tim explained, “While we want to increase our earnings, we don’t want to compromise our users experience. Amazon provides an engaging experience for our users by delivering relevant ads from Amazon and brand advertisers. We are seeing 25% higher CTR on ads delivered by the Amazon Mobile Ad Network compared to other ad networks.”

Easy integration & tracking

Harpan was able to integrate the Amazon Mobile Ads API in minimal time and focus their efforts on app development. Tim shared, “Enabling the Amazon Mobile Ads API in all their apps was very easy and took just few minutes to integrate the API. We really liked the integrated tracking, which helped us in monitoring and optimizing the performance of our apps in real-time.”

To learn more about the Amazon Mobile Ads API check out our Developer Portal here as well as our blog with tips on ad mediation and tracking ad events inside your apps.

*Your results may vary.

 

July 02, 2014

Peter Heinrich

Beta software gets a bad rap. It is usually the first public release and comes as part of the final phase of testing, which means it isn’t always polished and bugs are common. It should be considered more than just a public bug bash, though. A beta serves another important purpose: it is your first chance as a developer to see if the software does its job and meets the need it is designed to meet.

Making Beta Testing Easier

Releasing your application to a community of “beta users” lets you observe unscripted interaction with your software in a wide variety of real-world environments. Managing this kind of release (a “beta test”), though, and collecting the interaction data has traditionally been a logistical chore.

Say we have a mobile game with multiple levels. How should they be presented? The obvious answer is in order of increasing difficulty, but maybe it makes sense to alternate easy and hard levels so players don’t become discouraged. Perhaps they should be arranged in groups, each of which starts easy and grows more challenging as a player advances.

This is the kind of fundamental behavioral question you might try to answer with a beta test. Using traditional techniques, you would code one approach, release it to your beta users, and evaluate its success based on, for example, the number of levels completed or highest level completed. Then you would code the next approach, re-release the updated app, record the user response to the new version, and so on. Finally, you would select the most successful approach for your production release.

There are obvious disadvantages to performing a beta test this way. You must release a new version of your app for each variation you want to evaluate. Beta periods are longer because you must test variations sequentially (unless you manage several different groups of beta users). Test results may be influenced by users’ previous experience, since they won’t necessarily bring fresh eyes to each variation.

For mobile app developers, distributing software to a limited group of users may not even be possible. Once an app is published to an app store—often the only practical way to handle distribution—it is automatically available to everyone using that store. App updates must also go through the store, which means resubmitting a new version and potentially restarting the approval process.

Although everyone agrees that beta testing is important, most developers would also agree it is very time-consuming and difficult to execute.

A/B Testing Simplifies Everything

Amazon’s A/B Testing Service is designed to run in-app experiments, which also makes it perfect for beta tests. A free, cross-platform service that supports iOS, Fire OS, and Android, it can handle multiple tests at once with up to five variations each. You can use it to make app adjustments on the fly without updating client-side code or redeploying your app.

The service also makes it easy to manage beta users, since it has built-in support for user segmentation. This means that you can target your beta test to users matching particular criteria (that you specify), or even run more than one test at once targeting different groups.

The Amazon Developer Console provides an online dashboard from which you can monitor and control all aspects of your beta tests.

Make the App Your Customers Want:  Set Up an A/B Test

We can use Amazon’s A/B Testing Service to address these issues and simplify the testing process. First, we create a project to represent our test.

Next, we identify which users will be included in the test by defining a special segment. Only beta users will see the variations; everyone else will see the default behavior (also called the control).

Finally, we create the actual A/B test we want to run and describe each variation in terms of the variables that connect it to our app. We will evaluate success based on the percentage of time that players complete Level 5 after starting Level 5.

Macintosh HD:Users:cutsinge:Pictures:ABTesting copy.png

The user segment we defined above (betaUsers) will be divided equally, with each subgroup seeing one of the variations we described. We can use the Amazon Developer Console to review the results of our test.

Macintosh HD:Users:cutsinge:Pictures:AbTestingResults copy.png

As the customers in the “betaUsers” segment, play the game data is uploaded to the service is tabulated within an hour. Once the confidence reaches statistical significance (100% in the example above) you can decide how you’d like to react. You can pick the winning variation and make that live for all new users. In this situation, we see that the existing Level 5 design (Variation A) is better than the new level 5 (Variation B) that we’re testing. Somehow, we made the level worse and shouldn’t deploy this particular change to everyone.

Next Steps

Beta testing is an effective way to test different configurations in your app under real-world conditions, but it’s also a good opportunity to evaluate user satisfaction with your app’s basic operation. Using Amazon’s A/B Testing Service, you can easily compare different functional implementations of key features or behavior, allowing you to identify which approach will resonate most with your users.

To learn more about A/B Testing and how you can incorporate it into your app development, see Amazon’s developer website and the A/B Testing Service documentation:

-peter (@peterdotgames)

 

June 05, 2014

Corey Badcock

IDC conducted an Amazon sponsored survey of 360 mobile application developers to understand their key motivators and gather feedback on their experience developing apps for the Kindle Fire platform versus Android and iOS. According to the survey, 65% of surveyed developers say that total revenue on Kindle Fire was similar or better than on other platforms. 76% of surveyed developers say that Amazon helps them connect to new customer segments.

To download the full report, click here.  

65% of Developers Say Total Revenue Similar or Better Than Other Platforms

IDC asked developers who currently build apps for the Kindle Fire to describe the return-on-investment profile of Kindle Fire and compare it to other platforms.

65% of the surveyed developers also say that the Total Revenue achieved on the Kindle Fire is similar to, or even better that, what they experience with other major platforms.  74% of the same developers say that Average Revenue per App/User is similar to or better than other platforms.

76% of Developers Say Amazon helps them Connect with New Segments

Finding new customers can be extremely difficult.  Developers who build apps for the Kindle Fire say:

The Kindle Fire platform can be a significant source of net new business and “reach” for developers at a time when new segments may be difficult to find on competing platforms.

Download the Report

To learn more, click here to download The Case for Developing Mobile Apps for the Amazon Appstore and Kindle Fire report prepared for Amazon by IDC.

 

May 13, 2014

Chengluo

Last year, we launched Amazon Coins in the US, UK, and Germany. As of today, Amazon Coins are available to even more customers in Europe as we are expanding the program to France, Spain, and Italy. We’re giving millions of Euros (100 Coins = €1)  worth of coins to customers in France, Italy, and Spain, so this is a great time to submit new apps to the Amazon Appstore and ensure your existing apps are available for distribution in these countries.

Amazon Coins allows Amazon customers to buy and enjoy Android apps and in-app items at a discount, with savings of up to 10%. As a developer, you are paid whether your apps or in-app items have been purchased with Amazon Coins or another payment method, and you’ll continue to get your full 70% revenue share. Since the launch of Amazon Coins in the US, UK, and Germany, customers have already purchased hundreds of millions of Amazon Coins and are actively using them on Android phones and tablets, including Kindle Fire devices, representing real dollars to developers.

500 Coins for Amazon Appstore Customers

Kindle Fire owners will receive 500 free Coins automatically in their accounts and, for a limited time, users of the Amazon Appstore on Android phones and tablets will receive 500 Coins once they’ve updated the client and downloaded an app. During the promotion, you’ll have additional opportunities to boost your sales while customers enjoy buying apps with their free Coins. We ran a similar promotion after we launched Coins in the US, UK, and Germany, and developers gave us positive feedback about the monetization they achieved in conjunction with the promotion. Here’s what a few of them had to say:

“Sales went up 10-fold (1000%) for about a week during the Amazon Coins promotion and 500% afterwards.” –Barnstorm Games

“We saw a significant increase in revenue after the Amazon Coins announcement. Revenue from Amazon Coins during the launch week was higher than previous week’s revenue. What was also interesting is that our cash receipts also saw a lift from Coins.” — Halfbrick Studios Pty Ltd

 “Our SMS texting and calling app revenues grew more than 300% on Kindle Fire the day after Amazon Coins went live, with a staggering 78% coming from Coins. We’re convinced that this virtual currency makes sense for developers no matter what category their app is in; it certainly does for us.” — textPlus, Inc.

We continue to receive positive feedback from developers about the monetization they see on Amazon and their ability to connect with new customers via Amazon Appstore. Learn what developers like Pixowl, TuneIn, and Toca Boca have to say in our latest developer blog.

No API Integration Necessary

To benefit from Amazon Coins, you do not need to integrate an API. If your apps are already available on the Amazon Appstore and available for distribution to customers in France, Italy, and Spain, you’re already set. If you have new apps and games that are still in development, then you’ll want to submit them soon to take advantage of this promotion. If you have a new Android app, we’ve found that 75% of Android apps we’ve tested just work on Amazon Appstore, with no coding changes required. Test your APK in less than 10 minutes with our drag-and-drop testing tool. It’s also a good idea to ensure your apps are available in France, Italy, and Spain, which you can check from your account on the developer portal.

April 07, 2014

David Isbitski

This quick video will give you an overview of the Amazon In-App Purchasing API.  It will cover how to get started, offer advice on popular In-App items and categories, and cover the process for creating your own In-App SKU catalogs.  Whether you are completely new to In-App Purchasing, or have existing items for sale on other Appstores like Google Play, this video will help point you in the right direction.

April 01, 2014

David Isbitski

PreApps: Improving Monetization through User Feedback

When it comes to monetizing your apps who couldn’t use just a little help? Amazon is consistently looking for solutions to help you simplify the process of attracting new users, increase discoverability, improve IAP performance and grow revenue in your apps and games. While we have built many solutions on our own we know there are a number of solutions outside Amazon that can help increase app revenue and get your apps discovered.

PreApps is one of those solutions, and we are working with PreApps to provide Amazon Appstore developers with discounted offers and services. PreApps connects developers and app enthusiasts, before the launch of an app, to help developers improve app quality and hopefully monetization as a result. The concept is pretty simple – users get access to your apps to help identify bugs and things like UI enhancements and if they like your app, they can help promote it through their social network. More than one-thousand apps have used the service, and we’d like to hear how it works for you..

Free Access to PreApps User Feedback Program

Starting today Developers with a registered Amazon Account can get free access to the PreApps User Feedback program which includes the ability to post your free app, receive customer feedback, access to beta testers, see the number of users asking to be notified when your app goes live and access to PreApps App Analytics.  We’ll be sending a code to all registered developers so keep an eye out for it in your inbox and let us know what you think.

To learn more about PreApps visit their website or you can read what TechCrunch had to say about them here.

-Dave (@TheDaveDev)

 

March 05, 2014

Chengluo

Reaching More Customers and Making More Money Per User

In a previous case study, you heard about the tactics that Big Blue Bubble uses to monetize their free to play (F2P) games. In this study, we’d like to share how June Software increased their app exposure by going from an iOS-only producer to an iOS and Android platform producer, and how their presence in the Amazon Appstore has racked up higher Average Revenue per User (ARPU) than any other app store.

June Software is a small San Francisco based software company founded in 2008. They build casual, arcade games and e-learning games for children. Initially June Software only built games for iOS where they have titles such as Math vs. Zombies and Guess the Movie, which is ranked #3 worldwide and is #1 in Australia.

June + Unity + Amazon Appstore = Less Friction, More Revenue

To grow their customer base, June Software decided to address the Android marketplace. June chose to port their iOS games to Android using Unity. Unity allows them to build their app once and deploy it to multiple app stores, including the Amazon Appstore.

When we asked about their experience on Amazon apps store, June Software Director Products Saurabh Jain said:  “On Amazon, we have seen 2x times the ARPU [we see] from Google Play, and 1.2x [more than] than Apple AppStore. The overall downloads aren’t there yet, but the revenue makes it a very good market for us.”

 

Increasing Time in Games Increases Potential Income

One effective strategy that Saurabh implemented is that they have integrated Amazon IAP and GameCircle features in their games, which increased potential revenue and player engagement. GameCircle includes features such as leaderboards and achievements that keep players engaged and can increase user session time and session frequency, giving uses more opportunities to make IAP purchases. And it works on Android and iOS. This is exactly what June Software needs for their games available for both platforms.

What can you do?

  • To learn more about using Amazon GameCircle in your Unity apps, read this blog post and refer to this documentation.
  • To learn more about using Amazon In-App Purchasing in your Unity apps, read this documentation. To see how Mad Menace Games used the Amazon IAP Plug-In for Unity, read this post.
  • For additional information on Amazon Unity Plug-ins, read this

 

 

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 21, 2014

Mike Hines

Big Blue Bubble is a Canadian development studio out of Ontario.  In the last few years, they have focused on creating free-to-play games for iOS, Android, including Kindle Fire, and Windows Phone. Their latest update to their app My Singing Monsters includes catchy new tunes from Grammy winner Kristian Bush and is not only a big hit with customers, but a big hit on the Amazon Appstore. Director of Development Bryan Davis shares some general strategy and how they generated 10%-15% better average revenue per user and 25%-30% better IAP revenue in the Amazon Appstore.

In-app purchasing: Big Blue Bubble goes for volume

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.

Big Blue Bubble games also use aggressive discounts to be successful.

“Something always needs to be ‘on sale’,” says Bryan. “People like to get discounts, so constantly running the promotions is the way to go.” Bryan recommends letting the promotions run for at least 3-4 days so the majority of your players have a chance to get a discount when they use the app.  

Better ARPU and IAP revenue than other stores

How is this working for Big Blue Bubble? We asked Bryan how well this strategy monetizes on the Amazon Appstore. He stated that: “…the overall revenues per user are just about 10-15% better.” However, “In terms of IAP, Amazon Appstore constantly outperforms other stores by 25%-30%.” 

Pre-Authorized Amazon Customers a Big Help to ARPU

Were there any special tricks or tips Big Blue Bubble used to get IAP to monetize so well on the Amazon Appstore? Bryan noted that: “…the fact that most users already have a credit card on file helps a lot.”

We also asked about downloads, and Bryan said that:

“In terms of download units, Amazon Appstore is still behind Google Play or iTunes App Store. In the Amazon Appstore ARPU is better and customer engagement is about the same.  The Amazon Appstore conversion rate from downloads to installs) is by far the highest and percentage of users with technical issues is the lowest.”

So is it safe to say Big Blue Bubble is happy with their app performance on the Amazon Appstore? “We are very happy with the performance. It is obvious that the user base is growing every day, not only for our game but for the Amazon Appstore as well.”

It’s good to hear that Big Blue Bubble’s monetization strategy is working well on the Amazon Appstore. We asked for any last recommendations, and Bryan had this to say: “Don’t keep [your customers] waiting too long for new content. Keep engaged with your audience at all time.”  We couldn’t agree more.

Learn more about the tools used by Big Blue Bubble:

Amazon Appstore Developer Console

Developer Promotions

Mobile Ads

 

February 13, 2014

Jesse Freeman

The Current HTML5 Landscape

In a world quickly moving toward mobile device adoption, there is a growing pressure for web developers to learn new languages in order to adapt to the ever-changing landscape of content delivery. For the past 16+ years, web has been the king of mass distribution. But now as app stores on mobile devices are driving huge monetization opportunities, how do web developers stay competitive in this new “post PC world”? The key is to understand how you can maximize your web app’s potential in the distribution vs. monetization model.

The Distribution Vs. Monetization Model

As developers look to create new content, be it a web app or native app, they should be thinking about the following model:

 

The distribution vs monetization model.

 

The concept is that the larger your distribution base, the better your chances of monetization are. Along the far side of the x-axis is the native mobile and tablet space, which is fragmented around several different platforms, and the individual platform distribution potential is much smaller. On the flip side, since all mobile devices and computers have web browsers, an online web app’s potential reach is staggering.

The reality of this however has been that even with the smaller distribution of mobile, developers are seeing much higher opportunities to monetize on those devices. On the web, we have seen more difficulty to monetize that content without the help of built-in systems like IAP (in app purchase) or integrated checkout, which are generally available on native devices through their app stores. The ideal solution would be to actually target both demographics, and the only platform we have seen that is capable of effectively doing that is HTML5.

Scaling Your Web App

When most developers hear “scaling a web app” they instinctually think about the backend or server side of things. But over the past year as responsive design has come into its own, we are finally seeing websites that can not only run on desktop browsers but elegantly reconfigure themselves to accommodate all the different viewports users are visiting with.

The most common responsive design resolution breakpoints.

The forethought that goes into building a truly responsive design that flows correctly from desktop to mobile phones is no small task but the opportunity for capturing the largest possible distribution is worth it. Gone are the days of splitting off your web traffic between a mobile only site and a desktop site because the cost of maintaining both grow exponentially. But what about still reaching native app stores?

But What About Still Reaching Native App Stores?

Some of the current solutions on the market for publishing HTML5 content next to native apps have revolved around the PhoneGap/Cordova model. These allow the developer to package the web app and submit it to a native app store. But there is one glaring downside to this kind of distribution; you lose the ability to maintain a single codebase. In an ideal world, you would want to simply redistribute your online app in a mobile store and keep the two in sync. This is some of the thinking behind our HTML5 web app resources for Amazon Appstore.

Own Your Content and Keep it Online

The last thing a developer would want to do is fork a project and end up maintaining multiple code bases to support each platform it is distributed on. So why not just keep your content online where it will get the largest potential for distribution and still submit it to an app store that offers you an entirely new way to monetize it? This is a fairly new publishing model that has been growing more and more popular over the past few years. It offers the best of both worlds since you maintain a single place were your web content can live and you gain the added benefit of being able to distribute your app in a native store. With that distribution comes the potential of increased monetization by simply charging for the app, using IAP or continuing with your current ad based model.

The best part is that you can experiment with this new type of distribution today in the Amazon Appstore with our HTML5 Web App Tester. Simply download the app, point it to your site’s URL and test out how your web app works. From there it’s easy to submit to the Amazon Appstore and begin reaching a whole new audience.

 

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 16, 2014

Peter Heinrich

A/B Testing is about using data to challenge assumptions and test new ideas. Watch this video to hear about the “happy accident” that inspired an important A/B test we hadn’t considered and how it led to an increase in retention and monetization for Air Patriots.

Created in-house at Amazon, Air Patriots is a plane-based tower defense game for iOS, Android, and Fire OS. The development team uses A/B Testing to experiment with new ideas, so I recently I sat down with Senior Producer Russell Carroll and Game Development Engineer Julio Gorge to discuss how they used the service on Air Patriots. They described for me the design choices they tested, how the experiments were constructed, and what benefits they derived from the results.

Check out the conversation to learn how Russell and Julio’s experience on Air Patriots made them advocates for A/B Testing in every mobile app, especially those offering in-app purchase.

 

December 24, 2013

Peter Heinrich

The Amazon Appstore for Android is spreading a little holiday cheer this week, offering a $5 credit to anyone who downloads the latest version of the Amazon Appstore and uses it to buy a mobile app or game from Christmas Eve through Saturday. The credit is good for the future purchase of any apps, games, or in-app items in the Amazon Appstore.

With millions opening brand new phones and tablets this season, there’s never been a better time to publish your mobile app or game on Amazon. The Amazon Appstore runs on all Android devices, and now customers will have an additional $5 to spend there on the great mobile content they love. Submit your app today to make sure it’s available for purchase when customers want to redeem their credit.

December 18, 2013

Peter Heinrich

The Amazon Appstore continues to see tremendous growth, and in fact selection has more than doubled in 2013 over 2012, offering more than 100,000 apps as a result of a growth of 95 percent in app submissions. This momentum would not be possible without the many developers who build apps and games for folks using Kindle Fire and other Android devices. Think of our ecosystem kind of like a pizza parlor.

In just two years since shipping its first Kindle Fire, the Amazon Appstore has established a platform that allows developers to reach millions of Amazon customers worldwide. Amazon also offers a unique discovery and marketing engine through Free App of the Day, Game Connect and other Amazon channels (like recommendations and emails).

 

Want the latest?

appstore topics

Recent Posts

Archive