Video · 29 Sep 2026

How viewability is counted on video and CTV

A viewable video, a completed view, and a server-side stitch are three different events. They should not share one number.

Diagram comparing display viewability, video viewability, and a completed view
Display, video, and a finished play each use a different clock.

Video viewability means enough of the player was on screen for long enough. It does not mean the viewer watched the whole ad.

On connected TV, a server-side stitch can count a play from the server. That count is not the same test a phone or a browser runs.

The display rule people already know

The Media Rating Council (MRC) defines a viewable display impression like this:

  • At least 50% of the ad’s pixels are on screen
  • For at least 1 continuous second

A large display unit, about 970×250 or bigger, can qualify at 30% of pixels for 1 second. That exception is for big banners. It is not the video rule.

The video viewability rule

Video uses a longer clock. An MRC viewable video impression needs both:

  • At least 50% of the ad’s pixels in view
  • For at least 2 continuous seconds

The 2 seconds do not have to be the opening 2 seconds. Any continuous 2 seconds count, if half the player stays in view the whole time.

Sound is a separate question. The MRC viewable definition does not require the ad to be unmuted. Some buyers add that rule in the contract. If they do, say so. Do not hide it inside the word “viewable.”

What the Open Measurement SDK actually does

The Open Measurement SDK (OM SDK) is IAB Tech Lab code. Verification vendors use it so they are not each inventing a way to see the ad.

  • Web. A JavaScript snippet loads with the ad and reads the player’s size and position.
  • In-app. The app, or the ad SDK, includes the native OM SDK and reports the same kind of geometry.
  • What it reports. Percent of the ad on screen, how long it stayed there, and sometimes whether the video was audible.

OM SDK does not decide the invoice by itself. A vendor such as a viewability partner applies the MRC rule to those signals. No OM signal means no pixel test. The impression can still be “served.” It cannot be called viewable from geometry you never measured.

A completed view is a different metric

A completed view means the video played through. In VAST, the usual markers are:

  • Start — playback began
  • First quartile — 25% played
  • Midpoint — 50% played
  • Third quartile — 75% played
  • Complete — 100% played

Cost per completed view (CPCV) pays on complete. That can happen off screen. A muted autoplay ad below the fold can reach 100% and still fail the 50% / 2 second test.

The reverse is also normal. A skippable ad can be viewable for 2 seconds and never complete. Both numbers can be true. They answer different questions.

Why CTV does not copy the browser test

A television is usually the whole screen. There is no scrollbar and no second tab covering the player. If the set is on and the app is in front, the ad is often fully on the glass.

The hard part is knowing that this happened on the device.

  • Client-side ad insertion. The TV app plays the ad and can run measurement in the app. Pixel time and quartiles can come from the device.
  • Server-side ad insertion (SSAI). A server stitches the ad into the stream. The TV plays one video. The ad break is not a separate player the SDK can measure.

SSAI is explained in SSAI vs client-side ad insertion. The measurement gap is the point here.

What a server-side stitch can and cannot prove

A stitcher can honestly say:

  • An ad was chosen for this break
  • Those seconds were inserted into the stream
  • A quartile beacon was fired when the server reached that timestamp

A stitcher cannot, by itself, say:

  • The television was on
  • Someone was in the room
  • 50% of the pixels were in view for 2 continuous seconds
  • The set had not switched input, or the app had not been backgrounded

If the only proof is a server beacon, call it a server-side play. Do not label it an MRC viewable impression.

A stronger CTV setup keeps a client event as well: the app, or the player, confirms the segment was decoded on the device. Sellers should say which side fired the count. Buyers should price a server-only count below a device-confirmed one.

How the numbers get mixed up

  • Viewability rate — viewable impressions divided by measured impressions. Ads that were never measured should not sit in the denominator as if they passed.
  • Completion rate — completes divided by starts. This is not a viewability rate.
  • Served impression — the ad was sent. Nobody has claimed it was seen.
  • Billable impression — whatever the insertion order named. Read that line before you compare two reports.

What to ask before you buy or sell

  • Is the guarantee a viewable impression, a completed view, or a served impression?
  • For video, is the test 50% of pixels for 2 continuous seconds?
  • Did OM SDK, or another client SDK, run on the device?
  • On CTV, did the beacon come from the television or from the stitcher?
  • Are muted plays included?
  • Which quartile is billable if the buyer is paying on completion?

FAQ

Is 50% for 1 second enough for video?

No. That is the display rule. Standard video viewability is 50% of pixels for 2 continuous seconds.

Does the Open Measurement SDK work on every CTV app?

No. It needs a client integration. A pure SSAI stream often has no ad SDK on the device, so there is nothing to measure pixels with.

Can an ad be viewable and not complete?

Yes. Two seconds in view is enough for viewability. Completion needs the play to reach the end.

Should a FAST or live stream use the same fields as a web player?

Use the same words only when the measurement is the same. A stitched break needs a disclosed server-side or client-side count. Live and linear context is a separate OpenRTB question, covered in live content signals.

← All posts · Video ads · What is CTV? · What is VAST? · SSAI vs client-side