Home > Services & APIs > Earn > Mobile Ads

Release Notes

Version 5.8 (Updated December 12, 2017)

Changes for Version 5.8.2  (December 12, 2017)

  • Fixed a defect for fire devices: the banner ads were not loading.

Changes for Version (September 29, 2016)

  • Fixed potential exception with video ad creatives.

Changes for Version 5.8.1 (August 9, 2016)

  • Added interstitial support for singleTask launch mode.
  • Fixed an issue that in some cases can result in a crash when the View Tree Observer dies.

Known Issues and Best Practices

  •  We've received reports that the Amazon MobPubSDK Adapter is no longer able to return Amazon Ads
  • ClassCastException in com.amazon.device.ads.ViewabilityOverlapCalculator.findOverlapppingViews occurs infrequently on some Samsung 6.0.1 devices
  • We've received reports of compatibility issues with Google Play Service 9.8 and 10.1
  • Ads appearing on the ASUS Transformer Prime TF201 have been known to experience rendering and click-related issues.
  • Proguard obfuscation:
    • If you're obfuscating your app with ProGuard, ensure to add the following line to your ProGuard configuration:

      -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient

      Failure to do so may result in your app being unable to access Google Play Services Advertising ID, which will lead to a rejection from the Google Play store.

    • If you're loading Amazon ads through a third party mediator SDK, be careful not to remove the android.support.v7 classes since doing so may prevent the mediator SDK from requesting Amazon ads. If you must remove one or more of these classes then make sure to only remove those exact class names and leave the others.
  • Interstitial ads have not been certified for devices running Android 2.2 and below.
  • Due to a known issue, Auto Ad Size failures may be incorrectly reported as NO_FILL errors. Correctly following the guidelines in the Auto Ad Size section when setting up your banner ad's layout will prevent these errors from occurring.
  • It's possible for Auto Ad Size and Auto No Scale to return no ads if your AdLayout is too small or its size is not appropriate for the device loading the ad. If you would like to take advantage of Auto Ad Size or Auto No Scale for most screen sizes, it's recommended that you set the AdLayout's width to MATCH_PARENT and set the AdLayout's height to WRAP_CONTENT.
  • If you're creating an AdLayout in memory to move onto the screen later, then you must not assign it a parent view until this move occurs. The AdLayout should be added directly to the activity's view hierarchy. Do not add it to a parent view and then insert the parent view into the hierarchy as this could force ad loading to fail. See the Floating Ad Sample for an example implementation.
  • Banner ads created in memory to be floated onto the screen later have been known to crop in rare cases on certain Android 4.0.x phones. You can avoid this problem by setting your app's target API to 13 or lower.
  • If banner ads do not scale to the proper size, you may be using a customized layout that fails to provide AdLayout with the correct dimensions needed for scaling. You can fix this by hard-coding the correct dimensions into the AdLayout before attempting to load any ads. For example, if you want to load a 320x50 ad, adding the following line right before ads are loaded for the first time will ensure that the ad scales properly regardless of screen size or pixel density:
    myAdLayout.setLayoutParams(new LayoutParams(320, 50));
  • When a banner ad is reloaded using the same AdLayout, rich media ad expansion is disabled to prevent the rich media ad from collapsing while users are interacting with it.
  • When using an XML document to lay out your app, it is not recommended to use WRAP_CONTENT for both AdLayout width and AdLayout height.
  • If your app supports Android 3.x devices and contains TextViews that can be modified by the user, we recommend that you add the following line to the AndroidManifest.xml file in the section corresponding to the app in order to prevent the keyboard from appearing unexpectedly upon banner ad collapse:
  • During integration, you should set the enable testing flag to true to ensure that most ad requests return an ad. Test requests don't show up in your metrics, but allow you to test different ad types within your app. Call the enableTesting function with a true argument to enable the test request. For example:
  • The timeout value set through AdLayout.setTimeout() only sets the timeout for retrieving an ad from the Amazon Ad Server. It does not account for the time it takes to load all the ad's referenced resources such as images.
  • If your Application Key is invalid, the server will not return an ad. AdListener.onAdFailedToLoad() will be called with Error Code INTERNAL_ERROR and Error Message "Server Message: INVALID_APPID".
  • Android emulators may have issues rendering some ads. Additionally, the emulators may not expose all functionality. For best results we recommend integration testing on actual Android devices.
  • On Android 4.x devices you may see a blue border around ad images that have been clicked on.
  • When AdLayout's parent applies padding, the ad will be scaled too large. If applying padding is desired, execute disableScaling() on the AdSize at load time.

Version 5.7 (Updated May 4, 2016)

Changes for Version 5.7.2 (May 4, 2016)

  • Created an optional Load Ad / Show Ad flow for Banner Ads.
    • Added AdLayout.enableAutoShow API.
    • Added AdLayout.disableAutoShow API.
    • Added AdLayout.showAd API.
    • Updated the Banner Ad Sample App to demonstrate the Load Ad / Show Banner Ad flow.
  • Removed 300x50 Banner Ad Size.
  • Resolved latency bug which could cause some devices to wait up to several seconds before loading an Ad.

Changes for Version (March 25, 2016)

  • Added MoPub Adapter sample app for Banner and Interstitial Ads.
  • Fixed a rare NullPointerException issue that may occur when the ad position is being updated.

Changes for Version 5.7.1 (February 29, 2016)

  • Removed support for Android 1.6 to 2.2. The Amazon Mobile Ads SDK now supports Android 2.3 and up.
  • The Amazon Ad SDK is MRAID 2.0 certified.
  • Added support for passing a Context to the banner AdLayout and InterstitialAd constructors. Previously these constructors required an Activity.
  • Added a flag to the AdSize class to disable scaling. This is helpful when applying padding to a layout.
  • Fixed an IllegalArgumentException that could occur in rare cases where the Ad's underlying WebView was constructed with an Activity and not an application context.
  • Addressed an issue that could cause a banner ad to scale improperly in the case that it is loaded off screen.
  • Addressed minor 'Layout Preview' crashing issue while initializing an AdLayout in Android Studio having an ADT version 18 or higher.
  • Removed ProGuard warning messages caused by deprecated HttpClient APIs.
  • Fixed a rare application crashing issue when loading an AdLayout through XML and then inflating into a Fragment instead of an Activity.
  • Added mechanism to handle Android bug causing ApplicationPackageManager.getApplicationLabel(ApplicationInfo info) to throw ArrayIndexOutOfBoundsException.

Version 5.6 (Updated June 8, 2015)

Changes for Version 5.6.20 (June 10, 2015)

  • A developer can now be notified when an InterstitialAd or ModelessInterstitialAd expires by implementing DefaultAdListener's onAdExpired() method.
  • An expired InterstitialAd can now be reloaded before any attempts are made to show the ad.
  • A developer can now determine if an InterstitialAd or ModelessInterstitialAd is ready to show by calling isReady().
  • A new ad size has been added. Auto No Scale will choose an ad using the same criteria as the normal Auto Ad Size process but will not upscale the ad any larger than its true device-independent pixel size; for example, a 320x50 ad will display as 320x50 dip even if its container is larger than 320x50. Please see the Android Ad Concepts page for more information.
  • Fixed an issue involving automatic configuration updates.
  • Updated sample apps for AndroidStudio compatibility.

Version 5.5 (Updated May 4, 2015)

Changes for Version 5.5.149 (May 4, 2015)

  • Fixed NullPointerException that could occur when the user exits the application or rotates the device during an ad load.
  • Geolocation-enabled ad requests have been improved to enable multiple marketplaces while providing better accuracy and increased security.

Changes for Version 5.5.135 (April 23, 2015)

  • Improved ad click-through functionality for opening browsers.
  • Updated documentation for ModelessInterstitialAd.

Changes for Version 5.5.102 (March 24, 2015)

  • Added Modeless Interstitial Ad Feature
  • Added Swipeable and Framed Modeless Interstitial Ad Sample Apps
  • Fixed an issue with AdActivity when the activity is resuming
  • Fixed an issue where a back button pressed in an Interstitial Ad may result in a NullPointerException
  • Fixed an issue with erroneous Google Advertising ID logging issue
  • Fixed an issue where expandable ads may expand off screen
  • Fixed an issue where AdSize.toString can return null

Version 5.4 (Updated December 22, 2014)

Changes for Version 5.4.235 (December 22, 2014)

  • Added the equals override method to AdSize.

Changes for Version 5.4.227 (November 18, 2014)

  • Fixed an issue with transparent ads on Android 4.0.x versions.

Changes for Version 5.4.192 (November 4, 2014)

  • Fixed an issue involving ads that would override the device's or app’s auto-rotate settings.
  • Fixed an issue where a single AdLayout object could start a new ad load before its previous ad load had completed.
  • Addressed a race condition in which dismissing an interstitial ad using the native close button would sometimes put the ad into an abnormal state.
  • Fixed an issue that had previously forced developers of ProGuard-obfuscated apps to add a specific keepclassmembers line to their ProGuard files or risk the possibility of MRAID ads being unclickable. This line no longer needs to be added to the ProGuard file.
  • Fixed an issue where the onAdFailedToLoad callback may have been fired multiple times for a single failed ad load.
  • Resolved multiple issues related to load timeout functionality.
  • Fixed a crash that had occurred when apps on certain devices attempted to destroy expanded rich media ads without first closing the ads.
  • Removed incorrect floating ad banner logcat warnings.
  • Handled an IllegalArgumentException that could have been thrown while an ad was being destroyed.
  • Fixed a NullPointerException that sometimes occurred during InterstitialAd creation.
  • Addressed an ad-specific issue that could have caused a ClassCastException.

Changes for Version 5.4.146 (October 8, 2014)

  • Fixed an issue where some intent URLs in the in-app browser would lead to a broken link.
  • Added a new interface, ExtendedAdListener, which features an onAdResized() callback for when a banner ad is resized.
  • Fixed an issue that had led to some devices being classified as “Other/Unknown” in performance reports.
  • Added a debug log message to notify developers when an ad is scaling based on screen dimensions due to a missing parent view.
  • Fixed an issue where interstitial ads on Android 4.4 devices would sometimes display a low-resolution image.
  • Handled an uncommon IndexOutOfBoundsException thrown during network calls.
  • Added support for the following MRAID 1.0 capabilities:
    • mraid.useCustomClose() -- Allows ad to use a custom close button image.
    • mraid.close() -- Closes an interstitial ad.
    • mraid.isViewable() -- Determines if the ad is currently viewable.
    • mraid.getPlacementType() -- Retrieves whether the ad is an interstitial or inline placement type.
  • Added support for the following MRAID 2.0 capabilities:
    • mraid.createCalendarEvent() -- Prompts the user to add an event to the calendar.
    • mraid.getCurrentPosition() -- Gets the current size and position of the ad on the screen.
    • mraid.getDefaultPosition() -- Gets the default size and position of the ad on the screen.
    • mraid.getMaxSize() -- Gets the maximum expansion size of the ad.
    • mraid.getScreenSize() -- Gets the size of the device screen.
    • mraid.storePicture() -- Prompts the user to store a picture to the gallery.
    • mraid.supports() -- Determines what features the device supports.
    • mraid.resize() -- Performs a non-modal resize of the ad.

Changes for Version 5.4.78 (July 18, 2014)

  • Fixed an uncommon ArrayIndexOutOfBoundsException caused by Google Play Services Advertising ID collection.
  • Resolved a NullPointerException related to Google Play Services Advertising ID collection.
  • Previously, developers obfuscating or shrinking apps with ProGuard and distributing on Google Play would have been required to update the app package’s ProGuard file to keep certain classes, ensuring that the Google Advertising Identifier can be successfully collected. This update is no longer necessary.

Changes for Version 5.4.46 (June 26, 2014)

  • Google Play Services Advertising Identifier is now supported. Because of new requirements detailed on Google’s policy page, all apps containing older versions of the Amazon Mobile Ads API must update to the current API or will no longer be eligible for upload to the Google Play Store after August 1, 2014. Developers of these apps must separately download and integrate the Google Play Services SDK by following the Google Play Services SDK Setup Instructions in order for the changes to take effect.
  • Resolved scaling issues that had been present on Android 4.4 devices.
  • Added a new button to in-app browser action bar. Pressing this button will allow users to open the current webpage in an external browser.
  • Fixed a race condition where destroying an AdLayout could lead to a NullPointerException.
  • Fixed an uncommon issue where clicking links in certain ads could cause a crash.
  • Fixed a problem where loading ads would cause a crash due to Internet permissions being removed from the app.
  • AdTargetingOptions.setFloorPrice() now takes a parameter of type long instead of int. Developers should not need to make an update as Java will automatically upcast from int.

Version 5.3 (Updated May 7, 2014)

Changes for Version 5.3.22 (May 7, 2014)

  • Addressed a memory leak that could occur upon device rotation when an InterstitialAd is instantiated and loaded in an activity's onCreate(), onStart(), or onResume() methods.

Changes for Version 5.3.17 (May 2, 2014)

  • Fixed an issue where WebView objects were being destroyed outside of the UI thread. This would sometimes lead to crashes on apps with target API 18 or higher that would attempt to load ads on Android 4.3+ devices without internet connectivity.

Breaking Changes for Version 5.3.9 (April 24, 2014)

Amazon Mobile Ads API version 5.3 contains some breaking changes that include a modified AdListener interface and a new error code. If you are upgrading to this version from an older version, your app may not compile until you have addressed the following:
  • All callbacks in AdListener are now passed an Ad object instead of an AdLayout object. Note that AdLayout is an instance of Ad.
  • A new callback, onAdDismissed(), has been added to AdListener. This callback will execute immediately after the user exits an interstitial ad.
  • We added a new error code, NETWORK_TIMEOUT, that is returned when the connection to the ad server timed out before the ad could be retrieved. This kind of error had previously been classified as a NETWORK_ERROR.

Other Changes for Version 5.3.9 (April 24, 2014)

  • Interstitial ads are now supported by the Amazon Mobile Ad Network. Online documentation and Javadocs have been updated to include instructions for these full-page ads, which are represented by the newly introduced InterstitialAd objects.
  • A new interface, Ad, has been introduced. Ad is implemented by both AdLayout and InterstitialAd.
  • A new class, DefaultAdListener, has been added as a default implementation of AdListener. Developers are encouraged to create a custom listener that extends this class instead of implementing AdListener directly.
  • The Amazon Mobile Ads API’s in-app browser, which is displayed by some ads, now features larger and more visible navigation buttons.
  • Fixed an uncommon issue where the WifiManager would cause the app to crash.
  • Changed ad rendering logic to account for a rare crash caused by setting a WebView’s JavaScript state.
  • Resolved an issue that would prevent ads from detecting clicks in rare cases.
  • Added a loadAd() method that takes in no parameters. Developers are encouraged to use this method in cases where they would have previously passed in an empty AdTargetingOptions object.
  • AdTargetingOptions.setGender() has been deprecated because this information is no longer used for targeting purposes.
  • A new method, setFloorPrice(), has been added to AdTargetingOptions. This allows developers to the set the floor price (eCPM) of their ads without having to use setAdvancedOption().
  • Introduced a new sample app, Interstitial Ad Sample, for the purpose of demonstrating how to set up interstitial ads. See the Interstitial Ad Sample Page for more information.
  • Updated the Simple Ad Sample and Floating Ad Sample apps based on recent changes.

Version 5.1 (Updated April 3, 2014)

Changes for Version 5.1.242 (April 3, 2014)

  • Fixed a ConcurrentModificationException that could occur when attempting to load an ad.

Changes for Version 5.1.236 (March 24, 2014)

  • Reworded an error message that incorrectly said to reload an ad in the case where ad loading failed due to an app being disabled.
  • Fixed a crash that would occur when the Internet permission was not present.
  • Fixed an issue where a missing activity would cause the app to crash after an ad click.

Changes for Version 5.1.153 (October 28, 2013)

  • AdTargetingOptions.setAdvancedOption() will now throw an IllegalArgumentException if the key is null or empty.
  • Removed a deprecated API warning, "can't find referenced method void setPluginsEnabled()," that would sometimes appear in the logcat. See the Amazon Mobile Ads Forum for more details.
  • Addressed a threading issue caused by the WebViews and Views not being created on the same thread.
  • Addressed runtime error with rich media ads on Android 1.6, where Bitmap Drawable Constructor would cause the app to exit.
  • Removed reference warnings that would sometimes appear when ProGuard is used. See the Amazon Mobile Ads Forum for more details.
  • Improved corrupt WebView detection. See the Amazon Mobile Ads Forum for more details.
  • Addressed several use cases resulting in NullPointerExceptions.
  • Addressed use case resulting in ConcurrentModificationException.

Changes for Version 5.1.40 (August 28, 2013)

  • Resolved an issue where floating ad banners with view height set as WRAP_CONTENT would not render correctly on some Android 4.0 devices.
  • The AdRegistration method registerApp() now accepts a Context parameter.
  • Removed a misleading "could not find method" error message that would appear in the logcat upon ad load attempts.
  • The Amazon Mobile Ads API is now bundled as part of the Amazon Mobile App SDK download.
  • This Release Notes page has been created to replace the README file that was previously included in the Amazon Mobile Ads API download. This page will be updated with each new release.
  • Rich media expandable ads are supported on Android 4.1 and Android 4.2.
  • The Auto Ad Size feature is now available for ads created in memory to be moved onto the screen at a later time. Examples of such ads can be seen in the Floating Ad Sample. Note that, if the AdLayout's dimension is set to MATCH_PARENT for one of these ads, the activity's root view's corresponding dimension will be used for the Auto Ad Size calculation.
  • Updated sample apps to use Auto Ad Size by default.
  • Ad rendering no longer depends on resource files bundled inside the jar. This will make integration easier with Unity and other app development frameworks that had previously stripped these resource files from the jar during the integration process.
  • Updated test ads and the Developer Launch Checklist to include new Pinzon test banner ad.
  • Fixed an issue where floating ad banners would scale inconsistently on some older devices.
  • AdLayouts created off the screen in memory must now have their layout parameters set ahead of time in order for ad loading to succeed. Leaving the parameters blank had previously caused ads to scale incorrectly.

Version 5.0 (Updated May 31, 2013)

Breaking Changes

Amazon Mobile Ads API version 5.0 contains a number of breaking changes. If you are upgrading to this version from an older version, your app may not compile until you have addressed the following:
  • In the AndroidManifest.xml file, the MraidBrowser and VideoActionHandler activity declarations should be removed. They have been replaced by a single AdActivity declaration that must appear as follows:
    <activity android:name="com.amazon.device.ads.AdActivity" android:configChanges="keyboardHidden|orientation|screenSize"/>
  • The following AdRegistration methods no longer accept a Context parameter: setAppKey(), enableLogging(), enableTesting(), and getVersion().
  • The AdRegistration method registerApp() takes an Activity parameter instead of a more general Context parameter.
  • The AdSize enum has been replaced with a package-level AdSize class. To specify a standard ad size, you should use one of the predefined AdSize fields that take the form SIZE_WxH. So, for example, if you previously set the ad size by passing AdLayout.AdSize.AD_SIZE_320x50 into your AdLayout constructor, you should instead pass in AdSize.SIZE_320x50. Note that the process for setting the size via layout XML has not changed.
  • The "custom" size is no longer accepted. To use a non-standard size, you will need to instantiate a new AdSize object that takes width and height as its parameters and pass this into your AdLayout. If setting the size via layout XML, you can now directly specify the dimensions using Amazon:adSize="WxH"
  • The AdLayout constructor now takes an Activity parameter instead of a more general Context parameter.
  • When using XML instantiation, please use the new namespace for the Amazon prefix as follows: This replaces the previous namespace ending with "res/<your.package.name/>"
  • The amazon_ads_attr.xml file is no longer required. Please remove it from your application.

Other Changes

  • Resolved an issue where obfuscating an application's R class would prevent ads from loading. You may now safely obfuscate your R class.
  • Fixed a memory leak issue related to lingering Context objects.
  • Documented a workaround for ensuring required resource files aren't removed during integration with Unity, Adobe AIR, or other development frameworks.
  • Logcat messages from XML-instantiated layouts now log if they are warning or error.
  • Introduced an additional layout XML AdLayout constructor for accepting default style.

Version 4.3 (Updated May 28, 2013)


  • Added an ad failure message to warn developers when required resource files have been removed from the APK.
  • Introduced Auto Ad Size for ad banners. From now on, if AdSize is not specified in the AdLayout's initialization within your app's XML or Java code, then an ad size will be automatically selected based upon the AdLayout's size and the device's screen size.
  • A new AdLayout constructor that only requires app's context has been introduced. Any ads loaded within this AdLayout will be sized through Auto Ad Size.
  • Resolved an issue that prevented the Amazon Mobile Ads API from being obfuscated.
  • Modified ad scaling behavior to ensure AdLayouts with one dimension set to WRAP_CONTENT will resize based on the other dimension.
  • Changed the "no results" error code from INTERNAL_ERROR to NO_FILL.
  • Handled a NullPointerException sometimes seen when the MAC Address could not be read.
  • Resolved a SQLite database access conflict that occasionally prevented ads from loading.
  • Fixed an issue in which package parameters could become double-encoded in the request URL, preventing ads from loading.
  • Eliminated a rich media banner cropping issue that had affected Android 4.0 devices and had prompted a workaround that involved setting the AdLayout's width to MATCH_PARENT. This workaround is no longer necessary.

Version 4.0 (Updated March 6, 2013)


  • Resolved an issue that sometimes prevented ads from loading due to an inability to read ad size from the app's XML files.
  • The PDF version of the Developer Guide has been replaced by a shortcut that redirects to the online version of the Developer Guide. Open the shortcut using your web browser.
  • All error messages have been redesigned for simplification purposes. See the updated Developer Guide or Javadocs for more information.
  • This release is now compatible with the Amazon Mobile App SDK Eclipse Plugin. Note that you will need to extract the mobile ads zip file (MobileAds.zip) to the same folder as the Apps-SDK zip file (Apps-SDK.zip) to take advantage of this Eclipse plugin. Learn more by visiting the Eclipse Plugin Page.
  • The deprecated AdRegistration functions setAppGUID() and setAppUniqueID() have now been removed. Please use setAppKey() instead.
  • Instructions for updating open source attribution documents have been included in the "Updating Attributions" section of the Developer Guide.