---
title: "One slot, several formats: video first, then iframe or native"
description: "Recipe for a native-video, outstream or master-header slot that shows a video ad when video demand fills and an iframe or native ad otherwise — priority tiers for the order, weights for a backfill share, the template's \"next body\" message, what moves the numbers, and viewability for display slots."
type: "howto"
audience: [network-manager]
keywords: [native video, outstream, master header, iframe zone, backfill, fill share, priority order]
ui_path: "Account → Advertisers → campaign → Priority / Weight; Account → Publishers → placement"
---

Fetch the complete documentation index at: https://epom.com/ad-server/docs/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# One slot, several formats: video first, then iframe or native

A common publisher set-up is one slot that should carry the best-paying format available: a
video ad (an outstream or "native video" player in the article, or a "master header" at the top
of the page) when video buyers fill, and an iframe or native ad when they don't. In Epom that
is not a special zone type — it is ordinary ad selection on one placement: **priority tiers
decide the order of the formats, weights decide a backfill share**, and the template decides how
each format is drawn.

## Who this is for

Network managers building such a slot, and publishers asking why its numbers moved.

## Prerequisites

- One placement for the slot (Site or Non-standard for a display-style slot).
- The formats as banners: for example Template banners on a video-player template, iframe or
  HTML Code banners, native-styled Template banners. How each is drawn is the network's
  template work — see [Create and manage banner templates](https://epom.com/ad-server/docs/guides/advertising/templates.md).
- Campaigns you can edit (**Priority** and **Weight** on the campaign's Basic info).

## Steps — set the priority: video first, then iframe, then native in one zone

1. Put each format in its own campaign (or campaigns) and link all their banners to the
   placement.
2. Give the campaigns **priorities in the order you want the formats tried** — for example
   video *Premium*, iframe *Standard High*, native *Standard Medium*. For every request the
   first tier that has an eligible banner wins and lower tiers are not consulted
   ([how ad selection works](https://epom.com/ad-server/docs/concepts/how-ad-selection-works.md#7-priority-tiers-then-campaign-then-banner)).
3. Let a lower format take the slot when the higher one has nothing: a video campaign that is
   out of budget, capped for this visitor or targeted elsewhere simply drops out of the
   request, and the next tier fills.

## Give the backfill a fixed share instead

When the iframe ads should take, say, 10% of the slot even while video fills, put the iframe
campaign in the **same** priority tier as the video campaign and split by **Weight** — 9 and 1
give roughly 90% and 10% of the requests both can serve. (In networks that run eCPM
optimization the weight is not used to pick the campaign; see
[Optimization](https://epom.com/ad-server/docs/guides/delivery/optimization.md).)

## When the video player gets no ad from its buyers

A video player inside a template asks its own VAST demand; if that comes back empty, the
template can ask the ad tag for the next ad instead of leaving a blank box — the **Target related templates** message described in
[Create and manage banner templates](https://epom.com/ad-server/docs/guides/advertising/templates.md#target-related-templates--asking-for-the-next-body).
With `excType: "ALL"` the loader re-requests and excludes the banners already tried, so the next
format in your order gets the slot.

## Why did impressions jump (or drop) on this slot?

The slot shows what selection picks, so a change in its numbers usually has a cause in the
set-up or the demand, not a fault:

- **More (or less) demand in a higher tier** — a new month's video budgets, a new backup
  campaign, a cap or limit lifted. A higher tier takes every request it can serve.
- **A banner enabled or linked somewhere it should not be.** An extra iframe banner linked to
  the video slot in the same or a higher tier takes requests from video. Check the placement's
  linked banners after every change.
- **A template edit.** Changing a template changes every banner on it — a lost progress offset
  or a broken player in a new template version shows up as a drop across all slots using it.
  See [Create and manage banner templates](https://epom.com/ad-server/docs/guides/advertising/templates.md).
- **Requests themselves changed** — compare **Requests** for the placement in a General report
  before and after; if requests fell, the cause is on the page, not in Epom.

## Viewability for display and master-header slots

For a slot whose ad is display markup (an iframe, HTML or template banner), tick **Enable
viewability tracking (Beta)** on the **banner** — shown on Site and Non-standard placements,
and only on roles it is switched on for (no stock role; ask your network manager). Epom then adds a small script to that
banner's markup that watches the ad's area on the page:

| Event | When it fires |
|---|---|
| **Viewable** | At least 50% of the ad's area has been on screen for 1 continuous second — the first time |
| **Repeated viewable** | Each later time the ad comes back into view for 1 second |
| **Undetermined** | The browser could not run the measurement |

The events land in the same **Viewability** columns as video viewability (**Split columns by →
Viewability** in the report builder) — see
[Video viewability and Open Measurement](https://epom.com/ad-server/docs/concepts/viewability-and-open-measurement.md#where-the-numbers-land).
There is no *Not viewable* event for display banners. Numbers start from the moment you tick the
box — earlier impressions have no viewability data. For a video ad in the slot, viewability
comes from the VAST tracking instead (same page).

## Corner cases and gotchas

> **Corner case:** the viewability script is not added to **Always redirect** answers — a
> redirect has no page area to measure.

> **Corner case:** the measuring script is attached to the banner, not the placement: tick it on
> every banner of the slot whose viewability you want reported.

> **Corner case:** a campaign on the **House Ads** priority has its weight set to 0 and its
> optimization switches turned off, so it cannot share a tier by weight — use it only as the last
> fallback, not for a fixed backfill share.

## Per-role notes

- **Publisher:** without edit rights on the campaigns, ask the network manager to change priority
  or weight, and use the placement's General report (Requests, impressions per banner) to see which
  format took the slot.
- **Network manager:** builds the whole set-up — campaigns, priorities, weights, links and
  templates.
- **Custom-role users:** the **Priority** and **Weight** fields, and **Enable viewability
  tracking (Beta)**, are switched on per role; a read-only grant shows the value without letting
  you change it. Ask your network manager for any that are missing.

## Related

- [How ad selection works](https://epom.com/ad-server/docs/concepts/how-ad-selection-works.md)
- [Campaigns](https://epom.com/ad-server/docs/guides/advertising/campaigns.md) — Priority and Weight
- [Catfish, sticky, branding (skin) and interstitial formats](https://epom.com/ad-server/docs/guides/advertising/rich-media-formats.md)
- [Video viewability and Open Measurement](https://epom.com/ad-server/docs/concepts/viewability-and-open-measurement.md)
- [Low fill rate](https://epom.com/ad-server/docs/troubleshooting/low-fill-rate.md)