# Stories

Stories - формат встраиваемой рекламы в виде сторисов (по аналогии со сторисами в Telegram и Instagram*). Загрузка и отображение аналогичны другим InLine форматам.

![Stories](../../../../../../concepts/stories.png){height="200"}

Загрузка рекламы, передача `padId`, `targetings`, таймауты, обработка результата, действия пользователя и `InlineAdProvider` — описаны в общем разделе [Баннеры](multiformat.md). Здесь документируются только отличия формата Stories — события показа.

Тестовый `padId` для отладки — в разделе [Отладка](../debugging.md).

## События Stories (InlineAd.Event.Stories)

События Stories приходят в `case .stories(storiesEvent)` потока `InlineAd.Event`:

| Тип значения | Параметры | Описание |
|--------------|-----------|---------|
| `onBlockView` | `StoryInfo` | Блок Stories стал видимым на экране |
| `onCoverView` | `StoryInfo` | Обложка стала видимой на экране |
| `onCreativeView` | `StoryInfo` | Первое открытие группы в текущей сессии плеера |
| `onSlideView` | `StoryInfo` | Слайд показан |
| `onSlideDismissed` | `StoryInfo` | Плеер закрыт пользователем |

+++ Delegate

```swift
func inlineAd(_ ad: InlineAd, didEmit event: InlineAd.Event) {
    if case let .stories(storiesEvent) = event {
        switch storiesEvent {
        case let .onBlockView(info):
            break // блок Stories стал видимым
        case let .onCoverView(info):
            break // обложка стала видимой
        case let .onCreativeView(info):
            break // история открыта
        case let .onSlideView(info):
            break // слайд показан
        case let .onSlideDismissed(info):
            break // плеер закрыт
        }
    }
}
```

+++ Async

```swift
for await event in inlineAd.events {
    if case let .stories(storiesEvent) = event {
        switch storiesEvent {
        case let .onBlockView(info):
            break // блок Stories стал видимым
        case let .onCoverView(info):
            break // обложка стала видимой
        case let .onCreativeView(info):
            break // история открыта
        case let .onSlideView(info):
            break // слайд показан
        case let .onSlideDismissed(info):
            break // плеер закрыт
        }
    }
}
```

+++
