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,["# GoogleInteractiveMediaAds Framework Reference\n\nProtocols\n=========\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 `\n ` \n A callback protocol for IMAAVPlayerVideoDisplayDelegate. \n\n #### Declaration\n\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 `\n ` \n Groups various properties of the ad player. \n\n #### Declaration\n\n Swift \n\n protocol IMAAdPlaybackInfo : NSObjectProtocol\n\n Objective-C \n\n @protocol IMAAdPlaybackInfo \u003cNSObject\u003e\n\n[IMAAdsLoaderDelegate\n--------------------](#/IMAAdsLoaderDelegate)\n\n- `\n ``\n ``\n `\n\n ### [IMAAdsLoaderDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdsLoaderDelegate)\n\n `\n ` \n Delegate object that receives state change callbacks from IMAAdsLoader. \n\n #### Declaration\n\n Swift \n\n protocol IMAAdsLoaderDelegate\n\n Objective-C \n\n @protocol IMAAdsLoaderDelegate\n\n[IMAAdsManagerDelegate\n---------------------](#/IMAAdsManagerDelegate)\n\n- `\n ``\n ``\n `\n\n ### [IMAAdsManagerDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdsManagerDelegate)\n\n `\n ` \n A callback protocol for IMAAdsManager. \n\n #### Declaration\n\n Swift \n\n protocol IMAAdsManagerDelegate\n\n Objective-C \n\n @protocol IMAAdsManagerDelegate\n\n[IMALinkOpenerDelegate\n---------------------](#/IMALinkOpenerDelegate)\n\n- `\n ``\n ``\n `\n\n ### [IMALinkOpenerDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMALinkOpenerDelegate)\n\n `\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\n Swift \n\n protocol IMALinkOpenerDelegate : NSObjectProtocol\n\n Objective-C \n\n @protocol IMALinkOpenerDelegate \u003cNSObject\u003e\n\n[IMACompanionDelegate\n--------------------](#/IMACompanionDelegate)\n\n- `\n ``\n ``\n `\n\n ### [IMACompanionDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMACompanionDelegate)\n\n `\n ` \n Delegate to receive events from the companion ad slot. \n\n #### Declaration\n\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 `\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\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 `\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\n Swift \n\n protocol IMASecureSignalsAdapter : NSObjectProtocol\n\n Objective-C \n\n @protocol IMASecureSignalsAdapter \u003cNSObject\u003e\n\n[IMAStreamManagerDelegate\n------------------------](#/IMAStreamManagerDelegate)\n\n- `\n ``\n ``\n `\n\n ### [IMAStreamManagerDelegate](/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAStreamManagerDelegate)\n\n `\n ` \n A callback protocol for IMAStreamManager. \n\n #### Declaration\n\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 `\n ` \n Delegate object that receives state change callbacks from IMAVideoDisplay. \n\n #### Declaration\n\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 `\n ` \n Declares a simple video display class used for ad playback. \n\n #### Declaration\n\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"]]