Measurement

Served, rendered, viewable, valid: the standard behind every impression we report

Animated: a bar of billed impressions walks down five gates — served, rendered, measurable, viewable, valid. At each gate a red slice peels off with its reason: no seller record, tag never fired, couldn't measure, below threshold, not a person. The remaining bar turns teal at the last gate. Caption: one row per impression, one reason, the total still adds up. Proportions illustrative.

You buy ten thousand ads. The report says fewer. Which number is right? Both, usually — they are counting different things. Every figure on an advertising report rests on two foundations: a standard for what counts, and a record of what actually happened. This post explains the standard the industry uses, the five questions an impression has to answer before it counts, and why we keep two separate records of every ad we serve — our ad server's own, and one from the verification tracker we run on our own campaigns.

An impression is a claim

When our ad server wins an auction and sends an ad to a page, it counts one impression. That is a claim: “we sent the ad.” Between that claim and a person actually seeing the ad, several things can go wrong. The seller may have no record of serving it. The ad may never draw on the page. The page may be built so that nothing can measure it. It may draw, but sit below the fold. Or the “person” may be a program.

Each of those is a different problem with a different owner, and a report that lumps them together as “discrepancy” tells you nothing you can act on. So the question is not “how many impressions?” but “how many cleared every gate — and for the ones that didn't, which gate, and why?”

The five questions

Start with the number the buyer was billed for. Every one of those impressions walks through the same five questions in the same order and stops at the first one it fails:

  1. Did the seller record it? The buy side says it won and paid. Does the sell side agree that it served the ad? If not, the impression stops here — no seller record.
  2. Did the ad render? A script that travels with the ad reports back when the ad actually draws on the page. If it never reports, the ad may never have appeared — tag never fired.
  3. Could it be measured? Some placements are built so that a script inside the ad cannot see where it sits on the screen. Those are honestly undetermined, not quietly counted either way.
  4. Was it viewable? Did it meet the industry standard for being on screen — enough of the ad, for long enough? If not — below threshold.
  5. Was it a person? An ad seen by a program is not an ad seen. Anything caught by invalid-traffic checks stops here. What remains is valid: the thing you were actually buying.

The rule that makes this useful is simple: every billed impression gets exactly one row, at the deepest gate it reached, with the single reason it went no further. Add the rows back up and you are at the billed total again. If they don't add up, the report is wrong, not the world.

The viewability standard, in plain English

The fourth question has a published answer. The Media Rating Council (MRC), the body that sets and audits measurement standards for the advertising industry, defines a viewable impression for display ads like this:

Ad formatHow much of the ad on screenFor how long
DisplayAt least half of its pixelsOne continuous second
VideoAt least half of its pixelsTwo continuous seconds of play
Very large display (about a full-width banner or bigger)At least 30% of its pixelsOne continuous second

MRC Viewable Ad Impression Measurement Guidelines, version 2.0 (August 2015), and the Mobile Viewable Ad Impression Measurement Guidelines (June 2016). The two seconds for video need not be the first two.

A few details in the standard matter more than the headline numbers:

  • The pixel test comes first, then the clock starts. Time spent with less than half the ad on screen does not count towards the second.
  • It has to be an in-focus tab, on the visible part of the browser. An ad on a background tab is not viewable. Pages a browser has pre-loaded but not shown do not count until they are shown.
  • The measurement has to be frequent. The standard requires the ad's position to be checked at least ten times a second for display, five for video — a single snapshot is not a measurement.
  • Once per impression. If a person scrolls away and back, the ad does not become viewable twice.
  • Mobile follows the same thresholds, measured in the device's own screen units, and ads inside apps need a measurement kit built into the app; a script alone cannot see them. Impressions in a scrolling feed that stay on screen for more than half a second but less than a full one are given their own name, sub-second, and are explicitly not viewable.
  • Every viewable impression has to have been a rendered one first. Viewable can never exceed rendered, and an impression known to be fraudulent can never be viewable.
A note on accreditation

MRC publishes these guidelines, and separately accredits measurement services that pass its audit. Those are different things. This post explains the published standard; it does not claim MRC accreditation for our ad server, for the tracker we use, or for anything else it mentions.

“Undetermined” is a real answer

The standard is unusually firm on one point: a viewability report must present three buckets, not one — viewable, non-viewable, and undetermined, where the measurer could not tell. Then it defines two rates from them:

  • The measured rate: what share of rendered impressions the measurer could actually decide, one way or the other.
  • The viewable rate: of those it could decide, what share was viewable.

So “60% viewable” is only meaningful next to its measured rate. Sixty per cent of everything is a different claim from sixty per cent of the half that could be measured. The standard also says a measurer should not treat undetermined as non-viewable, and should not fill the gap with estimates unless it says so and reports them separately. That is why, on our reports, an unmeasured impression is reported as unmeasured — a modelled number looks exactly like a real one the moment it lands in a spreadsheet.

Was it a person?

The fifth question is invalid traffic, and MRC's standards for it split it into two kinds. General invalid traffic is caught with lists and simple checks: traffic from known data centres, declared bots and crawlers, requests from things that are not browsers, pages a browser pre-fetched but never showed, and ads delivered into placements too small to see. Sophisticated invalid traffic needs analysis rather than a list: automated browsing, hijacked devices, ads hidden behind or stacked on top of each other, and apps or sites pretending to be something they are not.

The standard requires known general invalid traffic to be removed from billed counts, and sophisticated invalid traffic to be reported separately once found. It also introduces an honest number called the decision rate: for how many impressions did the measurer have enough signal to decide at all? Where the signal is missing, the impression is reported as unknown, not assumed valid. And it asks measurers to protect their detection methods from being reverse-engineered — which is why this post, like the rest of our site, describes what invalid traffic is and never how we detect it.

Two records, one answer

Our ad server keeps the first record. It logs what it served, and, where the page allows a measurement script to run, whether the ad reached the standard's threshold. It decides that from the evidence the page reports — how much of the ad was on screen, for how long — never from a verdict the page claims for itself. It also supports the IAB Tech Lab's Open Measurement SDK, the industry's shared way of letting a measurement script travel with an ad into apps and video players.

The second record comes from Pixtru, the verification tracker we run on our own campaigns. Its script sits on the ad and keeps its own count of what rendered and how long it stayed on screen, then walks every billed impression through the five questions above and gives it one row and one reason. Its published method is the source for the way this post describes those gates.

Two records of the same impression will disagree. That is not a flaw; the disagreement is the product. When the ad server says “served” and the tracker says “never rendered”, that is a placement to look at. When both say “rendered” but the tracker says “could not measure”, that is a page built in a way that hides ads from measurement. Each combination points at a different owner, and a report that names the gate is a report you can act on.

What we ask of a tracker

A verification number is worth exactly as much as the method behind it, so before trusting a tracker's report we hold it to a short standard of our own. Every item below is something the standard bodies also require or recommend; the tracker we use publishes how it meets each one.

  • The same script for everyone. One file, identical for every partner. If a partner needs a special build, the design has failed — and so has comparability.
  • Reports that cannot be forged. MRC requires measurers to protect their measurement code and its reports from tampering. A tracker's report of an impression should be signed so that a fake one is rejected before it reaches the database.
  • Evidence, not verdicts. Store how long the ad was actually on screen, not a yes or no. When a threshold changes, that is a re-query over data you already hold, not a re-tag and a lost month.
  • No cookies, no cross-site identifiers. The tracker measures an ad. It does not follow a person.
  • No estimates. An unmeasured impression is reported as unmeasured.
  • One reason per impression, and totals that reconcile. Never two reasons, never none, and the rows always add back up to the billed count.
  • Exact and approximate never mixed. A match made on a shared impression ID is reported as one thing; a match guessed from time, campaign and creative is reported as another, and never folded into the exact total.
  • Every number says how fresh it is. A figure that might still move and a figure that is settled must never look identical.
  • Corrections are replays, not edits. Re-running yesterday should produce the same table, not double the rows.

How to read a verification report

Whoever you buy from, and whichever tracker they use, these questions get you to the real number:

  • Ask for the three buckets — viewable, non-viewable, undetermined — not a single rate.
  • Ask which rate you are looking at. Viewable as a share of measured, or as a share of everything? They can differ by a lot.
  • Ask what the measured rate is. A high viewable rate on a low measured rate is a small sample wearing a big number.
  • Ask whether undetermined was estimated. If it was, ask for it separately.
  • Ask whether invalid traffic was removed before or after the viewability numbers, and whether the decision rate is reported.
  • Keep desktop, mobile web and in-app apart. The standard says they should be reported separately, because they are measured differently.
  • Sort sites by wasted spend, not by volume. The placement that costs you most is rarely the one with the most impressions.
  • Never compare two vendors' rates without the same denominator. Most “our tracker says something different” arguments are two rates with two denominators.
The lesson that travels

A number without its denominator is a story, not a measurement. “Viewable” only means something once you know what was measured, what could not be, and what was removed as invalid — and a report that gives each impression one gate and one reason is the only kind you can do anything with.

For what the other numbers on a report mean, see the metrics that actually matter. For how fraud and unsafe placements are filtered before you pay, see brand safety 101.

A note on numbers and sources

The thresholds in this post are the published industry standard, quoted from MRC's guideline documents linked below; they are not our own settings. MRC and IAB Tech Lab are named only as the publishers of those standards, and no accreditation, certification or endorsement by either is claimed for anything mentioned here. The description of the verification tracker we use comes from its public documentation. The cover illustration's proportions are illustrative and do not depict any campaign. We do not publish our own viewability or invalid-traffic figures, our detection methods, or any client, partner or advertiser data. This describes our own approach and is not advice for yours.

Sources

A
AdZoic team
Making ad buying make sense, from Dhaka.
Keep reading

Related reading

Bar chart with a trend line and CPM, CTR, CVR and ROAS chipsMeasurement

eCPM, CTR, impressions: the metrics that actually matter

Decode the dashboard. What each number means, what "good" looks like, and which ones to watch.

Jun 2026 · 5 min read
Shield with a checkmark, blocked ad tiles crossed out around itBrand safety

Brand safety 101: keeping your ads out of bad neighbourhoods

How pre-bid filtering blocks ad fraud and unsafe content before a cent of your budget is spent.

Jun 2026 · 5 min read
Auction timeline with racing bid bars and a winning teal bidBasics

RTB explained: how an ad auction finishes in ~100 ms

Real-time bidding, step by step — from a page opening to the winning ad appearing, faster than you can blink.

Jun 2026 · 5 min read

← Back to all posts