# Vertical video ad specifications

Formats, resolutions, durations, and performance targets for vertical video ads that run in feeds, in-stream slots, and takeovers on web and in apps.

Vertical video ads are the main format for full-screen, mobile-first video in your feeds and communities. A 9:16 ad fills the screen, sits naturally in a short-form feed, and renders the same way on Web, Mobile Web, iOS, and Android.

Vertical ads are part of Monetize. For the whole product, see [Monetize: what it does and where to start](https://begenuin.com/developers/browse-by-products/monetize/monetize-what-it-does-and-where-to-start). Follow these specifications so your ads render properly, load fast, and earn without disrupting the viewer.

## Where vertical video ads appear

| Format | Where it appears |
| --- | --- |
| In-feed ads | As video cards within the content feed |
| In-stream ads | Pre-roll, mid-roll, and post-roll within video playback |
| Partnered Takeovers | As a full-screen experience |

![The New Preset screen in Ad Configuration, with In-Feed Configuration, Partnered Takeover, and In-Stream Ads each switched on, plus Start Slot and Repeat Frequency set to 2.](https://cdn.sanity.io/images/lnrtvsvr/development/6daddd0b9eb03d839ffac9b708e64035408c1984-1875x910.jpg)
*A monetization preset turns on in-feed ads, partnered takeovers, and in-stream ads.*

To choose which placements carry ads and how often they appear, see [Configure vertical video ad placements and frequency](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-configure-vertical-video-ad-placements-and-frequency). Learn how takeovers fill a placement in [How sponsored posts and takeovers work](https://begenuin.com/developers/browse-by-products/monetize/how-do-sponsored-posts-and-takeovers-work-in-placements).

Each format shows only where it's switched on in the monetization preset for that placement or embed.

Takeovers come from paid partnerships, and they show only while the preset's **Partnered Takeover** switch is on. It's on by default.

**Video Ads**, and the **Pre-roll**, **Mid-roll**, and **Post-roll** breaks, fill only when the preset's ad server supports them.

## Video format

| Specification | Recommended value |
| --- | --- |
| Aspect ratio | 9:16 (vertical) |
| Orientation | Portrait |
| Resolution | 1080×1920 (Full HD) |
| Minimum resolution | 720×1280 |
| File format | MP4 (H.264 codec recommended) |
| File size | Optimized for fast loading, within platform limits |
| Duration | Flexible, commonly 5–30 seconds for ads |

![The Settings page in your Business Account for the Mobile App player, with Video Aspect Ratio set to 9:16 (Vertical) and a phone preview of a vertical feed.](https://cdn.sanity.io/images/lnrtvsvr/development/b14d03c5c03d968a439d712b5aa4ad07cf29ba0b-1877x911.jpg)
*The player shows video at 9:16 by default, so 9:16 ads fill the screen.*

Other aspect ratios can run, but 9:16 gives the best performance and full-screen immersion. Non-vertical ads might show black bars and perform worse than vertical ones.

In your Business Account, the player's shape is set under **Settings** > **Player Controls**. There, **Video Aspect Ratio** defaults to **9:16 (Vertical)**, and **Adaptive** is marked coming soon.

We recommend 5–15 seconds because shorter ads get higher engagement. Longer formats work for storytelling.

## Ad settings that affect vertical playback

Vertical video behavior depends on the settings in your monetization preset. Learn more about [presets](https://begenuin.com/developers/browse-by-products/monetize/how-can-a-brand-configure-and-control-ad-monetization-using-presets-in-the-brand-control-center).

| Setting | Effect |
| --- | --- |
| Ad Aspect Ratio set to Match video player ratio | Enforces vertical display (recommended) |
| Ad Aspect Ratio set to Allow all aspect ratios | Non-vertical ads can appear, letterboxed or pillarboxed |
| Mute on Start | Ads autoplay muted in the feed |
| Duration | Shows a countdown timer on video ads |

![The New Preset screen with two settings panels, each showing Ad Aspect Ratio set to Allow all aspect ratios instead of Match video player ratio, with Mute on Start and Duration on.](https://cdn.sanity.io/images/lnrtvsvr/development/163613cfdf8a10ec11ec6d002e4da3bed7844c0b-1876x911.jpg)
*New presets start with Allow all aspect ratios; switch to Match video player ratio to keep ads vertical.*

We recommend setting **Ad Aspect Ratio** to **Match video player ratio** because it keeps every ad vertical and full screen.

In-feed and in-stream ads each have their own **Ad Aspect Ratio**, **Mute on Start**, and **Duration** controls.

A new preset starts with **Mute on Start** on for in-feed ads and off for in-stream ads, and with **Duration** off for both.

## Creative guidelines

### In-feed ads

In-feed ads autoplay when they enter the viewport. Mute settings control whether they start with sound.

- Make the ad visually engaging within the first 2–3 seconds.
- Don't depend on sound. Use captions or text overlays.
- Add captions. They aren't mandatory, but we recommend them because they improve engagement and support muted autoplay.

### In-stream ads

In-stream ads play as pre-roll, mid-roll, or post-roll.

- Keep load time to 1 second or less.
- Show clear branding early.
- Use a skip-friendly structure.
- Keep a consistent vertical format for full-screen playback.

## Platform rendering

Vertical video ads must render consistently on every platform.

| Platform | Rendering behavior |
| --- | --- |
| Web | HTML5 video with a responsive aspect ratio |
| Mobile Web | Optimized for the mobile viewport |
| iOS | Rendered with AVPlayer |
| Android | Rendered with ExoPlayer |

For how the SDKs fill ad slots in a feed, see [How the Genuin SDK places ads in a feed](https://begenuin.com/developers/browse-by-products/monetize/how-does-the-genuin-sdk-render-ads-and-deliver-the-consumer-experience).

## Playback behavior

| Rule | Behavior |
| --- | --- |
| Aspect ratio mismatch | Letterboxing or pillarboxing is applied |
| Autoplay | Starts on viewport entry (in-feed) |
| Full-screen transition | Keeps the vertical ratio |
| Interaction UI | Disabled for programmatic video ads |
| Labeling | An "Ad" badge is displayed |
| Skip option | Available after a defined duration |
| No fill | The slot collapses or fallback content shows |

If an ad fails to load, the SDK tries the next-priority ad type. If nothing fills the slot, it shows house content or collapses the slot. Learn more about [house ads](https://begenuin.com/developers/browse-by-products/control/how-do-i-mark-and-manage-house-ads-in-the-business-account).

## Performance targets

| Requirement | Target |
| --- | --- |
| Ad load time (in-feed) | 800 ms or less |
| Pre-roll start time | 1 second or less |
| Layout shift | No visible feed jump (CLS below 0.1) |
| Bundle impact | 50 KB or less added to the SDK |

## Examples

- **In-feed video ad**: A 9:16 ad appears as a card in the feed and autoplays muted. A tap expands it to full screen, in line with the organic content around it.
- **Pre-roll vertical ad**: The ad plays full screen before the content video, and the viewer can skip it after 5 seconds. Pre-roll gives high visibility and guaranteed impressions.
- **Partnered Takeover feed**: A partner's vertical videos lead the feed for maximum brand impact, and then your content resumes. With **Allow other content to appear after takeover** off, only the takeover videos show, in a loop.

To turn on programmatic demand for these formats, see [Set up programmatic ads in your feeds](https://begenuin.com/developers/browse-by-products/monetize/how-do-we-set-up-programmatic-ads-to-generate-automated-ad-revenue). To measure how they perform, see [Track programmatic ad performance](https://begenuin.com/developers/browse-by-products/monetize/what-analytics-are-available-for-programmatic-advertising-on-genuin).

## See also

- [Create and manage monetization presets](https://begenuin.com/developers/browse-by-products/monetize/how-can-a-brand-configure-and-control-ad-monetization-using-presets-in-the-brand-control-center)
- [Configure vertical video ad placements and frequency](https://begenuin.com/developers/browse-by-products/control/how-does-a-brand-configure-vertical-video-ad-placements-and-frequency)
- [How the Genuin SDK places ads in a feed](https://begenuin.com/developers/browse-by-products/monetize/how-does-the-genuin-sdk-render-ads-and-deliver-the-consumer-experience)
- [Set up programmatic ads in your feeds](https://begenuin.com/developers/browse-by-products/monetize/how-do-we-set-up-programmatic-ads-to-generate-automated-ad-revenue)
- [Track programmatic ad performance](https://begenuin.com/developers/browse-by-products/monetize/what-analytics-are-available-for-programmatic-advertising-on-genuin)
