AI-generated Key Takeaways
-
The Interactive Media Ads (IMA) SDK for iOS has undergone numerous updates including significant changes to privacy and compliance features like privacy manifests and App Tracking Transparency support.
-
Recent versions introduce extensive support for Google Video Stitcher, Pod Serving, and various Digital Ad Insertion (DAI) functionalities.
-
Performance enhancements such as ad preloading and native rendering with AVPlayer have been implemented across different releases.
-
The SDK has seen continuous API evolution with new classes, properties, and methods added or deprecated, along with updates to platform support, increasing minimum iOS requirements and adding support for newer devices.
-
Multiple bug fixes addressing memory leaks, event handling, and playback issues have been included in various releases.
- Enables interstitial support for Server-Directed Ad Insertion (SDAI) live and VOD streams by introducing a
useHLSInterstitialfield to the stream request. - Improves memory management for companion ads to prevent memory leaks when your application destroys the
adsManagerobject. - Increased minimum iOS version to 15.
- On 2026-10-22, SDK version 3.27.4 deprecates. For more details, see Deprecation schedule .
- Fixes
IMARemoteControlclass creation to only happen when the player starts playback. - On 2026-08-28, SDK version 3.26.1 deprecates. For more details, see Deprecation Schedule .
- Adds the ad period info to the
AD_PERIOD_STARTEDevent, which you can access fromIMAAdEvent.adDataproperty. - Adds support for handling HLS interstitials metadata with the IMA SDK.
- On 2026-04-02, SDK version 3.24.0 deprecates. For more details, see Deprecation Schedule .
- Adds network code to the list of stream request parameters for all stream types.
- Fires a LOG event when an invalid click-through URL is clicked, rather than failing silently.
- Fixes a memory leak when OMID sessions were improperly destroyed.
- Adds support for skippable ads in VOD Pod Serving streams.
- Fixes a bug with scrolling support when the video is embedded in a scrollable container.
- Adds support for
minSuggestedDurationto non-linear ads - Fixes a bug that caused incorrect encoding for Campaign Manager tracking URLs, in some cases.
- On 2025-12-03, SDK version 3.23.0 deprecates. For more details, see Deprecation Schedule .
- Adds
VODConfigIDto IMAVideoStitcherVODStreamRequest . - Makes the background transparent for companion ads.
- Rejects null value for
adTagURLinIMAAdsRequest. - Changes asset-level fallback logic to iterate through all ads in the original VAST until the SDK identifies a playable creative. If no playable creative is found, the ad isn't played.
- On 2025-06-12, SDK version 3.22.1 deprecates. For more details, see Deprecation Schedule .
- Fixes an issue with the most recent Cocoapods release which prevented apps from building on iOS Simulators.
- On 2025-04-12, SDK version 3.22.0 deprecates. For more details, see Deprecation Schedule .
- Adds a privacy manifest
PrivacyInfo.xcprivacyfile and a signature for the SDK. - Adds IMAVideoStitcherLiveStreamRequest.videoStitcherSessionOptions and IMAVideoStitcherVODStreamRequest.videoStitcherSessionOptions properties to set Cloud Video Stitcher's options for manifest generation .
- On 2025-04-03, SDK version 3.20.0 deprecates. For more details, see Deprecation Schedule .
- Enables companion ad support for pod serving
- Enable Pod Serving VOD stream requests.
- Adds a getter for cue points to the stream manager.
- On 2025-01-28, SDK version 3.19.2 deprecates. For more details, see Deprecation Schedule .
- Reduced minimum iOS version for compilation to iOS 12.
- On 2024-04-28, SDK version 3.19.1 deprecates. For more details, see Deprecation Schedule .
- Increased minimum iOS version for compilation to iOS 14.
- Removed support for the ARMv7 platform.
- Fixes an error where a click Ad Event wasn't fired on SIMID clickthrough.
- Stops incorrectly signalling OMID support in VPAID Secure mode.
- Fixes an issue with SIMID resize event support.
- Adds the IMAVideoStitcherVODStreamRequest class, which provides support for the Google Video Stitcher VOD API .
- On 2024-04-20, SDK version 3.18.5 deprecates. For more details, see Deprecation Schedule .
- Increases minimum version for the IMA SDK for iOS to iOS 14.
- Fixes a bug where user context wasn't passed with stream error.
- Enables Publisher first-party ID (formerly known as same app key) for apps that also bundle GMA version 9.14.0 and higher.
- Adds the IMAVideoStitcherLiveStreamRequest class, which provides support for the Google Video Stitcher Live API .
- Public beta release of Google Video Stitcher API
- Public beta release of Secure Signals API .
- On 2024-03-10, SDK version 3.18.4 deprecates. For more details, see Deprecation Schedule .
- Service release. No new features.
- On 2023-12-08, SDK version 3.18.2 deprecates. For more details, see Deprecation Schedule .
- Adds
user_contextto stream request. - Fixes erroneous "Invalid internal message" warnings.
- On 2023-11-07, SDK version 3.18.1 deprecates. For more details, see Deprecation Schedule .
- Fixes an issue that caused the SDK to crash with
UIViewControllerHierarchyInconsistency - On 2023-10-02, SDK version 3.17.0 deprecates. For more details, see Deprecation Schedule .
- Increases the maximum default bitrate for non-mobile devices if the maximum bitrate is not set by the publisher.
- On 2023-08-03, SDK version 3.16.3 deprecates. For more details, see Deprecation Schedule .
- Added
IMACompanionAdSlot.initWithView(view: UIView)to support fluid sized companion ads. - The IMA iOS SDK is now packaged as an xcframework.
- Adds M1 simulator support.
- Fixed an issue where it was possible to overwrite the IMA SDK version information.
- Fixed an issue where the iOS SDK created duplicate symbol warnings.
- On 2023-04-19, SDK version 3.15.1 deprecates. For more details, see Deprecation Schedule .
- Increased minimum iOS version to 12
- On 2023-02-23, SDK version 3.14.5 deprecates. For more details, see Deprecation Schedule .
- Added IMASettings:sameAppKeyEnabled API which helps you deliver more relevant and personalized ads by using data collected from your apps. The API is currently enabled by default with no changes needed from publishers.
- Added nullability contracts to all APIs.
- On 2022-10-05, SDK version 3.14.4 deprecates. For more details, see Deprecation Schedule .
- Fixed an issue that caused missing events when apps are backgrounded.
- Fixed an issue that allowed publishers to manually set
islaton iOS <14. - Increased minimum iOS version to iOS 11
- On 2022-07-06, SDK version 3.14.3 deprecates. For more details, see Deprecation Schedule .
- Fixed an issue that caused warning messages on iOS < 12.
- Added
IMASettings:sessionidto let publishers customize session ID. - Fixed an issue where ad pause and resume events would fire during content.
- Ensured ad UI content insets aren't adjusted automatically
- Last version of the IMA SDK for iOS to support iOS 10.
- On 2022-05-03, SDK version 3.14.1 deprecates. For more details, see Deprecation Schedule .
- Fixed an issue where duplicate ad events were sometimes fired when preloading was enabled.
- Implemented PodServing Support.
- Fixed an issue with double deeplink opening on iOS 13+.
- On 2022-02-17, SDK version 3.13.0 deprecates. For more details, see Deprecation Schedule .
- The SDK is now built with Xcode 12.
- Fixed an issue where seeking out of an ad break would not fire the
AD_BREAK_ENDEDevent. - Removed deprecated fields on
IMAAVPlayerVideoDisplay,IMAVideoDisplay,andIMAVideoDisplayDelegate. - Fixed an issue where PiP would minimize on each ad completion.
- Fixed a bug where live streams would end playback as soon as they were AirPlayed.
- Fixed an issue where pressing skip did nothing for shared playback.
- Fixed an issue where content would briefly flash between ads in a pod for shared playback.
- Added the
IMAAVPlayerVideoDisplay.streamAssetOptionsAPI. - Exposed ad period duration in
IMAStreamManagerDelegate. - Fixed an issue where an
"Ads cannot be requested because the ad container is not attached to the view hierarchy."error was fired erroneously. - On 2021-10-13, SDK version 3.12.1 deprecates. For more details, see Deprecation Schedule .
- Official release version for iOS 14.
- Added support for App Tracking Transparency. See request App Tracking Transparency authorization for more information.
- Fixed an issue where opening a click through and then closing the app would cause a memory leak.
- On 2021-08-11, SDK version 3.12.0 deprecates. For more details, see Deprecation Schedule .
- Adds support for Google's Additional Consent mode. For more information, see Google’s Additional Consent Mode technical specification .
- Adds support for the "language_name" key for stream subtitles.
- Fixes an issue that caused audio-only ads to timeout.
- Fixes an issue where skipping the first ad in a preroll would cause the second ad to ignore its own skip offset.
- Adds
viewControlleras a new required initialization argument or property forIMAAdDisplayContainer. - Reduces erroneous
RESUMEevents. - Adds
IMAAdsRenderingSettings.enablePreloading, which is enabled by default, to improve ad rendering performance. - Adds the
ICON_TAPPEDevent. - Fixes an issue where the
IABTCF_gdprApplieswas only acknowledged if it was a string. - On 2021-08-05, SDK version 3.11.4 deprecates. For more details, see Deprecation Schedule .
- Increases the minimum runtime version to iOS 10
- Fixes a bug where some UI updates could trigger on a background thread
- Fixes an issue where strict flags would make IMACompanionAd's init conflict with NSObject's
- Deprecates the
loadURLmethod on the IMAVideoDisplay protocol - Adds support for client-side SIMID ads
- On 2021-03-26, SDK version 3.11.3 deprecates. For more details, see Deprecation Schedule .
- 3.11.3 will be the final version of the IMA SDK that supports iOS 9.x
- Fixes a bug where importing the framework header did not import IMAFriendlyObstruction.h
- Fixes an issue where clickthroughs would crash on iOS 9.x
- On 2021-02-12, SDK version 3.11.2 deprecates. For more details, see Deprecation Schedule .
- Adds support for OMID 1.3 contentUrl with
AdsRequest:contentUrlandStreamRequest:contentUrl. - Reworks support for OMID 1.3 friendly obstructions to use
registerFriendlyObstructionmethods inIMAAdDisplayContainer. - Deprecates the
registerVideoControlsOverlayandunregisterAllVideoControlsOverlaymethods inIMAAdDisplayContainerin favor ofFriendlyObstruction. - Fixes an issue where OMID autoPlay and skippability weren't reported
- Removes all remaining references to UIWebView
- On 2021-01-22, SDK version 3.11.1 deprecates. For more details, see Deprecation Schedule .
- Adds support for automatic inclusion of consent parameters from IAB TCFv2 and CCPA.
- Fixes an issue that caused crashing when using the Control Center.
- Adds support for TrueView for Action ads.
- Adds
playerVideoDisplay:didLoadPlayerItem:for DAI. - Updates
IMAAVPlayerVideoDisplayDelegatenames for consistency with Obj-C style conventions. - Fixes an issue that prevented
LOGandINTERACTIONad events from including the ad object in some cases. - Adds automatic integration of Google Ad requests for implementations of IAB TCFv2-compliant consent management providers, such as Google's Funding Choices.
- Fixes an issue with VMAP
breakstartandbreakendtracking events. - Adds the
replaceAdTagParametersmethod to theIMAStreamManager, which provides the ability to replace all ad tag parameters during a live stream. - Adds the
AD_BREAK_FETCH_ERRORevent to indicate that an ad break will not play. - On 2020-12-04, SDK version 3.10.1 deprecates. For more details, see Deprecation Schedule .
- Adds support for iOS 13 and iPadOS.
- On 2020-09-19, SDK version 3.9.2 deprecates. For more details, see Deprecation Schedule .
- This fixes an issue where a clear IMA ad UI view would remain after ads had played, preventing the user from interacting with the player.
- On 2020-08-16, SDK version 3.9.1 deprecates. For more details, see Deprecation Schedule .
- Fixed issues with accuracy of
is_latreporting. -
IMAAdEventType.adDatais now typed. - Added the
authTokenandstreamFormatAPIs toIMAStreamRequest. - Removed
mediaUrlsupport fromLinearAd. UseadMediainstead. - Fixed YouTube metadata bug for unlisted videos.
- Fixed incorrect ad ID identification.
- Replaced
mediaWidthandmediaHeightwithadMedia.widthandadMedia.height. - Fixed an issue where companion ads would only render once.
- Now when a video ad type is not supported, the SDK will throw the error
kIMAError_VAST_TRAFFICKING_ERRORrather thankIMAError_FAILED_TO_REQUEST_ADS. -
videoDisplayDidPlay:is now deprecated, in favor ofvideoDisplayDidResume:. - On 2020-07-18, SDK version 3.9.0 deprecates. For more details, see Deprecation Schedule .
- Introduces support for the Open Measurement SDK for third-party viewability.
- Added a convenience initializer to
IMAAdDisplayContainerto create an ad display container with no companion slots. - Adds the
registerVideoControlsOverlay:andunregisterAllVideoControlsOverlays:methods toIMAAdDisplayContainer. - On 2020-03-22, SDK version 3.8.2 deprecates. For more details, see Deprecation Schedule .
- Adds the
AD_PERIOD_STARTEDandAD_PERIOD_ENDEDevents. These events are supported for DAI only . - Fixes an issue where the ad view animated on start.
- Fixes an issue where video errors weren't fired for Live or VOD.
- Fixes an issue where content did not resume on iOS+AirPlay.
- On 2020-02-19, SDK version 3.8.1 deprecates. For more details, see Deprecation Schedule .
- Fixes an issue where ad tags with multiple slot size were parsed incorrectly.
- Adds
[IMAVideoDisplay seekStreamToTime]to support skippable ads in IMA DAI VOD streams. - Adds
IMAAdRenderingSettings.loadVideoTimeout. - Adds
IMAAd.VASTMediaWidth,IMAAd.VASTMediaHeight, andIMAAd.VASTMediaBitrate. - Reduces binary size by ~15% due to build improvements.
- On 2019-11-13, SDK version 3.7.3 deprecates. For more details, see Deprecation Schedule .
- Improves error handling for a malformed stream manifest.
- Fixes an issue with custom in-app URL clickthroughs in HTML companions.
- Fixes an issue with back-to-back skippable video ads.
- On 2019-08-21, SDK version 3.7.2 deprecates. For more details, see Deprecation Schedule .
- Fixes an issue where some companions would expand to a full screen WebView.
- On 2019-05-15, SDK version 3.7.1 deprecates. For more details, see Deprecation Schedule .
- Adds
IMAAdsRequest.adWillPlayMuted - Changes VAST media load timeout to 8 seconds
- Fixes an issue with HTML companions
- Removes ad tag parameter documentation from
IMAStreamRequest. Ad tag parameters are documented in https://support.google.com/admanager/answer/7320898 and https://support.google.com/admanager/answer/7320899 . - On 2019-04-30, SDK version 3.7.0 deprecates. For more details, see Deprecation Schedule .
- Cocoapods-only release to fix a podspec error. Pulls down the library files for 3.7.0.
- Drops support for iOS 8 and below.
- Service release, no new features.
- On 2019-01-30, SDK version 3.6.1 deprecates. For more details, see Deprecation Schedule .
- Adds
IMAAdsRequest.liveStreamPrefetchSeconds. - On 2018-10-09, SDK version 3.6.0 deprecates. For more details, see Deprecation Schedule .
- Adds IMAAdsRequest.vastLoadTimeout.
- Adds IMAAd.wrapperAdIDs.
- Adds IMAAd.skipTimeOffset.
- Fixes an error where the SDK could not detect the video view used for ad playback if it was removed from and re-added to the view hierarchy.
- On 2018-07-24, SDK version 3.5.2 deprecates. For more details, see Deprecation Schedule .
- Removes auto-resuming when coming back into app from backgrounding.
Call
[IMAAdsManager resume]to resume. - Adds [IMAAdsRenderingSettings playAdsAfterTime].
- On 2018-05-02, SDK version 3.5.1 deprecates. For more details, see Deprecation Schedule .
- The SDK will now throw
kIMAError_FAILED_TO_REQUEST_ADSif theIMAAdDisplayContaineris not in the view hierarchy when an ad or stream request is made. Previously, these requests failed silently. - On 2018-04-03, SDK version 3.5.0 deprecates. For more details, see Deprecation Schedule .
- Fixes an issue with bitcode support.
- Adds adsResponse to the IMAAdsRequest object.
- Fixes an issue with Swift builds.
- On 2018-03-24, SDK version 3.4.2 deprecates. For more details, see Deprecation Schedule .
- Service release, no new features.
- On 2018-03-09, SDK version 3.4.1 deprecates. For more details, see Deprecation Schedule .
- The SDK is now distributed as a dynamic framework. As a result we no longer publish a separate AdMob version of the Framework - you can use the same version whether or not your implementation also uses AdMob.
- Adds support for video icons.
- Adds the following new properties to
IMAAd:-
adSystem -
creativeID -
creativeAdID -
universalAdIdValue -
universalAdIdRegistry -
advertiserName -
surveyURL -
dealID -
wrapperCreativeIDs -
wrapperSystems
-
- Adds the following new properties to
IMAAdsRequest:-
contentDuration -
contentKeywords -
contentTitle
-
- Adds
[IMAAdsManager setVolume:]. - Adds
[IMACompanionDelegate companionSlotWasClicked]. - Adds
IMASettings.disableNowPlayingInfo. - On 2018-02-03, SDK version 3.3.1 deprecates. For more details, see Deprecation Schedule .
- Due to issue with building for specific devices, rolled back to 3.3.1.
- The SDK is now distributed as a dynamic framework. As a result we no longer publish a separate AdMob version of the Framework - you can use the same version whether or not your implementation also uses AdMob.
- Adds support for video icons.
- Adds the following new properties to
IMAAd:-
adSystem -
creativeID -
creativeAdID -
universalAdIdValue -
universalAdIdRegistry -
advertiserName -
surveyURL -
dealID -
wrapperCreativeIDs -
wrapperSystems
-
- Adds the following new properties to
IMAAdsRequest:-
contentDuration -
contentKeywords -
contentTitle
-
- Adds
[IMAAdsManager setVolume:]. - Adds
[IMACompanionDelegate companionSlotWasClicked]. - Adds
IMASettings.disableNowPlayingInfo. - On 2018-01-26, SDK version 3.3.1 deprecates. For more details, see Deprecation Schedule .
- Drops support for iOS 7 and below.
- On 2017-09-16, SDK version 3.2.1 deprecates. For more details, see Deprecation Schedule .
- Adds bitcode support.
- Note: Due to an error, bitcode support was non-functional in this release.
- Adds bitcode support.
- Adds support for clickthrough URLs that lead to the app store.
- Out of beta.
- Adds support for Picture in Picture on iOS 9. For more information, see our Picture in Picture guide or our implementation in the Advanced Sample.
- IMAContentPlayhead should now be passed to the IMAAdsRequest instead of the IMAAdsManager.
- Adds support for HTML5 companions.
- Adds [IMAAdsManager discardAdBreak] .
- Updates to be compatible with iOS 9's App Transport Security feature.
- Fixes a crash on
IMAAdsLoaderdeallocation.
- Introduces ad buffer events via
IMAAdsManagerdelegates. This facilitates adding elements such as activity indicators and buffering bars to the player. - Exposes debugging mode. Publishers can now set the
IMASettings enableDebugModesetting toYESto get more verbose logging in the console. This should not be used in production, as it will watermark the ad player. -
IMAAdsManager destroynow correctly terminates ads in all cases. - Allows the reuse of display containers.
- Allows publishers to destroy IMA objects from within delegate methods.
-
IMAAdsManagernow only has a weak reference tocontentPlayhead(fixing potential memory leaks). You will now need to retain anyIMAAVPlayerContentPlayheadinstance or object that implementsIMAContentPlayheadas a property, otherwise the object will be immediately released. - Removes video resizing animation.
- Removes unnecessary initial resume ad event.
- Fixed an issue where the ad player would occasionally stop to buffer and never resume playback.
- Moved IMASettings to its own header file.
- Added support for background ad playback. For more info see Background Ad Playback .
- The SDK can now be imported as a framework. For more info on upgrading, see our blog post on this release.
- Reduced ad loading times on iOS 8.
- Fixed an issue where companion ads disappeared after an ad ended. Companions ads will now display until the slot is refreshed.
- Added a 10 second timeout for SDK loading.
- IMASettings now implements NSCopying.
- Fixed an issue where apps would crash when headphones were unplugged.
- Ads are now silenced when the device is silenced by default. The publisher can change this by setting the AVAudioSession category.
- Fixed bugs with Control Center play and pause not working on iOS versions less than 8.
- Ads are no longer paused when the notification drawer is opened.
- Added a VERSION file to the downloadable zip.
- To improve performance, ad rendering is now done natively via AVPlayer on all iOS versions.
- Now uses native ad playback on iOS 7 and older. This prevents the SDK from interfering with MPMoviePlayerController events and controls.
- Fixed an issue where adPlaybackInfo was not populated at the LOADED and START events.
- Adds
IMASettings.maxRedirectsto specify the number of redirects after which subsequent redirects will be denied, and the ad load aborted. - Adds support for manual ad playback .
- Fixes a memory leak introduced in Beta v10 with the addition of
WKWebView.
- The SDK now uses
WKWebViewon iOS 8 to render ads instead ofUIWebView. This fixes multiple issues related to communication between the SDK native and JS layers. As a side effect of this change, the IMA SDK will now require that your app be built with support for arm64. - Added a
TAPPEDevent which is fired whenever the user taps on a non-clickable part of an ad. This can be used to detect taps on an ad to show player controls. - To conform to iOS convention, the following methods have been deprecated and replaced with methods that take a reference to the calling object:
-
IMAAdsManagerDelegate-adDidProgressToTime:currentTime: -
IMAWebOpenerDelegate-willOpenInExternalBrowser -
IMAWebOpenerDelegate-willOpenInAppBrowser -
IMAWebOpenerDelegate-didCloseInAppBrowser -
IMAWebOpenerDelegate-didOpenInAppBrowser -
IMAWebOpenerDelegate-willCloseInAppBrowser
-
- Contains fixes for memory leaks in IMAJavascript classes.
- Introduces IMAUIElements , which allows showing or hiding SDK UI elements programmatically.
- Introduced the concept of IMAAdDisplayContainer and changed how companion ads are handled. See Changes to the IMA SDK for IOS for information on required code changes in your app.
- Removed references to OCMock headers and sources.
- Fixes slowly updating ad UI elements on iOS 8.
- Exposes description, title, and contentType on the IMAAd object.
- Adds support for the 64-bit iOS simulator
- Adds arm64 support.
- Fixes conflicts with integrations with Google+.
- Fixes memory leaks in IMAAdsManager and IMAAdsLoader.
- IMAAdPodInfo has three new APIs: podIndex, timeOffset, maxDuration. API docs will be updated to reflect this shortly.
- Service release, no new features.
- Public release of Beta version of SDK.
- Bug fixes.
- Localization of information displayed during ad playback.
- Minor API updates for controlling click-through.
- Added special library for applications that also use the Google AdMob Ads SDK .
- Initial Beta release.

