A banner loads at the bottom of a long article. The reader never scrolls that far. The page is closed thirty seconds later. Somewhere, that ad just got counted as an impression.
Nobody did anything wrong. By the oldest definition in the industry, an impression is simply an ad that was served and rendered. It says nothing about whether a human eye ever landed on it. That gap between “it loaded” and “it was seen” is the whole reason ad viewability exists as a separate, measured thing, and the reason it changes what an ad should actually cost.
What is the difference between an impression and a viewable impression?
When a creative is requested and rendered in a slot, the ad server logs an impression. That happens whether the slot is at the top of the page or three screens below the fold, whether the tab is active or sitting in the background, whether the reader is still there or left a minute ago. It is the same event our piece on the ad auction in 100 milliseconds follows from the moment a page opens to the moment the ad renders.
This is not a flaw, it is just what the word has always meant: delivery, not attention. For planning around an entire page or app, it is a fine, cheap signal. For judging whether a specific placement did its job, it is not enough on its own.
What does the MRC standard require to count as viewable?
The Media Rating Council defines the line between “delivered” and “viewable” in concrete, measurable terms:
- Display: at least 50% of the ad’s pixels must be on screen for a continuous 1 second.
- Video: at least 50% of pixels on screen for 2 continuous seconds.
Both numbers matter. A banner that flashes past in half a second during a fast scroll does not qualify, even if most of its pixels were briefly visible. A banner sitting fully loaded but just below the fold, never scrolled to, does not qualify either, however long the page stays open. Only pixels on screen, continuously, for long enough, counts.
Measuring it on mobile apps: the IAB Open Measurement SDK
On a website, a browser can observe its own page well enough to time this. Inside a mobile app, there is no browser doing the watching, each app is its own closed environment, and historically every ad network built its own, incompatible way of checking whether a creative was on screen.
The IAB Open Measurement SDK (OM SDK) is the industry’s answer: a single, standard library that app developers embed once, which then lets any measurement provider request the same viewability and verification signals (is the view on screen, is it occluded, is the app in the foreground) without each one shipping its own code into the app. It is the mobile-app equivalent of what a browser already gives measurement tools for free on the open web, and it is what makes an MRC-style viewability number trustworthy inside an app rather than a guess.
Why viewable CPM is the honest price
CPM, cost per thousand impressions, is the classic pricing unit. The trouble is that CPM treats every impression as equal, including the ones nobody saw. Viewable CPM keeps the same spend on top and changes only the count underneath:
The only difference is the bottom line: every impression served, or only the ones that were seen.
Two campaigns can show the exact same CPM and still deliver completely different amounts of actual attention. CPM prices delivery. Viewable CPM prices attention.
A framed example. Say a campaign spends €500 and serves 100,000 impressions. Its CPM is €5.00. Now suppose only 70,000 of those impressions were viewable by the MRC standard, perhaps the rest loaded in slots that were never scrolled to, or in background tabs.
Same campaign, two prices: €5.00 per thousand served, €7.14 per thousand actually seen.
Same spend, same creative, same auction. The CPM looks identical to a campaign with 100% viewability, but the price per impression that actually had a chance to be seen is 43% higher. Comparing two line items, or two publishers, on CPM alone can make the cheaper-looking one the worse deal once viewability is factored in. Viewable CPM is one of the numbers worth watching alongside the others covered in our guide to programmatic KPIs and metrics.

Whatever platform you use, the report is where CPM and viewable CPM actually get compared side by side.
Double tracking: check it yourself, not just our number
A viewability percentage, or any other number in a report, is more trustworthy when it is not the only source counting it. That is the idea behind double tracking: alongside the platform’s own measurement, your own ad server’s tracking pixels and scripts fire on the same impressions, so your own systems record the same events independently.
Practically, that means a line item can carry both: the measurement built into the platform, and a third-party pixel or script from your own ad server, firing in parallel on every served and viewable impression. Neither depends on the other. If the two disagree, that is itself useful information. If they agree, you have independent confirmation rather than a single party’s word.
One ad serves, two independent trackers count it, and the two numbers get compared rather than trusted blindly.
This matters most for the numbers that set the price: impressions, viewable impressions, clicks. The point is not to replace a platform’s reporting, it is to never have to take any single report on faith, the same principle behind the checks covered in ad fraud and brand safety.
FAQ
What counts as a viewable impression under the MRC standard?
For display, at least 50% of the ad’s pixels must be on screen for a continuous second. For video, the same 50% threshold applies for 2 continuous seconds. An impression that never meets that bar is still an impression, just not a viewable one.
Why is viewable CPM usually higher than plain CPM?
Plain CPM divides spend by every impression served, including ones nobody saw. Viewable CPM divides the same spend by only the impressions that met the MRC standard, a smaller number, so the price per impression that actually had a chance to be seen comes out higher.
How is viewability measured inside a mobile app?
Through the IAB Open Measurement SDK, a standard library app developers embed once, which then lets any measurement provider request the same on-screen and foreground signals, instead of every ad network shipping its own incompatible code into the app.
What is double tracking, and why does it matter?
Double tracking means your own ad server’s tracking pixels and scripts fire in parallel with a platform’s own measurement, on the same impressions. If the two numbers agree, that is independent confirmation. If they disagree, that disagreement itself is useful information.
Can I compare viewability across two different publishers or platforms?
Yes, as long as both report viewability by the same standard, the MRC’s 50% for one second for display. Comparing a vCPM calculated under that standard against one calculated differently is not a fair comparison.
How Arago helps
- Viewability is measured with the IAB Open Measurement SDK, to the MRC standard: 50% of an ad’s pixels on screen for a continuous second.
- Every line item supports double tracking: your own third-party tracking pixels and scripts, from your own ad server, fire alongside Arago’s own tracking.
- Reporting shows impressions, viewable impressions, CPM and viewable CPM, per line item, per creative and per ad size, live while the campaign runs, so you can watch the real price per view as it moves.
- Controls around each line item, including allow and block lists of sites and apps, let you act on what the numbers show.
- All of this runs across the buying Arago already does: real-time bidding on the open internet, across websites and mobile apps.

Inside an app, the OM SDK is what lets a viewability number be checked at all.
An impression tells you an ad was delivered. A viewable impression tells you it had a chance to be seen. A second, independent set of pixels tells you that the number you are looking at is the same number someone else is counting too. None of that is exotic measurement, it is the standard groundwork for trusting a price, and Arago includes it by default, at no extra cost, on every campaign.


