# ImaAdsLoader.Builder

Artifact: [androidx.media3:media3-exoplayer-ima](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/ima/ImaAdsLoader.java+class:androidx.media3.exoplayer.ima.ImaAdsLoader.Builder)

*** ** * ** ***


```
class ImaAdsLoader.Builder
```

<br />

*** ** * ** ***

Builder for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader`.

## Summary

| ### Constants |
|---|---|
| `const https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | `@https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#DEFAULT_AD_PRELOAD_TIMEOUT_MS() = 10000` The default duration in milliseconds for which the player must buffer while preloading an ad group before that ad group is skipped and marked as having failed to load. |

| ### Public constructors |
|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#Builder(android.content.Context)(context: https://developer.android.com/reference/android/content/Context.html!)` Creates a new builder for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader`. |

| ### Public functions |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader!` | `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#build()()` Returns a new `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setAdErrorListener(com.google.ads.interactivemedia.v3.api.AdErrorEvent.AdErrorListener)(adErrorListener: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdErrorEvent.AdErrorListener.html!)` Sets a listener for ad errors that will be passed to `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsLoader.html#addAdErrorListener-com.google.ads.interactivemedia.v3.api.AdErrorEvent.AdErrorListener-` and `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/BaseManager.html#addAdErrorListener-com.google.ads.interactivemedia.v3.api.AdErrorEvent.AdErrorListener-`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setAdEventListener(com.google.ads.interactivemedia.v3.api.AdEvent.AdEventListener)(adEventListener: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdEvent.AdEventListener.html!)` Sets a listener for ad events that will be passed to `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/BaseManager.html#addAdEventListener-com.google.ads.interactivemedia.v3.api.AdEvent.AdEventListener-`. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setAdMediaMimeTypes(java.util.List<java.lang.String>)(adMediaMimeTypes: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!)` Sets the MIME types to prioritize for linear ad media. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setAdPreloadTimeoutMs(long)(adPreloadTimeoutMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)` Sets the duration in milliseconds for which the player must buffer while preloading an ad group before that ad group is skipped and marked as having failed to load. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setAdUiElements(java.util.Set<com.google.ads.interactivemedia.v3.api.UiElement>)(adUiElements: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/UiElement.html!>!)` Sets the ad UI elements to be rendered by the IMA SDK. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setCompanionAdSlots(java.util.Collection<com.google.ads.interactivemedia.v3.api.CompanionAdSlot>)( companionAdSlots: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html<https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/CompanionAdSlot.html!>! )` Sets the slots to use for companion ads, if they are present in the loaded ad. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setDebugModeEnabled(boolean)(debugModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to enable outputting verbose logs for the IMA extension and IMA SDK. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setEnableContinuousPlayback(boolean)(enableContinuousPlayback: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to enable continuous playback. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setEnableCustomTabs(boolean)(enableCustomTabs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to enable custom tabs for the ad click-through URLs. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setFocusSkipButtonWhenAvailable(boolean)(focusSkipButtonWhenAvailable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to focus the skip button (when available) on Android TV devices. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setImaSdkSettings(com.google.ads.interactivemedia.v3.api.ImaSdkSettings)(imaSdkSettings: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.html!)` Sets the IMA SDK settings. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setMaxMediaBitrate(int)(bitrate: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the media maximum recommended bitrate for ads, in bps. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setMediaLoadTimeoutMs(int)(mediaLoadTimeoutMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the ad media load timeout, in milliseconds. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setPlayAdBeforeStartPosition(boolean)(playAdBeforeStartPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html)` Sets whether to play an ad before the start position when beginning playback. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setVastLoadTimeoutMs(int)(vastLoadTimeoutMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html)` Sets the VAST load timeout, in milliseconds. |
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | `@https://checkerframework.org/api/com/google/errorprone/annotations/CanIgnoreReturnValue.html @https://developer.android.com/reference/kotlin/androidx/media3/common/util/UnstableApi https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setVideoAdPlayerCallback(com.google.ads.interactivemedia.v3.api.player.VideoAdPlayer.VideoAdPlayerCallback)( videoAdPlayerCallback: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer.VideoAdPlayerCallback.html! )` Sets a callback to receive video ad player events. |

## Constants

### DEFAULT_AD_PRELOAD_TIMEOUT_MS

```
@UnstableApi
const val DEFAULT_AD_PRELOAD_TIMEOUT_MS = 10000: Long
```

The default duration in milliseconds for which the player must buffer while preloading an ad group before that ad group is skipped and marked as having failed to load.

This value should be large enough not to trigger discarding the ad when it actually might load soon, but small enough so that user is not waiting for too long.

| See also |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setAdPreloadTimeoutMs(long)` |   |

## Public constructors

### Builder

```
Builder(context: Context!)
```

Creates a new builder for `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader`.

| Parameters |
|---|---|
| `context: https://developer.android.com/reference/android/content/Context.html!` | The context; |

## Public functions

### build

```
fun build(): ImaAdsLoader!
```

Returns a new `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader`.

### setAdErrorListener

```
@CanIgnoreReturnValue
@UnstableApi
fun setAdErrorListener(adErrorListener: AdErrorEvent.AdErrorListener!): ImaAdsLoader.Builder!
```

Sets a listener for ad errors that will be passed to `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsLoader.html#addAdErrorListener-com.google.ads.interactivemedia.v3.api.AdErrorEvent.AdErrorListener-` and `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/BaseManager.html#addAdErrorListener-com.google.ads.interactivemedia.v3.api.AdErrorEvent.AdErrorListener-`.

| Parameters |
|---|---|
| `adErrorListener: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdErrorEvent.AdErrorListener.html!` | The ad error listener. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

### setAdEventListener

```
@CanIgnoreReturnValue
@UnstableApi
fun setAdEventListener(adEventListener: AdEvent.AdEventListener!): ImaAdsLoader.Builder!
```

Sets a listener for ad events that will be passed to `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/BaseManager.html#addAdEventListener-com.google.ads.interactivemedia.v3.api.AdEvent.AdEventListener-`.

| Parameters |
|---|---|
| `adEventListener: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdEvent.AdEventListener.html!` | The ad event listener. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

### setAdMediaMimeTypes

```
@CanIgnoreReturnValue
@UnstableApi
fun setAdMediaMimeTypes(adMediaMimeTypes: (Mutable)List<String!>!): ImaAdsLoader.Builder!
```

Sets the MIME types to prioritize for linear ad media. If not specified, MIME types supported by the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/MediaSource.Factory` used to construct the `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/source/ads/AdsMediaSource` will be used.

| Parameters |
|---|---|
| `adMediaMimeTypes: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-list/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-list/index.html<https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html!>!` | The MIME types to prioritize for linear ad media. May contain `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#APPLICATION_MPD()`, `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#APPLICATION_M3U8()`, `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#VIDEO_MP4()`, `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#VIDEO_WEBM()`, `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#VIDEO_H263()`, `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#AUDIO_MP4()` and `https://developer.android.com/reference/kotlin/androidx/media3/common/MimeTypes#AUDIO_MPEG()`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.html#setMimeTypes-java.util.List&lt;java.lang.String&gt;-` |   |

### setAdPreloadTimeoutMs

```
@CanIgnoreReturnValue
@UnstableApi
fun setAdPreloadTimeoutMs(adPreloadTimeoutMs: Long): ImaAdsLoader.Builder!
```

Sets the duration in milliseconds for which the player must buffer while preloading an ad group before that ad group is skipped and marked as having failed to load. Pass `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET()` if there should be no such timeout. The default value is `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#DEFAULT_AD_PRELOAD_TIMEOUT_MS()` ms.

The purpose of this timeout is to avoid playback getting stuck in the unexpected case that the IMA SDK does not load an ad break based on the player's reported content position.

The value will be adjusted to be greater or equal to the one in `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder#setVastLoadTimeoutMs(int)` if provided.

| Parameters |
|---|---|
| `adPreloadTimeoutMs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html` | The timeout buffering duration in milliseconds, or `https://developer.android.com/reference/kotlin/androidx/media3/common/C#TIME_UNSET()` for no timeout. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

### setAdUiElements

```
@CanIgnoreReturnValue
@UnstableApi
fun setAdUiElements(adUiElements: (Mutable)Set<UiElement!>!): ImaAdsLoader.Builder!
```

Sets the ad UI elements to be rendered by the IMA SDK.

| Parameters |
|---|---|
| `adUiElements: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-set/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-set/index.html<https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/UiElement.html!>!` | The ad UI elements to be rendered by the IMA SDK. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.html#setUiElements-java.util.Set&lt;com.google.ads.interactivemedia.v3.api.UiElement&gt;-` |   |

### setCompanionAdSlots

```
@CanIgnoreReturnValue
@UnstableApi
fun setCompanionAdSlots(
    companionAdSlots: (Mutable)Collection<CompanionAdSlot!>!
): ImaAdsLoader.Builder!
```

Sets the slots to use for companion ads, if they are present in the loaded ad.

| Parameters |
|---|---|
| `companionAdSlots: (https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-mutable-collection/index.html)https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-collection/index.html<https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/CompanionAdSlot.html!>!` | The slots to use for companion ads. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/BaseDisplayContainer.html#setCompanionSlots-java.util.Collection&lt;com.google.ads.interactivemedia.v3.api.CompanionAdSlot&gt;-` |   |

### setDebugModeEnabled

```
@CanIgnoreReturnValue
@UnstableApi
fun setDebugModeEnabled(debugModeEnabled: Boolean): ImaAdsLoader.Builder!
```

Sets whether to enable outputting verbose logs for the IMA extension and IMA SDK. The default value is `false`. This setting is intended for debugging only, and should not be enabled in production applications.

| Parameters |
|---|---|
| `debugModeEnabled: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enable outputting verbose logs for the IMA extension and IMA SDK. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.html#setDebugMode-boolean-` |   |

### setEnableContinuousPlayback

```
@CanIgnoreReturnValue
@UnstableApi
fun setEnableContinuousPlayback(enableContinuousPlayback: Boolean): ImaAdsLoader.Builder!
```

Sets whether to enable continuous playback. Pass `true` if content videos will be played continuously, similar to a TV broadcast. This setting may modify the ads request but does not affect ad playback behavior. The requested value is unknown by default.

| Parameters |
|---|---|
| `enableContinuousPlayback: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enable continuous playback. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRequest.html#setContinuousPlayback-boolean-` |   |

### setEnableCustomTabs

```
@CanIgnoreReturnValue
@UnstableApi
fun setEnableCustomTabs(enableCustomTabs: Boolean): ImaAdsLoader.Builder!
```

Sets whether to enable custom tabs for the ad click-through URLs. The default value is `
false`.

| Parameters |
|---|---|
| `enableCustomTabs: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to enable custom tabs for the ad click-through URLs. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.html#setEnableCustomTabs-boolean-` |   |

### setFocusSkipButtonWhenAvailable

```
@CanIgnoreReturnValue
@UnstableApi
fun setFocusSkipButtonWhenAvailable(focusSkipButtonWhenAvailable: Boolean): ImaAdsLoader.Builder!
```

Sets whether to focus the skip button (when available) on Android TV devices. The default setting is `true`.

| Parameters |
|---|---|
| `focusSkipButtonWhenAvailable: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to focus the skip button (when available) on Android TV devices. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.html#setFocusSkipButtonWhenAvailable-boolean-` |   |

### setImaSdkSettings

```
@CanIgnoreReturnValue
@UnstableApi
fun setImaSdkSettings(imaSdkSettings: ImaSdkSettings!): ImaAdsLoader.Builder!
```

Sets the IMA SDK settings. The provided settings instance's player type and version fields may be overwritten.

If this method is not called the default settings will be used.

| Parameters |
|---|---|
| `imaSdkSettings: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.html!` | The `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/ImaSdkSettings.html`. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

### setMaxMediaBitrate

```
@CanIgnoreReturnValue
@UnstableApi
fun setMaxMediaBitrate(bitrate: @IntRange(from = 1) Int): ImaAdsLoader.Builder!
```

Sets the media maximum recommended bitrate for ads, in bps.

| Parameters |
|---|---|
| `bitrate: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The media maximum recommended bitrate for ads, in bps. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.html#setBitrateKbps-int-` |   |

### setMediaLoadTimeoutMs

```
@CanIgnoreReturnValue
@UnstableApi
fun setMediaLoadTimeoutMs(mediaLoadTimeoutMs: @IntRange(from = 1) Int): ImaAdsLoader.Builder!
```

Sets the ad media load timeout, in milliseconds.

| Parameters |
|---|---|
| `mediaLoadTimeoutMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The ad media load timeout, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRenderingSettings.html#setLoadVideoTimeout-int-` |   |

### setPlayAdBeforeStartPosition

```
@CanIgnoreReturnValue
@UnstableApi
fun setPlayAdBeforeStartPosition(playAdBeforeStartPosition: Boolean): ImaAdsLoader.Builder!
```

Sets whether to play an ad before the start position when beginning playback. If `
true`, an ad will be played if there is one at or before the start position. If `
false`, an ad will be played only if there is one exactly at the start position. The default setting is `true`.

| Parameters |
|---|---|
| `playAdBeforeStartPosition: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html` | Whether to play an ad before the start position when beginning playback. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

### setVastLoadTimeoutMs

```
@CanIgnoreReturnValue
@UnstableApi
fun setVastLoadTimeoutMs(vastLoadTimeoutMs: @IntRange(from = 1) Int): ImaAdsLoader.Builder!
```

Sets the VAST load timeout, in milliseconds.

| Parameters |
|---|---|
| `vastLoadTimeoutMs: @https://developer.android.com/reference/kotlin/androidx/annotation/IntRange(from = 1) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-int/index.html` | The VAST load timeout, in milliseconds. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/AdsRequest.html#setVastLoadTimeout-float-` |   |

### setVideoAdPlayerCallback

```
@CanIgnoreReturnValue
@UnstableApi
fun setVideoAdPlayerCallback(
    videoAdPlayerCallback: VideoAdPlayer.VideoAdPlayerCallback!
): ImaAdsLoader.Builder!
```

Sets a callback to receive video ad player events. Note that these events are handled internally by the IMA SDK and this ads loader. For analytics and diagnostics, new implementations should generally use events from the top-level `https://developer.android.com/reference/kotlin/androidx/media3/common/Player` listeners instead of setting a callback via this method.

| Parameters |
|---|---|
| `videoAdPlayerCallback: https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer.VideoAdPlayerCallback.html!` | The callback to receive video ad player events. |

| Returns |
|---|---|
| `https://developer.android.com/reference/kotlin/androidx/media3/exoplayer/ima/ImaAdsLoader.Builder!` | This builder, for convenience. |

| See also |
|---|---|
| `https://developers.google.com/interactive-media-ads/docs/sdks/android/client-side/api/reference/com/google/ads/interactivemedia/v3/api/player/VideoAdPlayer.VideoAdPlayerCallback.html` |   |