# GoogleInteractiveMediaAds Framework Reference

# IMAVideoDisplayDelegate

    @protocol IMAVideoDisplayDelegate <NSObject>

Delegate object that receives state change callbacks from IMAVideoDisplay.
- `


  ### [-videoDisplayDidLoad:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidLoad:)


  ` Informs the SDK that the ad has loaded.

  #### Declaration

  Swift

      func videoDisplayDidLoad(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidLoad:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that loaded the ad |

- `


  ### [-videoDisplayDidStart:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidStart:)


  ` Informs the SDK the ad has started playback. This must be called at most once per loadStream:
  or loadUrl: call.

  #### Declaration

  Swift

      func videoDisplayDidStart(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidStart:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that started ad playback |

- `


  ### [-videoDisplayDidPause:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidPause:)


  ` Informs the SDK the ad has paused.

  #### Declaration

  Swift

      func videoDisplayDidPause(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidPause:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that paused ad playback |

- `


  ### [-videoDisplayDidResume:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidResume:)


  ` Informs the SDK the ad has resumed playback.

  #### Declaration

  Swift

      func videoDisplayDidResume(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidResume:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that resumed ad playback |

- `


  ### [-videoDisplayDidComplete:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidComplete:)


  ` Informs the SDK the ad has completed playback.

  #### Declaration

  Swift

      func videoDisplayDidComplete(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidComplete:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that completed ad playback |

- `


  ### [-videoDisplayDidClick:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidClick:)


  ` Informs the SDK the ad was clicked.

  #### Declaration

  Swift

      func videoDisplayDidClick(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidClick:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that received the ad click |

- `


  ### [-videoDisplay:didReceiveError:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplay:didReceiveError:)


  ` Informs the SDK the ad playback failed due to an error.

  #### Declaration

  Swift

      func videoDisplay(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html, didReceiveError error: any Error)

  Objective-C

      - (void)videoDisplay:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay
           didReceiveError:(nonnull NSError *)error;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that failed to play the ad |
  | ` error ` | the error that caused the video display to fail to play the ad |

- `


  ### [-videoDisplayDidSkip:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidSkip:)


  ` Informs the SDK the ad was skipped.

  #### Declaration

  Swift

      func videoDisplayDidSkip(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidSkip:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that skipped the ad |

- `


  ### [-videoDisplayDidShowSkip:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidShowSkip:)


  ` Informs the SDK the ad skip button appeared.

  #### Declaration

  Swift

      func videoDisplayDidShowSkip(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidShowSkip:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that showed the skip button |

- `


  ### [-videoDisplay:volumeChangedTo:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplay:volumeChangedTo:)


  ` Informs the SDK that the ad volume was changed.

  #### Declaration

  Swift

      func videoDisplay(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html, volumeChangedTo volume: NSNumber)

  Objective-C

      - (void)videoDisplay:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay
           volumeChangedTo:(nonnull NSNumber *)volume;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that changed the ad volume |
  | ` volume ` | the new volume of the ad being played |

- `


  ### [-videoDisplay:didProgressWithMediaTime:totalTime:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplay:didProgressWithMediaTime:totalTime:)


  ` Informs the SDK that the video ad progressed.

  #### Declaration

  Swift

      func videoDisplay(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html, didProgressWithMediaTime mediaTime: TimeInterval, totalTime duration: TimeInterval)

  Objective-C

      - (void)videoDisplay:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay
          didProgressWithMediaTime:(NSTimeInterval)mediaTime
                         totalTime:(NSTimeInterval)duration;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that progressed |
  | ` mediaTime ` | the current time of the ad being played |
  | ` duration ` | the total duration of the ad being played |

- `


  ### [-videoDisplay:didReceiveTimedMetadata:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplay:didReceiveTimedMetadata:)


  ` Informs the SDK that timed metadata was received.

  #### Declaration

  Swift

      func videoDisplay(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html, didReceiveTimedMetadata metadata: [String : String])

  Objective-C

      - (void)videoDisplay:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay
          didReceiveTimedMetadata:
              (nonnull NSDictionary<NSString *, NSString *> *)metadata;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that received the timed metadata event |
  | ` metadata ` | the metadata dictionary received with the timed metadata event |

- `


  ### [-videoDisplay:didBufferToMediaTime:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplay:didBufferToMediaTime:)


  ` Informs the SDK the video ad is buffered to \|mediaTime\| in seconds.

  #### Declaration

  Swift

      optional func videoDisplay(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html, didBufferToMediaTime mediaTime: TimeInterval)

  Objective-C

      - (void)videoDisplay:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay
          didBufferToMediaTime:(NSTimeInterval)mediaTime;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay whose buffer was updated |
  | ` mediaTime ` | the time in seconds of ad media that has been buffered. |

- `


  ### [-videoDisplayIsPlaybackReady:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayIsPlaybackReady:)


  ` Informs the SDK the ad is buffered and playback is likely to keep up.

  #### Declaration

  Swift

      optional func videoDisplayIsPlaybackReady(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayIsPlaybackReady:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that is playback ready |

- `


  ### [-videoDisplayDidStartBuffering:](https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplayDelegate#/c:objc(pl)IMAVideoDisplayDelegate(im)videoDisplayDidStartBuffering:)


  ` Informs the SDK the ad's media buffer is empty and playback will stall.

  #### Declaration

  Swift

      optional func videoDisplayDidStartBuffering(_ videoDisplay: any https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html)

  Objective-C

      - (void)videoDisplayDidStartBuffering:(nonnull id<https://developers.google.com/interactive-media-ads/docs/sdks/tvos/client-side/reference/Protocols/IMAVideoDisplay.html>)videoDisplay;

  #### Parameters

  |---|---|
  | ` videoDisplay ` | the IMAVideoDisplay that started buffering |