# Stories

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

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

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

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

## События Stories

События показа приходят в общем потоке `InLineAdContent.events: Flow<InLineAdEvent>` вместе с событиями других форматов (например, `MultiformatAdEvents`). Каждое событие формата Stories реализует интерфейс `StoriesAdEvents`:

```kotlin
import ru.tander.mads.inline.model.InLineAdEvent
import ru.tander.mads.inline.multiformat.integration_public.events.MultiformatAdEvents
import ru.tander.mads.inline.stories.integration_public.events.StoriesAdEvents

when (inLineAdResponse) {
    is InLineAdResponse.Success -> {
        inLineAdResponse.content.events
            .onEach(::handleInLineAdEvent)
            .launchIn(scope)
    }
    ...
}

fun handleInLineAdEvent(event: InLineAdEvent) {
    when (event) {
        is StoriesAdEvents -> {
            when (event) {
                is StoriesAdEvents.OnBlockView -> {
                    // Блок Stories стал видимым на экране
                }
                is StoriesAdEvents.OnCoverView -> {
                    // Обложка стала видимой на экране
                }
                is StoriesAdEvents.OnCreativeView -> {
                    // Первое открытие группы в текущей сессии плеера
                }
                is StoriesAdEvents.OnSlideView -> {
                    // Слайд показан
                }
            }
        }
        is MultiformatAdEvents -> {
            // события других InLine-форматов
        }
    }
}
```

| Тип значения | Описание |
|--------------|----------|
| `StoriesAdEvents.OnBlockView` | Блок Stories стал видимым на экране |
| `StoriesAdEvents.OnCoverView` | Обложка стала видимой на экране |
| `StoriesAdEvents.OnCreativeView` | Первое открытие группы в текущей сессии плеера |
| `StoriesAdEvents.OnSlideView` | Слайд показан |

Закрытие плеера пользователем приходит отдельным событием в `InLineAdContent.actions: Flow<InLineAdAction>` — `StoriesAdActions.OnSlideDismissed`.
