TL;DR:
If your publishers run Google IMA or any other player built on Open Measurement, your video viewability numbers had a hole in them. Those players ignored the mechanism the ad server was using, so nothing came back. Epom now sends the IAB AdVerifications block as well, so viewability is measured on both kinds of player and lands in the same report you already use. VAST 2.0 through 4.3 are all served and validated, and several long-standing tag faults are fixed.
Here is an uncomfortable question. Do you know whether your video viewability numbers cover all of your inventory, or only some of it?
Until now, the honest answer for most ad networks was “only some”. Video viewability has two competing mechanisms. Epom used one of them, and players built on Open Measurement — Google IMA among them — read the other. When a publisher ran one of those players, viewability went unreported.
That is a real ad revenue problem. Buyers pay for viewable inventory, and you cannot charge for what you cannot prove.
Worth saying up front: Epom measures this itself. There is no vendor account to open, no keys to populate, no contract with a measurement provider — the ad server serves its own verification script, and it is on by default.
See what your video inventory is actually earning. Start a free trial of Epom Ad Server and run your own tags through it.
One Extra Block in the VAST Response
From VAST 4.1 upward, the response now also carries the IAB AdVerifications block. It points at a verification script that measures the industry-standard MRC criterion — 50% of the ad on screen for two continuous seconds — and fires the ad viewability trackers you already configured.
Nothing else about your setup changes. Same trackers, same report, no new plumbing. And which mechanism goes out is decided by which player is asking, so nothing is counted twice.
Two things have to be true on your side: the ad tag has to be VAST 4.1 or higher, and at least one viewability event has to have something wired to it — under Viewability & other on the placement's VAST tracking card. With nothing wired, no block is emitted at all. The third condition is the player's: it has to implement Open Measurement, which the major SDKs do and a plain HTML5 VAST player generally does not.
All four events travel the new path, not just the good one:
| Event | Fired when | Fired by |
|---|---|---|
| Ad viewable impression | The first stretch that meets 50% of the ad on screen for 2 continuous seconds | The verification script |
| Ad repeated viewable impression | Every later qualifying stretch in the same playback | The verification script — Open Measurement path only |
| Ad not viewable impression | Playback ended and the criterion was never met | The verification script |
| Ad view undetermined impression | The verification code never ran at all | The player, not the script |
An event you have not configured is left out rather than sent empty, so you do not get noise you never asked for.
VAST 2.0 Through 4.3, All Validated
Every VAST version from 2.0 to 4.3 is now served, and each response is validated against the schema it declares.
In the new interface, the placement's column of per-version tag fields becomes a single field and a version picker, set to 4.2 by default. The original placement page offers fixed VAST 3.0, VAST 4.0, VPAID and VMAP rows, all below the 4.1 floor — so a measurable tag has to be copied from the new interface.
The Quiet Faults That Were Breaking Strict Players
Every response is now validated against the schema it declares. That pass caught three conformance details that strict players can be fussy about: element ordering, a universal ad is misplaced on creatives imported from a demand-side platform, and a viewability element sent on VAST versions that do not define it. All three are corrected, so your tags now pass the strictest validators as well as the forgiving ones.
And when a player still cannot play an ad, it now says so: the error code it reports is recorded on the placement's troubleshooting log, instead of leaving you to compare tags by hand.
Where Viewability Does Not Reach
Three cases produce no viewability at all, whatever you do to the tag.
VMAP is never measured. The VAST breaks a VMAP playlist schedule and is pinned to VAST 3.0, below the 4.1 floor.
VPAID is never measured by Open Measurement. The VPAID tag does not follow the version picker — its version is fixed on the server, below the floor. It loads Epom's own video ad manager, which measures viewability by the other mechanism instead.
Programmatic video is not measured by Epom. For a bid won by a DSP, Epom passes the DSP's own VAST through and adds nothing of its own. Whatever verification that creative carries belongs to the buyer.
One more worth knowing: on Epom's own video ad manager, Ad repeated viewable impressions never fire. VAST has no container for a repeat, so the tracker is resolved and then dropped. Tick it on a VPAID-served placement and the column stays at zero.
Smaller Changes Worth Knowing
- Four non-standard wrapper settings are gone — maximum execution time, sandbox, iterate and always hide controls. They appear in no IAB schema, and they were the one thing stopping otherwise valid wrapper responses from validating.
- Bulk upload takes MP4. Video placements can be batched as Local Video creatives, validated and compressed exactly as a single video creative is.
- Server-to-server VAST keeps the referer — it now reads X-Referer as a fallback, so referer-based targeting and reporting work on that traffic.
- A placement's default custom parameter is no longer dropped from an encrypted VAST or VMAP tag.
- Vehicle displays and conference phones are now classified as connected TV devices, matching the OpenRTB definition.
Run your own video tags through Epom and see what comes back. Start a free trial — you can have a placement serving in an afternoon.



