- Upgraded Facebook SDK support to 4.8.0.
- Facebook Audience Network custom events for native and native video automatically display Facebook's AdChoices icon.
- Added mediation support for Facebook video.
- Bug fixes
- Added mp prefix to common constants.
- Fixed minor issue with video resuming during background to foreground transitions.
- Fixed minor issue generating the 'mute' video status event.
- Added MoPub prefixes to constants and category methods.
- Certified Tapjoy 11.2.2.
- Certified Vungle 3.2.0.
- Minimum supported iOS version is now 6.0.
- Updated native ad integration APIs.
- Improved native ad placer caching and request logic.
- Clicks are now automatically tracked for native ads that use the manual integration.
- Removed deprecated classes.
- Removed legacy custom event classes deprecated in 1.10.
- Removed MPTableViewAdManager class deprecated in 3.0.
- Added iOS 9 support.
- Added Privacy Information icon support for MoPub native ads.
- GA of rewarded video ad mediation.
- Added mediation support for AdColony, Chartboost, Vungle, and Unity rewarded video ads.
- Updated Millennial Media custom events (Millennial Media SDK 6.0+ only).
- Minor improvements.
- Bug fixes.
- didDismissInterstitial is now called when the dismiss animation has completed.
- Added VAST 3.0 standard support for video ads.
- Improved video player UX.
- Improved error messages.
- Improved deep link handling.
- Bug fixes.
- Fixed clickthrough behavior for MRAID ads that use iframes.
- Minor improvements.
- Added iAd medium rectangle ad support.
- Certified Google AdMob SDK version 7.1.0.
- Certified Greystripe SDK version 4.4.0.
- Certified Vungle SDK version 3.0.13.
- Added click callback support.
- Bug fixes.
- Addressed a race condition when receiving location updates after calling -
[MPGeolocationProvider disableLocationUpdates:]
.
- Addressed a race condition when receiving location updates after calling -
- Bug fixes.
- Fixed crash caused by some MRAID ads attempting to set an orientation that the app doesn't support.
- Deprecated custom event class methods and constants for setting ad network parameters.
- Changed banner minimum refresh time interval to 10 seconds.
- Greystripe custom events now accept parameters configured using app.mopub.com.
- Certified Facebook SDK Version 3.21.1.
- Bug fixes.
- Fixed MRAID force orientation command for MRAID interstitials.
- Fixed interstitial bug where sound and video would continue to play after dismissal.
- MRAID 2.0 support. The MoPub SDK is now compliant with the MRAID 2.0 specification to enable rich media ads in banners and interstitial ad units. Learn more about MRAID from the IAB. To minimize integration errors, please completely remove the existing MoPub SDK from your project and then integrate the latest version.
- Automatic geolocation updates. If your app already has location permissions, the MoPub SDK will automatically attempt to acquire location data for ad requests. Please use
locationUpdatesEnabled
inMoPub.h
to opt out of this functionality. The MoPub SDK will never prompt the user for permission if location permissions are not currently granted. - Added support for AdColony SDK 2.4.12.
- Bug fixes.
- Fixed displaying previously cached Chartboost interstitials.
- Fixed crash caused by refreshing Facebook banners after click.
- Fixed iAd interstitial dismissed callback on iOS 8
- Fixed HTML interstitial duplicate click trackers
- We have launched a new license as of version 3.2.0. To view the full license, visit http://www.mopub.com/legal/sdk-license-agreement/
- Updated native mediation framework to support Facebook Audience Network SDK 3.18.2
- If you're directly using
MPNativeAd
, you should implement theMPNativeAdDelegate
protocol found inMPNativeAdDelegate.h
and set the delegate property on yourMPNativeAd
instance.
- If you're directly using
- Added convenience methods to
MPTableViewAdPlacer
andMPCollectionViewAdPlacer
that default to using server-controlled native ad positioning+ (instancetype)placerWithTableView:viewController:defaultAdRenderingClass:(Class)defaultAdRenderingClass;
+ (instancetype)placerWithCollectionView:viewController:defaultAdRenderingClass:(Class)defaultAdRenderingClass;
- Fixed compiler error in
MPDiskLRUCache.m
ifOS_OBJECT_USE_OBJC
is false
- The MoPub SDK now uses Automatic Reference Counting
- Swift support: to use the MoPub SDK in your Swift project, simply import
MoPubSDK/MoPub-Bridging-Header.h
to your project and ensure the Objective-C Bridging Header build setting under Swift Compiler - Code Generation has a path to the header. - Updated Chartboost custom event (Chartboost SDK 5.0.1)
- Bug fixes
- mraid.js will reject mraid calls until the SDK signals it is ready
- banner ads will pause autorefresh when the app enters the background and resume autorefresh when the app enters the foreground
As of version 3.0.0, the MoPub SDK uses Automatic Reference Counting. If you're upgrading from an earlier version (2.4.0 or earlier) that uses Manual Reference Counting, in order to minimize integration errors with the manual removal of the -fno-objc-arc
compiler flag, our recommendation is to completely remove the existing MoPub SDK from your project and then integrate the latest version. Alternatively, you can manually remove the -fno-objc-arc
compiler flag from all MoPub SDK files. If your project uses Manual Reference Counting, you must add the -fobjc-arc
compiler flag to all MoPub SDK files.
- Simplified native ads integration: integration instructions and documentation are available on the GitHub wiki
- Updated Vungle custom event (Vungle SDK 3.0.8)
- Optional method
- (void)interstitialDidReceiveTapEvent:
added toMPInterstitialAdControllerDelegate
- Hardened native ad custom events against invalid image URLs
- MoPub base SDK is now 64-bit compatible (Please check mediated networks for 64-bit support)
- Certified support for InMobi 4.4.1, Greystripe/Conversant 4.3, and AdMob 6.9.3
- Additional measures to prevent autoloading deep-links without user interaction for banners
- Bug fixes
- A cached Millennial Media interstitial will be correctly loaded
- Fixed crash if the close button is quickly tapped after tapping an MRAID interstitial
- Native ads mediation: integration instructions and documentation are available on the GitHub wiki. Facebook and InMobi native ads may be mediated using the MoPub SDK.
- Native ads content filtering: Added the ability to specify which native ad elements you want to receive from the MoPub Marketplace to optimize bandwidth use and download only required assets, via
MPNativeAdRequestTargeting.desiredAssets
. This feature only works for the six standard Marketplace assets, found inMPNativeAdConstants.h
. Any additional elements added in direct sold ads will always be sent down in the extras. - Added star rating information to the
MPNativeAd
object, viaMPNativeAd.starRating
. This method returns anNSNumber
(double value) corresponding to an app's rating on a 5-star scale. - Bug fixes
- Handle Millennial Media SDK's
MillennialMediaAdWillTerminateApplication
notification - Ensured that banners never autorefresh until they have been loaded at least once
- Handle Millennial Media SDK's
- Improved user privacy protection
- Device identifiers are removed from logging output
- Improved user protection against auto-dialing ads
- Prompt user for confirmation when a
tel
URL is encountered
- Prompt user for confirmation when a
- Updated Millennial Media custom events (Millennial Media SDK 5.2+ only)
- Updated Vungle custom event (Vungle SDK 2.0+ only)
- Fixed Millennial Media SDK 5.2 banner custom event failover
- Added support for MoPub Native Ads. Please view the integration wiki here.
- Updated the minimum required iOS version to iOS 5.0
- Removed
TouchJSON
dependency.TouchJSON
files may be removed from your project.
- Removed
- AdColony Custom Event
- Supports AdColony as a custom native ad network for interstitial videos. Note that V4VC (virtual currency reward) is currently not supported.
- Handle ISO Latin-1 site encoding in addition to UTF-8
- Bug fixes
- Updated Chartboost custom event (Chartboost SDK 4.0+ only)
- Bug fixes
- Fixed iOS 7 bug where certain interstitial images may fail to load
- Updated InMobi custom events (InMobi SDK 4.0.3+ only)
- Bug fixes
- MRAID viewable property now correctly updates on app background and resume
- MRAID command urls are no longer re-encoded for processing
- Sample app improvements
- Improved manual ad unit entry view
- Save manually entered ad unit ids
- Ability to enter keywords for each ad unit
- Bug fixes
- MRAID
isViewable
command now correctly returns a boolean value
- MRAID
- Creative Controls
- Creative Flagging
- Important:
MPAdAlertGestureRecognizer
andMPAdAlertManager
classes as well asMessageUI.framework
must be added to your project to enable flagging functionality. - 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 within the ad view to flag a creative.
- Swipes must cover more than ⅓ of the ad width and must be completely horizontal.
- Only works for direct sold, Marketplace, and server to server ad network ads.
- Important:
- Blocked Popups
- Javascript alert, confirm, and prompt dialogs are blocked.
- Blocked Auto-redirects
- Ads that automatically redirect users to another page without user interaction are automatically blocked.
- Creative Flagging
- MoPub Video Pre-caching
- Video ads from the Marketplace will be pre-cached automatically and videos will not be shown until they can play without additional buffering.
- Simple Ads Demo Improvements
- 300x250 and 728x90 test spots added to the demo app.
- Vungle Custom Event
- Supports Vungle as a custom native ad network for interstitial videos.
- SKStoreProductViewController iOS 7 Orientation Crash Fix
- Fixes iOS 7 bug that causes SKStoreProductViewController to crash if the app does not list portrait as a supported orientation.
- Log more readable message in response to the "no ads available" server error.
- Updated mraid.getVersion() to return 2.0
- MRAID commands now properly handle encoded URLs.
- iOS 7 Gold Master support
- Verified compatibility with latest Millennial iOS SDK (5.1.1)
- Updated support for InMobi SDK version 4.0
- Bug fixes
- Important: As of version 1.14.0.0, the InMobi custom events packaged with the MoPub SDK only support InMobi version 4.00 and up. Follow the instructions here to integrate InMobi version 4.00 and up. If you would like to continue to use a prior version of the InMobi SDK, do not update the custom event files and follow the instructions here to integrate.
- Fixed an issue causing certain interstitials to be incorrectly centered or sized
- Updated the SDK bundle to include the Millennial Media 5.1.1 SDK
- Added support for creating calendar events, storing pictures, and video playback via MRAID APIs
- Fixed a rendering issue with HTML interstitials on iOS 5
- Fixed crashes resulting from delegate callbacks being executed on deallocated objects
-
Third-party ad network integrations are now implemented as custom events instead of adapters.
Please remove any old adapters from your code and use the new custom events located in the
AdNetworkSupport
folder instead. -
Added support for Millennial SDK 5.0
-
Updated Chartboost integration to honor the location parameter (configurable via the server)
-
Updated Custom Events API.
If you have implemented a Custom Event, please read the Custom Events documentation and update your code appropriately.
- The MoPub SDK now requires iOS 4.3+
- Removed all references to
[UIDevice uniqueIdentifier]
- Added support for opening iTunes links in an
SKStoreProductViewController
- Added session tracking
- Added numerous data signals (wireless connectivity, location accuracy, bundle version, telephony information) to ad requests
- Added test coverage to MoPub SDK
- Added .zip archive distribution options with bundled third party network SDKs. Learn more at the updated wiki.
- Added appledoc style Class Documentation
- Updated the MoPub Sample Application
- Updated to support Millennial SDK 5.1.0
- Fixed warnings resulting from duplicate category methods
- Fixed a crash occurring when an interstitial was tapped and dismissed immediately afterwards
- Fixed a memory leak when displaying MRAID ads
- Fixed inconsistency between ad request user agent and click-handling user agent
- Fixed crashes that occur when banners are deallocated in the process of displaying modal content
- Fixed issue causing expanded MRAID banner ads to obscure modal content
- Fixed issue in which impressions were not tracked properly for MRAID banner ads
- Added new API methods on
MPAdView
for managing ad refresh behavior (-startAutomaticallyRefreshingContents
and-stopAutomaticallyRefreshingContents
) - Deprecated
ignoresAutorefresh
property onMPAdView
- Fixed issue causing banners from custom HTML networks to be improperly sized
- Updated the SDK bundle to include the Millennial Media 5.0.1 SDK
- Fixed some leaks reported by the static analyzer
- Fixed issue causing a crash for legacy custom event methods
- Fixed issue causing refresh timer to not be scheduled properly on connection errors
- Updated the sample Chartboost custom event to avoid improperly setting the Chartboost delegate to nil in -dealloc
- Introduced custom event classes
- Fixed issue causing metrics-recording URLs to be incorrect when certain ad sources fail
- Fixed issue causing interstitials to be sized incorrectly when the status bar changes state
- Fixed issue preventing loading indicator from being dismissed properly for HTML interstitials
- Fixed issue that allows the browser controller to continue loading after it has been dismissed
- Added 'testing' property on
MPAdView
andMPInterstitialAdController
- Increased accuracy of iAd impression tracking
- Added support for iOS 6 and the new iPhone 5 screen size
- Added support for the Facebook ads test program
- Added support for
ASIdentifierManager
(UIDevice.identifierForAdvertising
replacement) - Re-introduced UDID as a fall-back identifier on earlier iOS ## Versions (with an opt-out mechanism)
- Fixed issues with redirecting certain native iOS URLs (e.g. itunes.apple.com) in the in-app browser
- Fixed an issue in which an interstitial might not dismiss properly when leaving an app via a click
- Updated the SimpleAdsDemo sample app for iOS 6
- Added clarity to certain console log entries
- Added some minor visual improvements to the click progress indicator
- Fixed a crash in
MPAdManager
due to uncanceled NSURLConnections - Fixed an issue with mraid://open URL decoding
- Fixed an issue in which third-party interstitials could block the display of subsequent HTML interstitials
- Fixed an issue in which third-party interstitials could trigger lifecycle callbacks after expiration
- Added iOS 6 view controller auto-rotation methods to
MPInterstitialAdController
- Added support for iOS 6 advertising identifier
- Removed references to
-[UIDevice uniqueIdentifier]
and OpenUDID - Added runtime checks for
CALayer
andUIActionSheet
selectors to prevent crashes on iOS 3.1 - Improved the Millennial interstitial adapter to handle all return values from
-checkForCachedAd
- Improved click experience to avoid blank screens when loading pages with many redirects
- Fixed an issue in which
MPAdView
would implicitly change its 'hidden' property - Fixed an issue in which the in-app browser failed to dismiss properly upon
-[UIApplication openURL:]
- Fixed issues in which the
MRAID.isViewable
method would erroneously return true - Fixed a divide-by-zero exception which occurred when presenting MRAID interstitials
- Added new API method for displaying an interstitial (
-showFromViewController:
) - Added new delegate property on
MPInterstitialAdController
- Deprecated old API method for displaying an interstitial (
-show:
) - Deprecated parent property on
MPInterstitialAdController
- Deprecated various callbacks in
MPInterstitialAdControllerDelegate
- Added support for Millennial Media SDK 4.5.5
- Modified Millennial Media interstitial adapter to be more robust to ad display failures
- Reduced the amount of logging messages regarding autorefresh
- Modified JSON deserializer to avoid getting NSNull objects
- Fixed issue in which interstitials could appear blank upon repeated show: calls
- Removed call to deprecated
SKMutablePayment
class method - Added APIs for enabling and disabling the in-app purchase transaction observer
- Fixed a memory leak in
MPInterstitialAdController
- Added support for OpenUDID as a optional replacement for
UIDevice's -uniqueIdentifier
- Fixed a bug in which landscape interstitials appeared off-center on iOS 5.0+
- Fixed some static analyzer warnings in
MPAdManager
andMPAdBrowserController
- Fixed a memory leak in
MPAdConversionTracker
- Changed '***CLEAR***' message to 'No ad available' for clarity
- Added support for Millennial Media leaderboard ads
- Changed behavior of
-setIgnoresAutorefresh:
to pause (rather than cancel) existing timers - Added support for interstitial custom events