---
title: "Sell pre-roll video in your player"
description: "Recipe for VAST video monetization — a video placement with skip and pod settings, the tag URL your player loads, video demand with companions, event tracking and fill measurement."
type: "howto"
audience: [network-manager]
keywords: [video monetization, pre-roll, VAST, VPAID, VMAP, ad pod, skip button, video player, companions, fill rate]
ui_path: "Account → Publishers → site → zone → placement (Video)"
---

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.

# Sell pre-roll video in your player

You run a video player on your site or app and want to sell the pre-roll (or a pod of ads
before content). In Epom that is one **Video placement** whose tag URL your player loads;
everything else — skip rules, pods, demand, tracking — hangs off it.

## Who this is for

Publishers integrating a player and network managers running video demand.

## Prerequisites

- A player that accepts a VAST ad-tag URL (for VPAID or VMAP: a player supporting those
  specs). Any IAB-VAST-compatible player works — you configure the player with one URL.
- A [site and zone](https://epom.com/ad-server/docs/guides/inventory.md) to own the placement.
- Video demand: your own video creatives, third-party VAST tags, or
  [programmatic partners](https://epom.com/ad-server/docs/use-cases/programmatic-dsp-demand.md) that bid on video.

## Steps

1. **Create the placement.** On the zone, choose **Add new placement… → Video Placement**,
   name it and save ([details](https://epom.com/ad-server/docs/guides/inventory/placements-create.md)).
2. **Set the viewer experience** in the **VAST configuration** block of Basic info:
   ![VAST configuration with skip button and pod settings](https://epom.com/docs-images/ad-server/video-preroll-monetization/video-skip-pods.webp)
   - **Show skip ad button** + **Show after (seconds)** — skippable pre-roll (0–60 s);
   - **Return (ads in pod)** — leave at 1 for a single pre-roll; raise it (up to 20) to
     return an ad pod, and cap the total with **Max. pod duration (sec)**;
   - **Default ad title** — fallback title for creatives that carry none.

   For VMAP responses, set **Max pre-rolls** in the **VMAP configuration** block. Full field
   reference: [Video placements](https://epom.com/ad-server/docs/guides/inventory/placement-video.md).
3. **Declare player capabilities for programmatic** in the **RTB configuration** block of Basic
   info — **Playback method**, **API framework**, **Min. ad duration (sec)**, **Max. ad duration
   (sec)** and **Skip min (sec)**. These are bid-request signals for DSP demand; set them
   honestly or partners bid with creatives your player can't run. No role has the block out of
   the box; ask your network manager (or, as a network manager, your network administrator) to switch it on.
4. **Save**, then copy the tag from the **VAST tags** tab of the **Ad tags & API** card. If your
   network has several ad-serving domains, pick the **Domain** first on the card's **Settings**
   tab (the picker is hidden on roles not allowed to pick a domain). Choose the
   spec your player asks for in the **VAST version** picker (**4.2** by default), then copy the
   **VAST tag**, **VPAID tag** or **VMAP tag** URL and paste it into your player's ad-tag
   setting. Leave the version at 4.2 unless your player demands otherwise:
   4.1 and up is what lets the ad be
   [viewability-measured](https://epom.com/ad-server/docs/concepts/viewability-and-open-measurement.md), and VPAID and VMAP do
   not follow the picker.
   ![VAST tag field with its version picker, plus the VPAID and VMAP tag URLs](https://epom.com/docs-images/ad-server/video-preroll-monetization/video-tag-urls.webp)
5. **Add demand.** On the advertiser side, create video banners — uploaded or hosted video
   files, a third-party VAST/VPAID tag, a VPAID framework creative, or the multi-file
   Advanced Local Videos — and link them to the placement
   ([video banner types](https://epom.com/ad-server/docs/guides/advertising/banner-video.md)). Add **Companion ads** on
   the banner if a display creative should render next to the player during playback.
6. **Wire up tracking** on the placement's **VAST tracking** card (needs **Manage Placement's
   VAST Events**):
   ![VAST tracking card with the quartile and completion events ticked and a progress point being added](https://epom.com/docs-images/ad-server/video-preroll-monetization/video-tracking-events.webp)
   - enable the **playback events** you want recorded (quartiles, completion, skip,
     mute/pause, viewability);
   - add **progress points** that fire a
     [conversion action](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md) at a custom playback
     time, entered as `HH:mm:ss` — e.g. "watched 15 seconds" as a billable/reportable event;
   - add **third-party pixels** for an external verification vendor on impression, click or
     any VAST event.
7. **Measure fill.** Run a **General** report grouped by **Placement**, with **Time
   granularity** set to **Day**, and the **Requests** and **Impressions** columns — fill rate
   is impressions ÷ requests. Progress-point
   conversions appear as conversion columns filtered by their action
   ([running reports](https://epom.com/ad-server/docs/guides/analytics/run-report.md)). If requests arrive but
   impressions stay near zero, walk
   [Ads are not serving](https://epom.com/ad-server/docs/troubleshooting/ad-not-serving.md).

## Corner cases and gotchas

> **Corner case — a tag below VAST 4.1 cannot be viewability-measured.** In the new interface the
> version picker defaults to 4.2, so a freshly copied tag is fine; but a tag pasted into your
> player earlier, or copied from the classic placement page (which offers only fixed VAST 3.0 /
> 4.0 / VPAID / VMAP rows and has no picker), carries no viewability at all. Re-copy it at 4.2 —
> which fixes it provided your player implements Open Measurement, since the version alone is only
> half the requirement. See
> [Video viewability and Open Measurement](https://epom.com/ad-server/docs/concepts/viewability-and-open-measurement.md).

> **Corner case — RTB constraints do not filter your directly-linked banners.** A directly
> linked 60-second creative still serves even when *Max. ad duration* says 30. The RTB block
> constrains programmatic bids only; police direct demand yourself when linking.

> **Corner case — the whole video block saves with the Basic info Save button.** There is no
> separate save inside the VAST/VMAP/RTB sections; edit pods and navigate away, and the
> changes are gone (the unsaved-draft banner offers to restore them on return).

> **Note — pods need a pod-aware player.** Setting *Return (ads in pod)* above 1 changes the
> response into a multi-ad pod. Verify your player actually plays pods before raising it — a
> player without pod support typically plays only the first ad, and you will under-deliver
> versus what reports suggest was returned.

## Per-role notes

- **Publisher:** the video placement and its VAST tag are yours.
- **Network manager:** the RTB configuration on the placement has to be switched on for your role
  by your network administrator.
  Video demand is built on the advertiser side.
- **Can view share:** settings are read-only, but the tag URL still copies.
- **Demo account:** **Preview** on a video placement opens the live demo page with the
  placement's VAST tag.

## Related

- [Video placements](https://epom.com/ad-server/docs/guides/inventory/placement-video.md)
- [Video banners](https://epom.com/ad-server/docs/guides/advertising/banner-video.md)
- [Ad tags, invocation codes and the API](https://epom.com/ad-server/docs/guides/inventory/ad-tags-and-api.md)
- [Conversion actions](https://epom.com/ad-server/docs/guides/conversions/conversion-actions.md)
- [Fill inventory with programmatic DSP demand](https://epom.com/ad-server/docs/use-cases/programmatic-dsp-demand.md)
- [Monetize a website with display ads](https://epom.com/ad-server/docs/use-cases/monetize-website-display.md)