- Support for VAST 2.0 video playback via MoPub Marketplace
- Short videos (less than 15 seconds) autoplay and and are unskippable
- Longer videos autoplay and are skippable after 5 seconds
- Note: The video cache can use up to 100 MB of internal storage. For developers sensitive to storage constraints, this value may be changed in
VastVideoInterstitial.CACHE_MAX_SIZE
.
- Updated InMobi custom event support to 4.0.0
- Added custom events for video ad network mediation, which can be found in the extras directory of the SDK (
/extras/src/com/mopub/mobileads/
)- Added the
AdColonyInterstitial
custom event - Added the
VungleInterstitial
custom event - Note: Virtual currency callbacks (v4vc) are not supported for the above ad networks
- Added the
- Enabled deeplinking via custom URIs in ad creatives
- All
WebView
s are removed from their parents beforedestroy()
; fixes GitHub issue #38 - Removed previously-deprecated
HTML5AdView
- Updated InMobi custom events to support InMobi SDK 4.0.3+ only
- MRAID viewable property now correctly updates on viewability change
MraidView
properly handles null schemes; fixes GitHub issue #63- Internal disk LRU cache correctly hashes keys when checking for existing files
- Added custom events for Google Play Services.
GooglePlayServicesBanner
andGooglePlayServicesInterstitial
can be found in the extras directory of the SDK (/extras/src/com/mopub/mobileads
) - Resolved issues with missing annotations on
addJavascriptInterface
whentargetSdkVersion
is set to API level 17 or above - Updated MoPub sample application to allow in-app text entry of ad unit IDs
- Fixed bug that caused clicks to not be recorded in the MoPub UI (introduced in 1.17.1)
- Improved creative controls
- Creative flagging
- Allows users to report certain inappropriate ad experiences directly to MoPub with a special gesture
- User must swipe back and forth at least four times in the ad view to flag a creative
- Swipes must cover more than 1/3 of the ad width and should be completely horizontal
- Only enabled for direct sold, Marketplace, and server-to-server networks ads
- Creatives that attempt to auto-redirect are now blocked; ads cannot redirect without user interaction
- Javascript alert, confirm, and prompt dialogs are blocked
- Creative flagging
- Improved responsiveness of
showInterstitial()
forHtmlInterstitial
s andMraidInterstitial
s by pre-rendering HTML content - Simplified internal construction and handling of
WebView
s by removingWebViewPool
and its subclasses - Updated mraid.getVersion() to return 2.0
Includes support for ads in the MRAID 2.0 format. MRAID 2.0 allows advertisers to create ads with rich media functionality, including adding calendar events, storing pictures and playing videos in the native video player. To learn more about MRAID 2.0, read our help article.
- Added the following MRAID 2.0 features:
createCalendarEvent
(Android 4.0 and above),playVideo
,storePicture
, andsupports
- Hardware Acceleration is now enabled by default for
MraidInterstitial
s on Android 4.0 and above - Ensured that Cursors in
FacebookKeywordProvider
are always closed properly; fixes GitHub issue #8 - Added tracking parameter to InMobi ad requests; fixes GitHub issue #15
- Banner WebViews are now removed from the view hierarchy before they are destroyed; fixes GitHub issue #23
To correctly display ads that ask the user to save a picture (storePicture ads), you need to make the following change to AndroidManifest.xml:
- Add the
WRITE_EXTERNAL_STORAGE
permission. Note: Adding the permission is optional. If the permission is not added, we will not deliver any store picture ads to the users' devices. All other features will remain functional without the new permission.
To allow users to play videos using the native video player:
- Declare activity
com.mopub.mobileads.MraidVideoPlayerActivity
. This activity is required to support playing videos in the native player and we strongly recommend adding it.
- Allowed Facebook Support to be disabled optionally with
setFacebookSupported(false)
:- Use
MoPubInterstitial.setFacebookSupported(false);
for interstitials - Use
MoPubView.setFacebookSupported(false);
for banners - Note: the
setFacebookSupported(false)
method call must come beforeloadAd()
- Note: facebook support is on by default
- Use
- Changed banner refresh default to be 60 seconds when requests timed out
- Fixed edge case in Millennial Media ad fetch failure when there is no inventory; fixes GitHub issue #18
- Fixed a bug where redirect URLs were malformed, causing the native browser to not render ads
- Updated Millennial Media jar to 5.1.0
- Updated Greystripe custom event support to 2.3.0
- Fixed MRAID 2.0
storePicture
command's messaging when a picture either fails to download or fails to save to device - Expanded MRAID 2.0
createCalendarEvent
command to support both minute- and second-level granularity
- Made the SDK more resilient to creatives that improperly use the
mopubnativebrowser://
scheme; fixes GitHub issue #36
- Removed
WebSettings.setPluginsEnabled()
so the SDK builds against Android API 18; fixes GitHub issue #28 - AdMob banners are now removed from the view hierarchy before they are destroyed; fixes the reopened GitHub issue #23
- Prevent ads from launching system features, such as a browser view, until the user has interacted with the ad.
- Updated documentation to remove the requirement for certain AndroidManifest permissions
- Fixed minor bug with MRAID 2.0
storePicture
command where the user sees a false download completed message
- Made the SDK more resilient to unexpected Flash creatives
- Provided improved support for Android Unity by moving all project resources (including layouts, javascript, images, and values) into source
- Removed reference to TYPE_DUMMY in AdUrlGenerator because it is not available in earlier versions of Android; fixes GitHub issue #3
- Fixed NPE in AdUrlGenerator when WiFi is off and Airplane mode is on; fixes GitHub issue #5
MraidInterstitial
s now properly notifyInterstitialAdListener
when they are shown and dismissed
- Wait until after loaded interstitials are shown to report an impression
- Remove phantom impression tracking from interstitials
- Remove extra whitespace from Millennial banner ads
- Added
onInterstitialClicked()
notification toInterstitialAdListener
- Provide default implementations for
BannerAdListener
andInterstitialAdListener
- Moved all Android code and documentation to its own repository: mopub-android-sdk
- Updated Millennial support to Millennial Media SDK version 5.0
- Support for Millennial Media SDK 5.0.1 is ready and will be released when the new Milllennial SDK becomes available
- Added
GoogleAdMobBanner
,GoogleAdMobInterstitial
,MillennialBanner
, andMillennialInterstitial
custom event classes - Removed obsolete native network adapters
- Added timeout for third-party networks (10 seconds for banners and 30 seconds for interstitials)
- Added more data signals (application version, connection type, and location accuracy)
- Updated Millennial support to Millennial Media SDK version 5.0.1
- Removed extraneous display call in
MillennialInterstitial
custom event - Fixed potential NPE in
AdView
's loadUrl() - Deprecated
HTML5AdView
after fixing some compilation issues
- Relaxed access modifiers for
CustomEventBanner
andCustomEventInterstitial
- Chartboost custom event now automatically parses server data
- Added support for Millennial Media SDK 5.0
- Initial support for data signals (connectivity and carrier)
- Deprecated multiple
MoPubView
event listener interfaces in favor of a unifiedMoPubView.BannerAdListener
interface - Deprecated
MoPubInterstitial
listener interface in favor of a newMoPubInterstitial.InterstitialAdListener
interface - Added "shown" and "dismissed" listener methods to
MoPubInterstitial.InterstitialAdListener
interface - Fixed a NullPointerException in
MoPubInterstitial
for waterfalls containing multiple custom events - Fixed a NullPointerException when tracking impressions for native network SDKs
- Fixed issue causing
MoPubView
to left-align HTML banners - Fixed issue causing incorrect return value for
isReady
when usingMoPubInterstitial
and custom events
- Introduced custom event classes
- Improved error logging during
AdFetch
- Fixed view resource ID conflicts in
MraidDisplayController
- Fixed issue in which un-implemented custom events could disrupt the mediation waterfall
- Added ability to force refresh ad units
- Added testing accessors to
MoPubView
andMoPubInterstitial
- Updated to correctly reflect MRAID capabilities in ad request
- Updated to perform
HttpClient
shutdown on background thread
- Added support for the Facebook ads test program
- Updated the Millennial adapters to support SDK version 4.6.0
- Fixed a crash resulting from following market:// links when Google Play is not installed
- Added in-app browser support for more Google Play redirect styles
- Added exponential backoff on ad server failure
- Included new ad unit IDs for sample ads in SimpleAdsDemo
- Removed extraneous image files
- Added support for Millennial Media leaderboard ads
- Improved click experience by directing clicks to an in-app browser
- Fixed errors loading mraid.js from disk on Android 4.0+
- Added
ThreadPoolExecutor
for AsyncTasks on Android 4.0+ - Fixed incorrect failover behavior for Custom Native Network banners
- Added support for Millennial Media SDK 4.5.5
- Fixed ANR relating to synchronization in
LoadUrlTask
- Fixed IllegalArgumentExceptions when creating HttpGet objects with malformed URLs
- Fixed some NullPointerExceptions in the AdMob and Millennial native adapters
- Fixed issues in which third-party adapters might not properly fail over
- Fixed a crash caused by unregistering non-existent broadcast receivers
- Fixed handling of potential SecurityExceptions from network connectivity checks
- Exposed keyword APIs for interstitials
- Fixed click-tracking for custom:// and other non-http intents
- Added support for custom events
- Added network connectivity check before loading an ad
- Added
OnAdPresentedOverlay
listener methods - Removed unnecessary permissions from the library's manifest