> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kontext.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Video Ads

> Overlay, pause and linear ads for short-drama and other video-first apps.

Kontext Video Ads put ads into your player at the moments that fit the viewing: a strip over the content while it plays, a card while it is paused, or a full-screen spot between episodes.

![An overlay, a pause and a linear ad on three phones playing a short drama](https://mintcdn.com/kontext/L8M1YZwbTuF1DVty/images/video/hero.svg?fit=max\&auto=format\&n=L8M1YZwbTuF1DVty\&q=85\&s=6eeb0cb55864e6fd127d9203adc3513e)

## The three formats

> [card] [Overlay](https://docs.kontext.so/video/concepts/ad-formats.md#overlay)
>
> A 4:1 strip across the top or bottom of the player while the content plays. Ends by itself.

> [card] [Pause](https://docs.kontext.so/video/concepts/ad-formats.md#pause)
>
> A square card at the top or bottom, or the full player, while the content is paused.

> [card] [Linear](https://docs.kontext.so/video/concepts/ad-formats.md#linear)
>
> A full-screen video, skippable when the advertiser allows, with an optional end card.

## How an integration looks

```swift theme={null}
let ads = VideoAds(content: .init(id: "episode-6", language: "en"))   // when the episode opens
ads.track(player)                                                     // your AVPlayer, once the episode plays in it
let ad = try await ads.format(.pause)                                 // asks the server; here is the price
try await ad.load()                                                   // renders off screen
// … the viewer pauses:
try ad.show(in: playerView)                                           // instant
// … and in the delegate:
func videoAd(_ ad: VideoAd, didEnd reason: VideoAd.EndReason) { player.play() }
```

> [card] [How it works](https://docs.kontext.so/video/concepts/how-it-works.md)
>
> The request, the auction, the creative and the tracking, in one diagram.

> [card] [Ad lifecycle](https://docs.kontext.so/video/concepts/lifecycle.md)
>
> Ask, load or reject, show, end. What the SDK holds and when it lets go.

> [card] [Swift Video SDK](https://docs.kontext.so/video/sdk/swift.md)
>
> Install, show your first ad, the API reference, guides and the example app.

> [card] [Best practices](https://docs.kontext.so/video/guides/best-practices.md)
>
> The pre-launch checklist for a video app.

## Requirements

* An iOS app on iOS 14 or later, Swift 5.9, Xcode 15. The [Kotlin Video SDK](https://docs.kontext.so/video/sdk/kotlin.md) is in progress.
* A [publisher account](https://docs.kontext.so/publishers.md#getting-started-is-easy) with a `publisherToken`. Every publisher gets the three formats enabled on creation; demand, floors and frequency caps are configured in the Kontext dashboard, never in your app.

Questions, or a player that is not iOS or Android? Write to [support@kontext.so](mailto:support@kontext.so).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.