---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ads.yandex.com/helpcenter/en/dev/android/instream.md
  - https://ads.yandex.com/helpcenter/ru/dev/android/instream.md
  - https://ads.yandex.com/helpcenter/zh/dev/android/instream.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ads.yandex.com/helpcenter/en/llms.txt

# InStream ads

<!-- source: en/dev/_includes/instream-src.md -->
InStream is an ad format that lets you monetize your app by serving ads while video content is playing.

An InStream ad consists of a scenario with multiple video blocks. The type of video unit in an InStream scenario determines how the video ad should be played relative to the main video content.
<!-- endsource: en/dev/_includes/instream-src.md -->


{% cut "Appearance" %}

<iframe width="200" height="405.5" allow="autoplay" src="https://runtime.strm.yandex.ru/player/video/vplv3rdtxz33vz2uatii?autoplay=1&mute=0&loop=1&loop=1" frameborder="0" allowfullscreen></iframe>

{% endcut %}


## About InStream

<!-- source: en/dev/_includes/instream-src.md -->
To set up an InStream scenario, create a [video resource](https://yandex.com/support2/partner/en/video/resource#create-resource) in the Yandex Advertising Network interface. Once created, the video resource is assigned a unique identifier (Page ID). This ID should be used in the Mobile Ads SDK.

To increase ad revenue, you can set up playing multiple ads within a single ad placement: an AdPod. You can set up the AdPod for an ad placement in the Yandex Advertising Network interface. 

Types of video units supported by the Mobile Ads SDK:
- Pre-roll — A video ad is played before the main content.
- Mid-roll — A video ad is played at a certain time within the main content.
- Post-roll — A video ad is played after the main content.
- Pause-roll — A video ad is played when the user clicks the pause button.
- In-roll — A video ad is played anywhere in the video when a certain point is reached.
<!-- endsource: en/dev/_includes/instream-src.md -->


## API for working with InStream ads

There are multiple APIs for working with InStream ads:

### ExoPlayer AdsLoader API

An API for [basic integration](https://ads.yandex.com/helpcenter/en/dev/android/instream-based.md) of InStream ads into ExoPlayer. It lets you quickly integrate the display of InStream ads. The API supports Pre-roll, Mid-roll, and Post-roll ad breaks.

{% note info "Constraints" %}

1. A specific version of ExoPlayer is required.
2. It doesn't support In-roll and Pause-roll.

{% endnote %}

### InStream API

An API for [advanced integration](https://ads.yandex.com/helpcenter/en/dev/android/instream-advanced.md) of InStream ads. It lets you support playing any type of ad break and use your own implementation of a player. InStream ads consist of video ads that are played automatically and manually.

Pre-roll, Mid-roll, and Post-roll ad breaks are played automatically using the InstreamAdBinder API. To play In-roll and Pause-roll ad breaks manually, use the In-roll API and Pause-roll API, respectively.

{% note info %}

You can also use the InstreamAdBinder API, In-roll API, and Pause-roll API concurrently if you:
1. Use different instances of the ad player.
2. Don't start the Pause-roll and In-roll APIs for playing ads if the main video was paused using the InStreamAdBinder API.

{% endnote %}

