GoogleInteractiveMediaAds Framework Reference
Stay organized with collections
Save and categorize content based on your preferences.
Protocols
The following protocols are available globally.
-
A callback protocol for IMAAVPlayerVideoDisplayDelegate.
Declaration
Swift
protocol IMAAVPlayerVideoDisplayDelegate : NSObjectProtocol
Objective-C
@protocol IMAAVPlayerVideoDisplayDelegate <NSObject>
-
Groups various properties of the ad player.
Declaration
Swift
protocol IMAAdPlaybackInfo : NSObjectProtocol
Objective-C
@protocol IMAAdPlaybackInfo <NSObject>
-
Delegate object that receives state change callbacks from IMAAdsLoader.
Declaration
Swift
protocol IMAAdsLoaderDelegate
Objective-C
@protocol IMAAdsLoaderDelegate
-
A callback protocol for IMAAdsManager.
Declaration
Swift
protocol IMAAdsManagerDelegate
Objective-C
@protocol IMAAdsManagerDelegate
-
Signals that a link has been opened/closed.
For an external app (Mobile Safari/App deep link), the delegate is only notified
before opening.
Declaration
Swift
protocol IMALinkOpenerDelegate : NSObjectProtocol
Objective-C
@protocol IMALinkOpenerDelegate <NSObject>
-
Delegate to receive events from the companion ad slot.
Declaration
Swift
protocol IMACompanionDelegate : NSObjectProtocol
Objective-C
@protocol IMACompanionDelegate <NSObject>
-
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.
Declaration
Swift
protocol IMAContentPlayhead
Objective-C
@protocol IMAContentPlayhead
-
Adapter that provides secure signal(3rd party signal only) to the IMA SDK to be included in an
Declaration
Swift
protocol IMASecureSignalsAdapter : NSObjectProtocol
Objective-C
@protocol IMASecureSignalsAdapter <NSObject>
-
A callback protocol for IMAStreamManager.
Declaration
Swift
protocol IMAStreamManagerDelegate
Objective-C
@protocol IMAStreamManagerDelegate
-
Delegate object that receives state change callbacks from IMAVideoDisplay.
Declaration
Swift
protocol IMAVideoDisplayDelegate : NSObjectProtocol
Objective-C
@protocol IMAVideoDisplayDelegate <NSObject>
-
Declares a simple video display class used for ad playback.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-20 UTC.
[null,null,["Last updated 2025-08-20 UTC."],[[["\u003cp\u003eThis documentation outlines the various protocols available globally for dynamic ad insertion within the tvOS SDK.\u003c/p\u003e\n"],["\u003cp\u003eThese protocols handle ad playback, loading, management, and interactions like companion ads and link opening.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can leverage protocols like \u003ccode\u003eIMAAdsLoaderDelegate\u003c/code\u003e and \u003ccode\u003eIMAAdsManagerDelegate\u003c/code\u003e to control ad loading and playback behavior.\u003c/p\u003e\n"],["\u003cp\u003eProtocols such as \u003ccode\u003eIMACompanionDelegate\u003c/code\u003e and \u003ccode\u003eIMALinkOpenerDelegate\u003c/code\u003e allow for management of companion ads and tracking link interactions within ads.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eIMAContentPlayhead\u003c/code\u003e protocol enables developers to track content progress for ad insertion synchronization, while \u003ccode\u003eIMAVideoDisplay\u003c/code\u003e and \u003ccode\u003eIMAVideoDisplayDelegate\u003c/code\u003e handle ad display and state changes.\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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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](/ad-manager/dynamic-ad-insertion/sdk/tvos/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 : /ad-manager/dynamic-ad-insertion/sdk/tvos/reference/Protocols/IMAAdPlaybackInfo\n\n Objective-C \n\n @protocol IMAVideoDisplay \u003c/ad-manager/dynamic-ad-insertion/sdk/tvos/reference/Protocols/IMAAdPlaybackInfo\u003e"]]