---
metadata:
  - name: generator
    content: Diplodoc Platform v5.34.3
alternate:
  - https://yandex.com/dev/video-sdk/doc/en/sdk-html5/adsdk-module.md
  - https://yandex.com/dev/video-sdk/doc/ru/sdk-html5/adsdk-module.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com/dev/video-sdk/doc/ru/llms.txt

# AdLoader

Модуль для загрузки и воспроизведения рекламы «по месту» (на готовом видеотеге в любой момент времени). API модуля реализует интерфейсы для загрузки, предзагрузки и проигрывания рекламы. Контроль над запуском этих процессов осуществляется из внешнего кода (со стороны кода вставки).

## Основные понятия {#termis}

#### Загрузка рекламы
Процесс получения информации о том, какие рекламные креативы нужно проиграть — в какой последовательности и с какими параметрами.

#### Предзагрузка рекламы
Процесс подготовки данных к запуску рекламы для ускорения последующего запуска рекламных креативов.

#### Проигрывание рекламы
Процесс показа рекламного креатива на стороне пользователя.

## Способы загрузки рекламы {#adload}

Модуль AdLoader позволяет загружать рекламу разными способами:
- Загрузка с привязкой к рекламной кампании РСЯ (с использованием параметров `partnerId`, `category`). В этом случае параметры загрузки и проигрывания рекламы берутся из VMAP.
- Загрузка с привязкой к рекламной кампании Adfox (с использование параметров `adFoxParameters`).
- Загрузка рекламы по ссылке на конкретный VAST (с использование параметров `vastUrl`).

## Создание и проигрывание рекламы {#create-show}

1. Создайте экземпляр [AdLoader](https://yandex.com/dev/video-sdk/doc/ru/sdk-html5/AdLoaderObject.md). Для этого вызовите метод `.create(adConfig)` у объекта `AdLoader`.
2. После создания экземпляра `AdLoader` можно загрузить рекламу с помощью метода `adLoader.loadAd();` — в результате вернётся promise, отдающий экземпляр [AdStore](https://yandex.com/dev/video-sdk/doc/ru/sdk-html5/AdViewer-class.md).
3. После создания экземпляра `AdStore` можно:
   - Предзагрузить файлы рекламных креативов с помощью метода `.preload(preloadParams)` для ускорения последующего запуска рекламы.
   - Сразу запустить проигрывание контента с помощью метода `.showAd(videoSlot, slot, playbackParameters)`.
4. Для гибкого контроля над процессом воспроизведения рекламы используйте метод `.createPlaybackController(videoSlot, slot, playbackParameters)`, возвращающий объект [AdPlaybackController](https://yandex.com/dev/video-sdk/doc/ru/sdk-html5/AdPlaybackController-class.md). `AdPlaybackController` позволяет подписываться на события и вызывать методы во время проигрывания.

## Пример кода вставки {#init}

> ```javascript
> ya.videoAd
>     .loadModule('AdLoader')
>     // 1) Создаем экземпляр AdLoader с рекламными параметрами
>     .then(function(module) {
>         return module.AdLoader.create({
>             partnerId: partnerId,
>             category: category,
>             targetRef: window.location.href,
>             videoContentUrl: 'https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4',
>             videoContentDuration: 596,
>             // Опциональный параметр идентификатора блока.
>             // Если параметр не указан, используется блок типа preroll.
>             impId: impId,
>         });
>     })
>     // 2) Загружаем рекламу
>     .then(function(adLoader) {
>         return adLoader.loadAd();
>     })
>     // 3) Предзагружаем рекламу
>     // Этот пункт пропускается, если рекламу необходимо запустить сразу
>     .then(function(adStore) {
>         // Запускаем предзагрузку
>         return adStore.preload({
>             videoSlot: video,
>             desiredBitrate: 1000,
>         })
>         .then(function() {
>             return adStore;
>         })
>         .catch(function() {
>             // Игнорируем ошибки в предзагрузке
>             return adStore;
>         });
>     })
>     // 4) Запускаем рекламу
>     .then(function(adStore) {
>         // Создаем контроллер воспроизведения
>         const adPlaybackController = adStore.createPlaybackController(video, slot);
>         // Подписываемся на событие окончания рекламы
>         adPlaybackController.subscribe('AdStopped', function() {
>             console.log('Ad stopped playing');
>         });
>         // Запускаем проигрывание рекламы
>         adPlaybackController.playAd();
>     })
>     // Если что-то пошло не так, логируем ошибку в консоль
>     .catch(function(error) {
>         console.error(error);
>     });
> ```

## Тестовые данные {#test-data}

Для тестирования можно использовать настройки:

#### РСЯ
```javascript
{
  partnerId: 291193,
  category: 0,
}
```

#### Adfox
```javascript
{
  adFoxParameters: {
    ownerId: "270901",
    params: {
      p1: "cwdyt",
      p2: "hiuy"
    }
  }
}
```

[Пример тестовой страницы](https://yastatic.net/s3/doc-binary/src/dev/video-sdk/instream-with-ad-loader.html)

{% note warning %}

Текущие настройки нельзя использовать в продуктовом окружении.

{% endnote %}
