Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts

Archive

Showing posts tagged with monetization

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

David Isbitski

When displaying ads in your apps and games, you may want to know how often you are actually displaying ads to your users, what types of ads are being displayed, and how your users are interacting with an ad. 

Thankfully, the Amazon Mobile Ads API includes events that can aid you in understanding performance of ads displayed on your apps.  You have the ability to track when an ad is successfully displayed from the Amazon Ad Network, how long a user views an ad, and when your user opens or closes a rich media expandable banner ad.  These events should help you track and better understand user behavior in your apps when ads are being shown.

With a guaranteed CPM of $1.50 for banner ads displayed on qualified apps during March and April (up to 2 million impressions per app per month), there has never been a better time to get started using the Amazon Mobile Ads API.

Handling Ad Events

All of the events associated with an ad provided by the Amazon Mobile Ads API will be returned by the AdListener interface.  Once you have declared an instance of an Amazon AdLayout, setting an event listener to the layout will let you track the entire life cycle of an ad. 

Keep in mind all of the listener's events are part of the main UI thread.  So if you are planning on executing any long running tasks you should do so in an AsyncTask.

Capturing Metrics When Ads are Loaded

You can capture metrics in your app each time an ad is loaded using the AdLoaded event.  AdLoaded is called each time an ad is successfully served by the Amazon Mobile Ad Network, and available for display.  You can use this event to adjust your app’s user interface when a new ad is loaded or to keep track of the type of ads you are being served. 

For example, if you have a game, you should choose to delay displaying the AdView until the player is at a point where an ad will not interrupt gameplay.  In the below example I am updating a TextView each time an ad is successfully loaded and then adding the AdView to the root container for display.

You can get additional properties about the ad being served at runtime through AdProperties.  These properties can help determine if your ad is a static banner or a rich media expandable banner.  Static banners are HTML web views that typically open an in-app browser, native browser, or Android Intent.  Rich Media Expandable Banners are HTML web views that expand in-app with rich interactive content (including videos), but also typically include opening an in-app browser, native browser, or Android Intent.

 

In the above screenshot, I have set a breakpoint to get information from the AdProperties variable.  There are four types of information that are filled by AdProperties.  These include:

  • adType - possible values are 'Image Banner', 'MRAID 1.0' or 'MRAID 2.0'.  MRAID stands for Mobile Richmedia Ad Interface Definition and will determine the capability of the rich media expandable banner.
  • canExpand – determines if the ad can be expanded
  • canPlayAudio – determines if the ad plays audio when expanded
  • canPlayVideo – determines if the ad plays video when expanded

Trigger changes when an ad expands

The onAdExpanded and onAdCollapsed events are called when a rich media expandable banner ad has been clicked by a user and is either expanded or collapsed.  You can use this event to pause your game or suspend background audio music when an ad has expanded, among other options.

 

Handling Ad Load Errors

If an ad fails to load, the AdListener.onAdFailedToLoad event returns an AdError object that contains an error code and a descriptive response message.  For example, the onAdFailedToLoad event below is logging the ad error message, removing the Amazon view from the UI, and then loading a Google AdMob view to request an ad.

 

It is important to keep in mind that the there is no logic to retry loading an ad.  If you encounter an error, you should decide whether to call AdLayout.loadAd again based on the error code returned. 

The error codes are helpful in debugging where errors may be occurring; server side, network based, or within the app code itself.  In the below example we see an AdError occurring due to the developer setting an incorrect view size.  This can happen if an ad is requested before its parent view is available. 

 

The possible error codes that can be returned include the following.

  • NETWORK_ERROR The ad request failed due to problems with network connectivity. Try again when a connection becomes available.
  • NO_FILL The ad request succeeded but no ads were available. Don’t retry immediately.
  • INTERNAL_ERROR The ad request failed due to a server-side error. Try again but limit the number of retry attempts.
  • REQUEST_ERROR There is a problem with the ad request parameters. Do not retry. Review the error message and update your app accordingly.

For specific error message descriptions, please refer to the following chart on our developer portal here.

You can get more information on the Amazon Mobile Ads API including code samples and training videos here.

-Dave (@TheDaveDev)

 

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

Mike Hines

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

Getting the right exposure for your app is a key ingredient to making it successful. Amazon already has several programs which developers can leverage to help drive visibility to their apps, and developers who want even more visibility think outside the box to tailor their customer experiences to increase engagement with their apps. Tribeplay is one of those game publishers who did just that, by issuing a price discount promotion that drastically increased their revenue.

The team which is based out of China has 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 Tribeplay, making their Android Apps available on the Amazon Appstore required “little to no extra tweaking.” Tribeplay added that “one 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 games are available worldwide, but the team wanted to increase sales in Europe so they discounted the price of their apps by more than 50% in select countries. By doing so, Tribeplay saw their gross revenue more than double in UK, Germany, France, Italy, and Spain.

So how did the team accomplish this? Tribeplay ran banners highlighting their price promotion, which caught the attention of customers in the Amazon Appstore. When the Amazon Appstore recognized that their app was trending in customer popularity, Amazon assisted by providing more visibility for the app. “The suite of tools for promotions and sales [that Amazon provides] to help market our apps on the Amazon Appstore more effectively are very valuable.” said Tribeplay, the creators of Dr. Panda. The team saw the app’s sales more than double during the time period, when they increased the visibility of their app. 

Aside from the sales uplift, Dr. Panda was also able to reach a new and unique developer audience on Amazon. “Amazon Appstore is a fantastic platform for us and continues to get better. Through Amazon we’ve been able to reach a whole new demographic and really succeed with them. The fact that the Kindle Fire device line is so integrated to the store has also been a great benefit for both developing and marketing our apps with Amazon customers in mind.” The teams recently joined the Appstore Developer Select program and integrated the Mobile Ads API and are excited to see how the results will turn out. By participating in these programs, the team will receive additional impressions for their app, home page placements, and customized ads for their app in the US.

So how can you increase visibility? Besides having your app perform well, you can ensure your app qualifies for the Appstore Developer Select program, or get your app featured in the Free App of the Day program. If you’re looking for something similar to what Tribeplay did with their promotion, check out the Developer Promotions Console, which allows you to easily discount your apps. Getting your app onto these programs only requires a couple pre-requisites and they all aim at providing visibility for your app. For example, for your app to qualify for the Appstore Developer Select program, it must utilize relevant API’s such as Amazon In-App Purchasing, Amazon Mobile Ads, and Game Circle that all contribute to enhancing the user’s experience in your app. If you need help with these requirements we have a lot of resources available as well. “The Amazon team has always been amazing with their help and advice. Questions we ask are always answered promptly and accurately, and any problems we’ve had have been solved super quickly.” says Tribeplay.

 

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).

 

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 06, 2013

David Isbitski

The Amazon Mobile Ads API allows you to easily place high-quality display ads from the Amazon Mobile Ad Network into your Android and Kindle Fire apps. Successfully monetizing your apps with ads depends on several factors, one of the biggest being the ad fill rates you receive. A common practice is to use multiple ad networks so that if you are unable to fill an ad with one network you can request an ad from another one.

I thought it would be helpful to offer some guidance on how you can implement multiple ad networks into your own apps. This should help increase your fill rates as well as giving you the opportunity to show ads to customers were the Amazon Mobile Ad Network currently does not serve ads.

Let’s get started!

Setting up the App Manifest and Layout

The first thing you will need to do is follow the guidelines for including the correct Android network permissions and ad Activity as described here.  Since you are going to include AdMob ads as well you will need to define that activity after our Amazon Ad as seen below.

You will also need to make sure you have set up the Amazon AdLayout inside of your layout file like below.

Declaring Multiple Ad Networks

Verify that both ad networks have been added to your Android project and set for export as seen below. For purposes of this demo, I will be using version 6.4.1 of the AdMob SDK and version 5.1.153 of the Amazon Mobile Ads API.”

Depending on what ad network SDK you are working with, many of the classes may be named similarly to the ones used in Amazon Mobile Ads API . You will need to be extremely careful when referencing individual classes and I recommended using fully qualified namespaces as seen below.

Displaying an Amazon Ad

Displaying an ad with the Amazon Mobile Ads API is as simple as creating and adding an Amazon AdView to the layout, setting any optional targeting properties and then calling the loadAd method of the AdView.

In the example below I am setting the ad to target a twenty five year old male and using a simple fixed rate timer to refresh the ad over time using a fixed schedule timer.

I have also turned logging on by setting the AdRegistration logging flag to true. This will give us detailed information in LogCat about the ads being served.

Here are some screenshots of the Amazon ads being loaded on a Kindle Fire HDX device:

Here is an example of the Amazon ad information being written to LogCat:

Checking if an Amazon Ad was served

If an Amazon ad has not been served within the timeout period it will call the onAdFailedToLoad() method. The default timeout is 20 seconds but you can change this to a different value (defined in milliseconds) by setting a property on the AdView itself. I recommend doing this while testing so that you can force the ad mediation to happen.

In the code below you will see I have set the timeout to be 100 milliseconds, which will always cause the ad to fail while I am debugging my secondary ad network. Once I have seen ads being loaded from both networks I can set this back to a more reasonable value.

Inside the onAdFailedToLoad method I log the ad error message I received, remove the Amazon view from the UI, load the AdMob view and then I have it request an ad.

Here are some screenshots of the AdMob ad being loaded on a Kindle Fire HDX device:

Here is an example of the AdMob information being written to LogCat:

Setting an Ad Timeout

The Amazon Mobile Ad Network recommends loading a new ad on screen navigations and device orientation changes when the ad view changes size. You may also want to refresh the ad after a set time interval. In this case, the Amazon Mobile Ad Network recommends a refresh rate of 30 to 60 seconds. Faster ad refresh intervals could result in blocked ad requests.

Please note that the Amazon Mobile Ads API does not provide any built-in functionality for automatically refreshing ads. The timeout value of the Amazon AdView is the amount of time it will try to get a new ad for you before calling the onAdFailedToLoad method. This will not auto refresh the ad it will only change the amount of time it spends trying to load an ad.

You will need to create your own timer system to refresh the ad or some other way inside of your app. In the code example above I used a timer on a fixed rate schedule for demo purposes, but there is no limitation to the way you could handle this in your own apps. For example, every time a player reaches a new level in your game you briefly display an ad.

Conclusion

Hopefully you have seen how easy it is to set up ad mediation with the Amazon Mobile Ads API and third party ad SDKs in your own apps. You can read more details on working with other ad SDKs here on our developer portal. You can also get more detailed information about the Amazon Mobile Ads API itself and sign up here.

-Dave (@TheDaveDev)

 

November 22, 2013

Rob Pulciani

Since the launch of Amazon Coins in the US in May, customers have already spent hundreds of millions of Amazon Coins, representing real dollars to developers, who still received their 70% revenue share. Check out our August blog post to read more about some of the results from developers so far.

Today, we’re extending Amazon Coins to the UK and Germany as well. As a thank you to existing and new Kindle Fire owners in the UK and Germany, customers will get free Amazon Coins deposited directly into their accounts so they can experience how easy it is to shop with Coins. Customers will be able to use Amazon Coins to purchase apps, games, and a broad range of in-app items in the Amazon.co.uk Appstore, the Amazon.de App-Shop, and on Kindle Fire.

Amazon Coins are immediately available to customers who pre-ordered the new Kindle Fire HDX 7” and Kindle Fire HDX 8.9”. Both devices are now available in the UK and Germany. This is a great opportunity for you to take advantage of Amazon Coins and the perfect time to submit your apps for the holiday rush. 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.

We have already seen developers like Halfbrick, PepiPlay, and textPlus benefit from customers using their Amazon Coins to try out and explore new apps and games. For many Indie developers, Coins has accounted for the majority of their revenue since Coins launched in the US.

If your app is available for sale for Kindle Fire in the Amazon Appstore, there’s nothing else to do. So submit your apps today and take advantage of Amazon Coins. For more information on making your apps available on Kindle Fire devices, check out these links:

1.    Create an account on the Developer Portal
2.    Download the Amazon Mobile App SDK
3.    Review the Kindle Fire development resources

 

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

 

Want the latest?

appstore topics

Recent Posts

Archive