# IMAAdsLoader

    @interface IMAAdsLoader : NSObject

The IMAAdsLoader class allows the requesting of ads from the ad server.
Use the delegate to receive the loaded ads or loading error
in case of failure.
- `


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


  ` SDK-wide settings. Note that certain settings will only be evaluated during initialization of
  the adsLoader.

  #### Declaration

  Swift

      @NSCopying var settings: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMASettings.html { get }

  Objective-C

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

- `


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


  ` Delegate that receives IMAAdsLoaderDelegate callbacks.

  #### Declaration

  Swift

      weak var delegate: (any https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdsLoaderDelegate.html)? { get set }

  Objective-C

      @property (nonatomic, weak, nullable) id<https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Protocols/IMAAdsLoaderDelegate.html> delegate;

- `


  ### [+sdkVersion](https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsLoader#/c:objc(cs)IMAAdsLoader(cm)sdkVersion)


  ` Returns the SDK version.

  #### Declaration

  Swift

      class func sdkVersion() -> String

  Objective-C

      + (nonnull NSString *)sdkVersion;

  #### Return Value

  the SDK version
- `


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


  ` Initializes an IMAAdsLoader with specific settings. The loader takes 1-2 seconds to setup once
  initialized, therefore reusing a single instance of the ads loader is encouraged to minimize ad
  request times.

  #### Declaration

  Swift

      init(settings: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMASettings.html?)

  Objective-C

      - (nonnull instancetype)initWithSettings:(nullable https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMASettings.html *)settings;

  #### Parameters

  |---|---|
  | ` settings ` | the IMASettings to use for SDK wide settings. Uses defaults when nil. |

  #### Return Value

  an IMAAdsLoader instance with given IMASettings
- `


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


  ` Initializes the IMAAdsLoader with default settings. The loader takes 1-2 seconds to setup once
  initialized, therefore reusing a single instance of the ads loader is encouraged to minimize ad
  request times.

  #### Declaration

  Swift

      init()

  Objective-C

      - (nonnull instancetype)init;

  #### Return Value

  an IMAAdsLoader instance with default IMASettings
- `


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


  ` Request ads from the ad server. The loader takes 1-2 seconds to setup on init and become ready
  to make ad requests. So reusing the same IMAAdsLoader instance is encouraged when making ad
  requests in order to minimize ad request times.

  #### Declaration

  Swift

      func requestAds(with request: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest.html)

  Objective-C

      - (void)requestAdsWithRequest:(nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAAdsRequest.html *)request;

  #### Parameters

  |---|---|
  | ` request ` | the IMAAdsRequest. If it was created for use with Picture-in-Picture, this IMAAdsLoader instance's IMASettings must have backround playback enabled |

- `


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


  ` Request a stream with ads inserted dynamically. Reusing the same IMAAdsLoader instance is
  encouraged when making stream requests in order to minimize stream request latency.

  #### Declaration

  Swift

      func requestStream(with request: https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAStreamRequest.html)

  Objective-C

      - (void)requestStreamWithRequest:(nonnull https://developers.google.com/interactive-media-ads/docs/sdks/ios/client-side/reference/Classes/IMAStreamRequest.html *)request;

  #### Parameters

  |---|---|
  | ` request ` | the stream request |

- `


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


  ` Signal to the SDK that the content has completed. The SDK will play
  post-rolls at this time, if any are scheduled.

  #### Declaration

  Swift

      func contentComplete()

  Objective-C

      - (void)contentComplete;