# GoogleInteractiveMediaAds Framework Reference

# Protocols

The following protocols are available globally.
- `


  ### [IMAAVPlayerVideoDisplayDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAAVPlayerVideoDisplayDelegate)


  ` A callback protocol for IMAAVPlayerVideoDisplayDelegate.

  #### Declaration

  Swift

      protocol IMAAVPlayerVideoDisplayDelegate : NSObjectProtocol

  Objective-C

      @protocol IMAAVPlayerVideoDisplayDelegate <NSObject>

- `


  ### [IMAAdPlaybackInfo](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAAdPlaybackInfo)


  ` Groups various properties of the ad player.

  #### Declaration

  Swift

      protocol IMAAdPlaybackInfo : NSObjectProtocol

  Objective-C

      @protocol IMAAdPlaybackInfo <NSObject>

[## IMAAdsLoaderDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols#/IMAAdsLoaderDelegate)

- `


  ### [IMAAdsLoaderDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAAdsLoaderDelegate)


  ` Delegate object that receives state change callbacks from IMAAdsLoader.

  #### Declaration

  Swift

      protocol IMAAdsLoaderDelegate

  Objective-C

      @protocol IMAAdsLoaderDelegate

[## IMAAdsManagerDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols#/IMAAdsManagerDelegate)

- `


  ### [IMAAdsManagerDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAAdsManagerDelegate)


  ` A callback protocol for IMAAdsManager.

  #### Declaration

  Swift

      protocol IMAAdsManagerDelegate

  Objective-C

      @protocol IMAAdsManagerDelegate

[## IMALinkOpenerDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols#/IMALinkOpenerDelegate)

- `


  ### [IMALinkOpenerDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMALinkOpenerDelegate)


  ` 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>

[## IMACompanionDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols#/IMACompanionDelegate)

- `


  ### [IMACompanionDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMACompanionDelegate)


  ` Delegate to receive events from the companion ad slot.

  #### Declaration

  Swift

      protocol IMACompanionDelegate : NSObjectProtocol

  Objective-C

      @protocol IMACompanionDelegate <NSObject>

- `


  ### [IMAContentPlayhead](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAContentPlayhead)


  ` 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

- `


  ### [IMASecureSignalsAdapter](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMASecureSignalsAdapter)


  ` Adapter that provides secure signal(3rd party signal only) to the IMA SDK to be included in an
  - auction.

  #### Declaration

  Swift

      protocol IMASecureSignalsAdapter : NSObjectProtocol

  Objective-C

      @protocol IMASecureSignalsAdapter <NSObject>

[## IMAStreamManagerDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols#/IMAStreamManagerDelegate)

- `


  ### [IMAStreamManagerDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAStreamManagerDelegate)


  ` A callback protocol for IMAStreamManager.

  #### Declaration

  Swift

      protocol IMAStreamManagerDelegate

  Objective-C

      @protocol IMAStreamManagerDelegate

- `


  ### [IMAVideoDisplayDelegate](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAVideoDisplayDelegate)


  ` Delegate object that receives state change callbacks from IMAVideoDisplay.

  #### Declaration

  Swift

      protocol IMAVideoDisplayDelegate : NSObjectProtocol

  Objective-C

      @protocol IMAVideoDisplayDelegate <NSObject>

- `


  ### [IMAVideoDisplay](https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAVideoDisplay)


  ` Declares a simple video display class used for ad playback.

  #### Declaration

  Swift

      protocol IMAVideoDisplay : https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAAdPlaybackInfo

  Objective-C

      @protocol IMAVideoDisplay <https://developers.google.com/ad-manager/dynamic-ad-insertion/sdk/ios/reference/Protocols/IMAAdPlaybackInfo>