Defines an interface for a class that tracks video content progress and
exposes a key value observable property |currentTime|.
The SDK provides an implementation for tracking AVPlayer-based playback
in the IMAAVPlayerContentPlayhead.
Publishers can supply their own implementation by implementing this
interface and this way support any other video playback implementation
they might have.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-21 UTC."],[[["\u003cp\u003eThis documentation details the protocols available globally for the Interactive Media Ads SDK for iOS.\u003c/p\u003e\n"],["\u003cp\u003eThese protocols facilitate interactions between your app and the IMA SDK, handling events such as ad loading, playback, and companion ads.\u003c/p\u003e\n"],["\u003cp\u003eKey protocols include \u003ccode\u003eIMAAdsLoaderDelegate\u003c/code\u003e, \u003ccode\u003eIMAAdsManagerDelegate\u003c/code\u003e, \u003ccode\u003eIMACompanionDelegate\u003c/code\u003e, and \u003ccode\u003eIMAVideoDisplayDelegate\u003c/code\u003e for managing ad interactions.\u003c/p\u003e\n"],["\u003cp\u003eProtocols such as \u003ccode\u003eIMAContentPlayhead\u003c/code\u003e enable content progress tracking, while \u003ccode\u003eIMASecureSignalsAdapter\u003c/code\u003e facilitates the inclusion of secure signals in auctions.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can implement these protocols to customize ad behavior and integrate the IMA SDK into their iOS applications.\u003c/p\u003e\n"]]],[],null,["Protocols\n\nThe following protocols are available globally.\n- `\n ``\n ``\n `\n\n [IMAAVPlayerVideoDisplayDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAVPlayerVideoDisplayDelegate)`\n ` \n A callback protocol for IMAAVPlayerVideoDisplayDelegate. \n\n Declaration \n Swift \n\n protocol IMAAVPlayerVideoDisplayDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol IMAAVPlayerVideoDisplayDelegate \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n [IMAAdPlaybackInfo](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdPlaybackInfo)`\n ` \n Groups various properties of the ad player. \n\n Declaration \n Swift \n\n protocol IMAAdPlaybackInfo : NSObjectProtocol\n\n Objective-C \n\n @protocol IMAAdPlaybackInfo \u003cNSObject\u003e\n\n[IMAAdsLoaderDelegate](#/IMAAdsLoaderDelegate)\n\n- `\n ``\n ``\n `\n\n [IMAAdsLoaderDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdsLoaderDelegate)`\n ` \n Delegate object that receives state change callbacks from IMAAdsLoader. \n\n Declaration \n Swift \n\n protocol IMAAdsLoaderDelegate\n\n Objective-C \n\n @protocol IMAAdsLoaderDelegate\n\n[IMAAdsManagerDelegate](#/IMAAdsManagerDelegate)\n\n- `\n ``\n ``\n `\n\n [IMAAdsManagerDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdsManagerDelegate)`\n ` \n A callback protocol for IMAAdsManager. \n\n Declaration \n Swift \n\n protocol IMAAdsManagerDelegate\n\n Objective-C \n\n @protocol IMAAdsManagerDelegate\n\n[IMALinkOpenerDelegate](#/IMALinkOpenerDelegate)\n\n- `\n ``\n ``\n `\n\n [IMALinkOpenerDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMALinkOpenerDelegate)`\n ` \n Signals that a link has been opened/closed.\n For an external app (Mobile Safari/App deep link), the delegate is only notified\n before opening. \n\n Declaration \n Swift \n\n protocol IMALinkOpenerDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol IMALinkOpenerDelegate \u003cNSObject\u003e\n\n[IMACompanionDelegate](#/IMACompanionDelegate)\n\n- `\n ``\n ``\n `\n\n [IMACompanionDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMACompanionDelegate)`\n ` \n Delegate to receive events from the companion ad slot. \n\n Declaration \n Swift \n\n protocol IMACompanionDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol IMACompanionDelegate \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n [IMAContentPlayhead](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAContentPlayhead)`\n ` \n Defines an interface for a class that tracks video content progress and\n exposes a key value observable property \\|currentTime\\|.\n The SDK provides an implementation for tracking AVPlayer-based playback\n in the IMAAVPlayerContentPlayhead.\n Publishers can supply their own implementation by implementing this\n interface and this way support any other video playback implementation\n they might have. \n\n Declaration \n Swift \n\n protocol IMAContentPlayhead\n\n Objective-C \n\n @protocol IMAContentPlayhead\n\n- `\n ``\n ``\n `\n\n [IMASecureSignalsAdapter](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMASecureSignalsAdapter)`\n ` \n Adapter that provides secure signal(3rd party signal only) to the IMA SDK to be included in an\n - auction. \n\n Declaration \n Swift \n\n protocol IMASecureSignalsAdapter : NSObjectProtocol\n\n Objective-C \n\n @protocol IMASecureSignalsAdapter \u003cNSObject\u003e\n\n[IMAStreamManagerDelegate](#/IMAStreamManagerDelegate)\n\n- `\n ``\n ``\n `\n\n [IMAStreamManagerDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAStreamManagerDelegate)`\n ` \n A callback protocol for IMAStreamManager. \n\n Declaration \n Swift \n\n protocol IMAStreamManagerDelegate\n\n Objective-C \n\n @protocol IMAStreamManagerDelegate\n\n- `\n ``\n ``\n `\n\n [IMAVideoDisplayDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAVideoDisplayDelegate)`\n ` \n Delegate object that receives state change callbacks from IMAVideoDisplay. \n\n Declaration \n Swift \n\n protocol IMAVideoDisplayDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol IMAVideoDisplayDelegate \u003cNSObject\u003e\n\n- `\n ``\n ``\n `\n\n [IMAVideoDisplay](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAVideoDisplay)`\n ` \n Declares a simple video display class used for ad playback. \n\n Declaration \n Swift \n\n protocol IMAVideoDisplay : /interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdPlaybackInfo\n\n Objective-C \n\n @protocol IMAVideoDisplay \u003c/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdPlaybackInfo\u003e"]]