Developer Console
Amazon Developer Blogs

Amazon Developer Blogs

Showing posts tagged with CPM

June 24, 2014

David Isbitski

The Amazon Mobile Ad Network is offering a new incentive for developers to join. Available now, when you send the first ad request from a qualified app* and distribute your app on Fire phone, you will receive a guaranteed $6 CPM on interstitial ads in August and September (up to a maximum of 1 million impressions per app per month). Interstitial impressions served across all supported devices (Android phones and tablets, Kindle Fire tablets, and Fire phones), supported markets (U.S. and U.K. users), and supported stores (Amazon Appstore and other Android stores) qualify for the offer.

Interstitial Ads are full screen ads that use the entire screen of the device. They typically appear in app transitions such as in between game stages. Interstitial ads from the Amazon Mobile Ad Network are high quality when viewed by any phone including the new Fire phone.

How To Qualify

  1. Integrate interstitial ads using the latest Amazon Mobile Ads API into your new app and send the first ad request between June 18th and September 30th, 2014. 
  2. Test your app for Fire phone compatibility and select the Fire phone check box when submitting your binary.  Apps must be Fire phone compatible to qualify for this promotion. Submit your app earlier to maximize the offer period.

The Amazon Mobile Ad Network has helped many developers monetize their app including Jason Stock from Firecracker Software, who shared: “The biggest contribution Amazon provided us in monetizing our apps was through superior eCPM in their Mobile Ads SDK, which performed 215% more than other Ad Networks, and a 77% fill rate in our Word Breaker app. Because of Amazon Mobile Ads, we were able to quit our day job."

Click here to learn more about the Mobile Ads Interstitial CPM Boost offer.

*Existing apps already sending ad requests do not qualify. Apps that integrate the Amazon Mobile Ads API for the first time are eligible for the offer.


April 10, 2014

Paul Cutsinger

Since March 1st, we have been guaranteeing developers with qualifying apps a $1.50 banner CPM for serving mobile ads through the Amazon Mobile Ad Network.  We’ve already seen thousands of developers participate in the promotion and you can too.  The  $1.50 CPM promotion is ending on April 30th.

Integrating the Amazon Mobile Ads API is straightforward.  According to YouMail, it took 2 days while working in parallel on other features.

Alex Quilci from YouMail, Inc says:

‘The $1.50 CPM promotion is a 3x bump in eCPM by itself and we’re seeing much higher quality ads. We also expect the strong earnings to continue when the promotion ends.”

Damien Gardner from DamoWare says:

‘The 1.50 CPM is a great risk-free way to try the Amazon Mobile Ad Network. We’ve discovered a high quality ad network as a result.”

In order to qualify for this promotion, you will need to integrate the Amazon Mobile Ads API in your qualified apps* and send the first ad request to us by April 30th, 2014. Here are the steps:

1.      Download the latest version of the Amazon Mobile Ads API here.

2.      Integrate the Amazon Mobile Ads API in your qualified app and start sending us ad requests. If you don’t have an app on Amazon yet, it’s easy to get started. Test your app using our updated testing service and submit it to us for free.

3.      Earn $1.50 for every 1,000 qualifying impressions displayed on the app during April 2014 (up to 2 million impressions per app).

* Existing apps already sending ad requests do not qualify. Existing developers who integrate the Amazon Mobile Ads API into another app for the first time will qualify. Qualifying apps may be distributed through other Android stores as long as they are distributed through Amazon.

In addition to this promotion, using the Amazon Mobile Ads API in your app brings you a step closer to meeting the Appstore Developer Select program requirements, which gives you enhanced merchandising on the Amazon Appstore, Coins benefits and more.

Click here for more details about the Mobile Ads CPM Boost promotion. To learn more about adding the API in your app or game, see the online documentation or our quick start guide.


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)