# IMAAdsRequest

    @interface IMAAdsRequest : NSObject

Data class describing the ad request.
- `


  ### [adTagUrl](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)adTagUrl)


  ` Specifies the full URL to use for ads loading from an ad server. Required
  for any `adsRequest`. For details on constructing the ad tag url,
  see [Create a main ad video tag manually](https://support.google.com/dfp_premium/answer/1068325).

  #### Declaration

  Swift

      var adTagUrl: String? { get }

  Objective-C

      @property (nonatomic, copy, readonly, nullable) NSString *adTagUrl;

- `


  ### [adsResponse](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)adsResponse)


  ` Specifies a VAST, VMAP, or ad rules response to be used instead of making a
  request through an ad tag URL. This can be useful for debugging and other situations
  in which an ad response is already available.

  #### Declaration

  Swift

      var adsResponse: String? { get }

  Objective-C

      @property (nonatomic, copy, readonly, nullable) NSString *adsResponse;

- `


  ### [adDisplayContainer](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)adDisplayContainer)


  ` The ad display container.

  #### Declaration

  Swift

      var adDisplayContainer: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html { get }

  Objective-C

      @property (nonatomic, readonly) https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html *_Nonnull adDisplayContainer;

- `


  ### [userContext](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)userContext)


  ` The user context.

  #### Declaration

  Swift

      var userContext: Any? { get }

  Objective-C

      @property (nonatomic, readonly, nullable) id userContext;

- `


  ### [adWillAutoPlay](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)adWillAutoPlay)


  ` Specifies whether the player intends to start the content and ad in
  response to a user action or whether they will be automatically played.
  Changing this setting will have no impact on ad playback.

  #### Declaration

  Swift

      var adWillAutoPlay: Bool { get set }

  Objective-C

      @property (nonatomic) BOOL adWillAutoPlay;

- `


  ### [adWillPlayMuted](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)adWillPlayMuted)


  ` Specifies whether the player intends to start the content and ad with no volume.
  Changing this setting will have no impact on ad playback.

  #### Declaration

  Swift

      var adWillPlayMuted: Bool { get set }

  Objective-C

      @property (nonatomic) BOOL adWillPlayMuted;

- `


  ### [continuousPlayback](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)continuousPlayback)


  ` Specifies whether the player intends to continuously play the content videos one after
  another similar to TV broadcast. Not calling this function leaves the setting as unknown.
  Note: Changing this setting will have no impact on ad playback.

  #### Declaration

  Swift

      var continuousPlayback: Bool { get set }

  Objective-C

      @property (nonatomic) BOOL continuousPlayback;

- `


  ### [contentDuration](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)contentDuration)


  ` Specifies the duration of the content in seconds to be shown. Used in AdX requests. This
  parameter is optional.

  #### Declaration

  Swift

      var contentDuration: Float { get set }

  Objective-C

      @property (nonatomic) float contentDuration;

- `


  ### [contentKeywords](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)contentKeywords)


  ` Specifies the keywords used to describe the content to be shown. Used in AdX requests. This
  parameter is optional.

  #### Declaration

  Swift

      var contentKeywords: [String]? { get set }

  Objective-C

      @property (nonatomic, copy, nullable) NSArray<NSString *> *contentKeywords;

- `


  ### [contentTitle](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)contentTitle)


  ` Specifies the title of the content to be shown. Used in AdX requests. This parameter is
  optional.

  #### Declaration

  Swift

      var contentTitle: String? { get set }

  Objective-C

      @property (nonatomic, copy, nullable) NSString *contentTitle;

- `


  ### [secureSignals](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)secureSignals)


  ` Specifies the Secure Signal with custom data for this ads request. Secure Signal with custom
  data is an encrypted blob containing signals collected by the publisher and previously agreed
  upon by the publisher and bidder. The Secure Signal with custom data can be cleared out by
  passing null to this function.

  #### Declaration

  Swift

      var secureSignals: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMASecureSignals.html? { get set }

  Objective-C

      @property (nonatomic, strong, nullable) https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMASecureSignals.html *secureSignals;

- `


  ### [contentURL](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)contentURL)


  ` Specifies the universal link to the content's screen. If provided, this parameter is passed to
  the OM SDK. See [Apple
  documentation](https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content) for more information.

  #### Declaration

  Swift

      var contentURL: URL? { get set }

  Objective-C

      @property (nonatomic, copy, nullable) NSURL *contentURL;

- `


  ### [vastLoadTimeout](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)vastLoadTimeout)


  ` Specifies the VAST load timeout in milliseconds for the initial request and any subsequent
  wrappers. This parameter is optional and will override the default timeout.

  #### Declaration

  Swift

      var vastLoadTimeout: Float { get set }

  Objective-C

      @property (nonatomic) float vastLoadTimeout;

- `


  ### [liveStreamPrefetchSeconds](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(py)liveStreamPrefetchSeconds)


  ` Specifies the maximum amount of time to wait in seconds, after calling requestAds,
  before requesting the ad tag URL. This can be used to stagger requests during a
  live-stream event, in order to mitigate spikes in the number of requests.

  #### Declaration

  Swift

      var liveStreamPrefetchSeconds: Float { get set }

  Objective-C

      @property (nonatomic) float liveStreamPrefetchSeconds;

- `


  ### [-initWithAdsResponse:adDisplayContainer:avPlayerVideoDisplay:pictureInPictureProxy:userContext:](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(im)initWithAdsResponse:adDisplayContainer:avPlayerVideoDisplay:pictureInPictureProxy:userContext:)


  ` Initializes an ads request instance with the given canned ads response and ad display
  container with Picture-in-Picture support. Serial ad requests may reuse the
  same IMAAdDisplayContainer by first calling \[IMAAdsManager destroy\] on its
  current adsManager. Concurrent requests must use different ad containers.

  #### Declaration

  Swift

      convenience init(adsResponse: String, adDisplayContainer: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html, avPlayerVideoDisplay: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAVPlayerVideoDisplay.html, pictureInPictureProxy: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAPictureInPictureProxy.html, userContext: Any?)

  Objective-C

      - (nonnull instancetype)
            initWithAdsResponse:(nonnull NSString *)adsResponse
             adDisplayContainer:(nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html *)adDisplayContainer
           avPlayerVideoDisplay:
               (nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAVPlayerVideoDisplay.html *)avPlayerVideoDisplay
          pictureInPictureProxy:
              (nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAPictureInPictureProxy.html *)pictureInPictureProxy
                    userContext:(nullable id)userContext;

  #### Parameters

  |---|---|
  | ` adsResponse ` | the canned ads response |
  | ` adDisplayContainer ` | the IMAAdDisplayContainer for rendering the ad UI |
  | ` avPlayerVideoDisplay ` | the IMAAVPlayerVideoDisplay for rendering ads |
  | ` pictureInPictureProxy ` | the IMAPictureInPictureProxy for tracking PIP events |
  | ` userContext ` | the user context for tracking requests (optional) |

  #### Return Value

  the IMAAdsRequest instance
- `


  ### [-initWithAdsResponse:adDisplayContainer:contentPlayhead:userContext:](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(im)initWithAdsResponse:adDisplayContainer:contentPlayhead:userContext:)


  ` Initializes an ads request instance with the given canned ads response and ad display
  container. Serial ad requests may reuse the same IMAAdDisplayContainer by
  first calling \[IMAAdsManager destroy\] on its current adsManager. Concurrent
  requests must use different ad containers. Does not support Picture-in-Picture.

  #### Declaration

  Swift

      init(adsResponse: String, adDisplayContainer: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html, contentPlayhead: (any NSObjectProtocol & https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAContentPlayhead.html)?, userContext: Any?)

  Objective-C

      - (nonnull instancetype)
          initWithAdsResponse:(nonnull NSString *)adsResponse
           adDisplayContainer:(nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html *)adDisplayContainer
              contentPlayhead:(nullable NSObject<https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAContentPlayhead.html> *)contentPlayhead
                  userContext:(nullable id)userContext;

  #### Parameters

  |---|---|
  | ` adsResponse ` | the canned ads response |
  | ` adDisplayContainer ` | the IMAAdDisplayContainer for rendering the ad UI |
  | ` contentPlayhead ` | the IMAContentPlayhead for the content player (optional) |
  | ` userContext ` | the user context for tracking requests (optional) |

  #### Return Value

  the IMAAdsRequest instance
- `


  ### [-initWithAdTagUrl:adDisplayContainer:avPlayerVideoDisplay:pictureInPictureProxy:userContext:](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(im)initWithAdTagUrl:adDisplayContainer:avPlayerVideoDisplay:pictureInPictureProxy:userContext:)


  ` Initializes an ads request instance with the given ad tag URL and ad display
  container with Picture-in-Picture support. Serial ad requests may reuse the
  same IMAAdDisplayContainer by first calling \[IMAAdsManager destroy\] on its
  current adsManager. Concurrent requests must use different ad containers.

  #### Declaration

  Swift

      convenience init(adTagUrl: String, adDisplayContainer: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html, avPlayerVideoDisplay: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAVPlayerVideoDisplay.html, pictureInPictureProxy: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAPictureInPictureProxy.html, userContext: Any?)

  Objective-C

      - (nonnull instancetype)initWithAdTagUrl:(nonnull NSString *)adTagUrl
                            adDisplayContainer:
                                (nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html *)adDisplayContainer
                          avPlayerVideoDisplay:
                              (nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAVPlayerVideoDisplay.html *)avPlayerVideoDisplay
                         pictureInPictureProxy:
                             (nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAPictureInPictureProxy.html *)pictureInPictureProxy
                                   userContext:(nullable id)userContext;

  #### Parameters

  |---|---|
  | ` adTagUrl ` | the ad tag URL |
  | ` adDisplayContainer ` | the IMAAdDisplayContainer for rendering the ad UI |
  | ` avPlayerVideoDisplay ` | the IMAAVPlayerVideoDisplay for rendering ads |
  | ` pictureInPictureProxy ` | the IMAPictureInPictureProxy for tracking PIP events |
  | ` userContext ` | the user context for tracking requests (optional) |

  #### Return Value

  the IMAAdsRequest instance
- `


  ### [-initWithAdTagUrl:adDisplayContainer:contentPlayhead:userContext:](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest#/c:objc(cs)IMAAdsRequest(im)initWithAdTagUrl:adDisplayContainer:contentPlayhead:userContext:)


  ` Initializes an ads request instance with the given ad tag URL and ad display
  container. Serial ad requests may reuse the same IMAAdDisplayContainer by
  first calling \[IMAAdsManager destroy\] on its current adsManager. Concurrent
  requests must use different ad containers. Does not support Picture-in-Picture.

  #### Declaration

  Swift

      init(adTagUrl: String, adDisplayContainer: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html, contentPlayhead: (any NSObjectProtocol & https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAContentPlayhead.html)?, userContext: Any?)

  Objective-C

      - (nonnull instancetype)
            initWithAdTagUrl:(nonnull NSString *)adTagUrl
          adDisplayContainer:(nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdDisplayContainer.html *)adDisplayContainer
             contentPlayhead:(nullable NSObject<https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAContentPlayhead.html> *)contentPlayhead
                 userContext:(nullable id)userContext;

  #### Parameters

  |---|---|
  | ` adTagUrl ` | the ad tag URL |
  | ` adDisplayContainer ` | the IMAAdDisplayContainer for rendering the ad UI |
  | ` contentPlayhead ` | the IMAContentPlayhead for the content player (optional) |
  | ` userContext ` | the user context for tracking requests (optional) |

  #### Return Value

  the IMAAdsRequest instance