Appstore Blogs

Appstore Blogs

Want the latest?

appstore topics

Recent Posts


Showing posts tagged with How To

January 31, 2017

Becky Young


Late last year, Amazon announced an over-the-air (OTA) update that brings support for standard Android notifications to Fire TV. To help developers make the most of this new update, we sat down with our Developer Evangelists to compile a list of our top tips for developing a well-planned push notification strategy. The result is our newest eBook: Best Practices for Push Notifications.

[Read More]

January 20, 2017

Peter Heinrich


Unity touches 770 million gamers all over the world through games made using their engine. If you are one of the millions of developers who create with Unity every day or are considering developing with Unity, you won’t want to miss our latest free webinar: Integrating Amazon APIs in Unity.

In this webinar you will find out how easy it is to incorporate Amazon APIs, such as in-app purchasing, mobile ads, and multi-screen support, into your Unity app.[Read More]

January 11, 2017

Abdullah Hamed


So, you have this shiny game you made in Unity3D. You have tested your monetization funnel. You have created all of your In-App Purchase items (IAP). All you need now is to integrate it with Amazon Appstore In-App-Purchasing APIs. There 2 ways to integrate the Amazon IAP API into your Unity game. You can use the built-in cross-platform Purchasing API from Unity, or you can use our own Unity Plugin. In this blog, we will look at a basic comparison of the two methods, and the advantages and disadvantages of each. We will also walk through setting up IAP items and implementing the Unity Purchasing API in your game.

[Read More]

December 28, 2016

Mario Viviani


In parts 1-5 of this series we followed the user journey on Fire TV from browsing and content discovery to reading the details of specific content and performing an action. Now we end our journey on the best part: how to play the video!

The PlaybackOverlayActivity

In a Leanback-enabled project, playing video content is performed within the PlaybackOverlayActivity.

The UI of the PlaybackOverlayActivity is simple. We have a full-screen video player that is responsible for playing the content. On top of the video player is the PlaybackOverlayFragment, which is responsible for displaying all the media controls and managing the underlying content play back.

[Read More]

December 16, 2016

Andy Haldeman

System X-Ray is useful for displaying system metrics on Fire TV, but did you know you can display information of your own choosing? Your app can send information to System X-Ray which will be displayed while your app is in the foreground. There are several ways this feature can be used, such as displaying static information, when a metric crosses different threshold boundaries, or when an event occurs. Let’s walk through some examples.


Static Information

If you test your app on multiple Fire TVs, you may have wished you could tell at a glance which Fire TV model you are testing. If you connect your Fire TVs to different WiFi networks, it would be helpful to see which network a Fire TV is currently connected to. System X-Ray can help you solve these problems. You can collect this information as your app starts up, and send it to System X-Ray.

private void updateMetrics(Context context, String buildModel, String ssid) {
    // Initialize Intent
    Intent intent = new Intent("");
    intent.putExtra("", context.getPackageName());

    // Add metrics
    intent.putExtra("Metrics1", buildModel);
    intent.putExtra("Metrics2", ssid);

    // Send
[Read More]

December 09, 2016

Mario Viviani

Providing the Details of the App Content through the DetailsFragment

In Part 1 of this series we analyzed the TV Interaction Model, based on three steps: Browsing for Content, Reading Description and Details, and Playing the Content. The first action, Browsing for Content, as we have seen in Part 3 of this series, is achieved through the BrowseFragment.

Now let’s see how we can provide information about a specific piece of content, following the second step of the user journey, Reading Description and Details. To do this we’ll use one of the main components of a Leanback-enabled project: the DetailsFragment.

The DetailsFragment

The DetailsFragment is displayed when the user selects a specific piece of content on the BrowseFragment. It contains information like Title, Subtitle, Description, and is accompanied by a preview of the content. It also contains Actions that we can prompt our user to perform.

One of the most important classes used in the DetailsFragment is DetailsOverViewRow. This class defines which content is displayed in the fragment (as seen in the previous episode, DetailsOverViewRow takes advantage of a Presenter, called DescriptionPresenter) and, most importantly, is responsible for defining the Actions that we can prompt our user to perform.

private void setupDetailsOverviewRow() {
    final DetailsOverviewRow row 
			= new DetailsOverviewRow(mSelectedMovie);
    row.addAction(new Action(ACTION_WATCH_TRAILER, 
				“Watch Trailer”, “FREE”)));

In the highlighted row we demonstrate how easy it is to add a specific Action to the DetailsFragment. Just by coding addAction() we can add a new Action for the user to perform. In this case we added the unique ID ACTION_WATCH_TRAILER, for the Action and two Strings Watch Trailer”, “FREEto define the text field of the button.

Once we have added this line, the Action will be displayed on the DetailsFragment.

By using Actions we can easily add IAP items like “Rent the Content”, “Buy”, or “Subscribe”. It is just a matter of attaching a Listener to the Actions to perform consequent tasks.

When we deploy a Leanback-enabled project, the only Action that is defined by default is the “Watch Trailer” that prompts the trailer of the content to play.

Stay tuned for Part 6: How to Play Video Content using the PlaybackOverlayFragment

In the next and final episode of this series we’ll show how to play the content, leverage the Remote Control, and how to show the on-screen controls using the PlaybackOverlayFragment.

Stay tuned!

Mario Viviani (@mariuxtheone)


December 02, 2016

Mario Viviani

Editing the user interface of a Leanback-enabled TV app through Presenters

In the previous episode of this series we discussed how to create the main interface of our Leanback-enabled project through the BrowseFragment. Now let’s take a closer look into the Presenter class. The Presenter class allows us to define the look and feel of our Leanback-enabled app without editing the underlying data structure. 

The Presenter class

The Leanback template we created was built following a custom version of the common development pattern, Model-view-controller (MVC), in which the Presenter class acts as the View. The Presenters are passed to the ArrayObjectAdapter as arguments and define how the content of the Adapter should be displayed

The Leanback approach provides a variety of predefined Presenters:

  • CardPresenter defines singular content
  • ListRowPresenter defines how various content in a row should be displayed and arranged
  • DetailsDescriptionPresenter defines the UI of the DetailsFragment

Implementing the Presenters are quite similar: they all follow the ViewHolder pattern and are mostly composed by Custom Views with methods to set the fields of the views. Let’s take a close look at the customizing the CardPresenter as an example:

[Read More]

November 29, 2016

Becky Young

Calling all Android Developers! With the streaming media device segment expected to reach 439.8 million by 2020*, now is the perfect time to bring your existing app or game to the living room. For developers, bringing your app to the 10-foot experience can help you increase your customer base by putting your app or game in front of millions of people who enjoy entertainment and may not have seen your content before.

Join Mario Viviani, Amazon Technology Evangelist and former GDE, for a FREE WEBINAR as he covers what’s needed to bring your media streaming app to the living room the easiest way possible.

We’ll show you how to create high performing Android Media Streaming apps in minutes using a new development tool Amazon has created: the Fire App Builder template for Android Apps for TV.

Join Mario on November 30th to learn:

  • How to easily connect a native Android app to video streaming services with just a few lines of code.
  • How to create high performing Android media streaming apps in minutes using the new App Builder Template for Android apps for TV.
  • How to create rich second screen experiences, using Amazon Fling to share media files from mobile apps to the big screen.

Reserve your spot today

Want to learn more? Register today to learn how make the right changes to increase the number of downloads your app is getting:

Register for 7:00am PDT (3:00pm GMT) on Wednesday, November 30, 2016

Register for 1:00pm PDT (9:00pm GMT) on Wednesday, November 30, 2016

*Global Streaming Media Device Market 2016-2020, Infiniti Research Limited

November 22, 2016

Jon Pulsipher

Mobile and living room devices today present a varied landscape for developers to consider. One aspect that is particularly meaningful for your customers is where your app installs itself. Some devices, like the current Fire tablets and Fire TV have external storage through memory card slots. Other devices, like Fire TV Stick or older Fire tablets have only their internal flash storage. Running out of storage when trying to install a new app can be very frustrating for people who want to use your app. This frustration is compounded for customers who have added a memory card with lots of empty space and still get an error message that the device is out of space when trying to install. That frustration can quickly find its way into negative reviews for your app.

Luckily, for most apps, Android provides a simple solution. By specifying the installLocation in the app manifest, you can provide your user community with the best experience possible for whatever device they own. This doesn't mean they'lll never run out of space, but it helps best manage the space they have.

 xmlns:android="" android:installLocation="auto" android:theme="@android:style/Theme.NoTitleBar" package="com.examplecompany.myapp" platformBuildVersionCode="23" platformBuildVersionName="6.0-2704002">  android:name="android.permission.INTERNET"/> ¦ ¦

installLocation can be specified as any of the following:

[Read More]

November 04, 2016

Mario Mancia

Content providers often encounter difficult choices when trying to expand their offerings. You have the content, but how do you get it on to various platforms for people to enjoy? There are a few decisions you can make: hire a development team to create an app from scratch or hire a design team to create an interface.

Last year, in an effort help developers quickly create simple, media-oriented apps, we introduced the Web App Starter Kit—a template solution for Fire TV using web technologies. To expand our offerings, we now offer a native Android solution: Fire App Builder.

Fire App Builder

Fire App Builder is a Java framework that allows developers to quickly build immersive, native Android media applications for Fire TV without writing code. This is accomplished by using a plug-and-play Java framework based on easy configuration files. Developers simply specify the format of their media feed and add resources for logos and colors to create a rich media TV experience.

Fire App Builder provides a functional foundation that does not require a team of highly technical, often expensive, developers to build on. It includes a familiar interface as well as a modular structure that supports most features common to media apps, including ways to monetize, ad support, analytics, search capability, and much more. With Fire App Builder, there is no need to reinvent the wheel, which greatly reduces the amount of effort, time, and resources to create a rich 10-foot experience for Android and Fire TV.

[Read More]

November 03, 2016

Mike Hines

You work hard to convert your non-spenders (or at least I do in my apps and games). But have you ever thought about turning non-converting users into agents of positive change? Or did you realize that you could earn more money as a result of doing good. I didn't!

But then I learned about Seeds, and a discovery they made: giving non-payers the opportunity to make in-app purchases for good could be the most powerful conversion tool there is. Seeds found that non-paying users are 58% more likely to spend when their purchase is for good. And these newly converted payers go on to spend an average of $25.

The kicker: Seeds focuses on for-profit, sustainable forms of social good such as microloans. These microloans are a form of sustainable social good because they’re interest-bearing, and the capital can be lent out again and again as loans are repaid. In most regions, default rates are lower than 2%.

This sounded interesting, but when I discussed Seeds with my colleagues, we assumed it would be a pretty hard sell to convince developers who are already struggling with low IAP conversion rates to give up some of those earnings to support a for-profit organization, regardless of how noble the cause may be.

[Read More]

November 02, 2016


Last month we announced support for blind and visually impaired customers on Amazon Fire TV through our screen reader, VoiceView. In this blog post, we will take a closer look at the upcoming changes with VoiceView and how you can get started with making your app compatible for visually impaired customers.

VoiceView allows blind and visually impaired customers to discover content, access settings, and control playback in the core Fire TV experience. For an app to be considered accessible, on-screen information needs to be spoken. On-screen information can be bucketed into two major categories: focusable items and static content. Focusable items are items like buttons that a user navigates to and are actionable. This includes menus, login buttons, or titles of movies/TV shows and other content that users can access while browsing content. Static content is on-screen information such as a movie’s description, duration, and rating. Text on-screen providing a URL and code to activate a subscription, for example, could also be considered static content.

Getting started with VoiceView

To get started with VoiceView, the first thing you need to do is make your app compatible with the Android accessibility framework. For tips and best practices, please look at the current documentation.

[Read More]

October 28, 2016

Greg Bulmash

The last Login with Amazon blog post described how to set up the Login with Amazon plugin for Wordpress. In this post we are going to look at the steps you can take if you receive the following error message when trying to log in:

In this case, the login process at Amazon seems to work, but when the pop-up window closes, you get the error message. Even more perplexing, you will have what appears to be a valid access token in the URL:[...] &token_type=bearer&expires_in=3600&scope=profile&state=[...]
When you have this specific issue, the likely reason is that you don't have curl set up properly.
[Read More]

October 27, 2016

Mike Hines

There are a lot of considerations you want to consider when developing a game, from IAP design, to level difficulty and more. While some of the basic considerations, such as “fun and engaging” go without saying, there’s an additional requirement that successful developers are increasingly taking into consideration when designing a mobile game: longevity.

Incorporate ongoing, perpetual content

In a study of the top-grossing freemium games in the Amazon Appstore, we found that 56% of a game’s revenue occurs after the first 30 days. And the players that stick around past the 30-day mark are willing to spend 60% more for in-app purchase items.

The depressing news is that about 80% of the users in our study didn’t launch the games again after the 7-day mark.

So how do you encourage more of those 80% to stick around? One solution is to design your game with a strategic approach of perpetual content. In other words, carefully create a plan to deliver ongoing, changing content. This is the approach that Wooga takes with their hidden object games, and they have been successful in their design goal to “make games fun for a year”! As a result, their customers have rewarded them with significantly higher revenues.

What does perpetual content really mean? Consider adding new game modes, outfits, weapons, maps or whatever else your users want every week or month.

Here are some other things for developers to consider in the longevity arena:

[Read More]

October 21, 2016

Jon Pulsipher

Achievements unlocked!

Achievements and trophies are available on most platforms today and help build engagement with your players in a few ways. They capture “the moment” for the player when they accomplish something meaningful in the game. And over time, for some players (like the “Achievers” of the Bartle taxonomy) they form a scrapbook, or collection, of sorts that marks their experiences over a variety of games. Finally, they provide another storytelling tool that allows the game designer to guide the user through different approaches to playing the game and exploring the game world, perhaps in ways that might not be obvious—completing a level in a very short time, or only using a certain weapon. 

In our previous installment, we spent quite a bit of time working through setting up leaderboards for your game. Let’s build on that by adding GameCircle Achievements and give your players some goals to strive for.

[Read More]

Want the latest?

appstore topics

Recent Posts