The one-sentence definition
An ad is "viewable" when at least 50% of its pixels are in the reader's viewport for at least 1 continuous second (2 seconds for video). That's the Media Rating Council (MRC) standard, and it's the measurement Google, Meta, and every major ad network use.
Who MRC is and why they matter
The Media Rating Council is an independent, non-profit industry body that accredits measurement methodologies for advertising — TV, radio, print, and digital. Their Viewable Ad Impression Measurement Guidelines (first issued in 2014, updated regularly since) define the threshold all major players converged on. Any platform claiming to measure "viewable impressions" is claiming alignment with these guidelines.
Why does this matter to a publisher? Because when a media buyer from a brand agency asks "what's your viewable rate on that slot?", they're expecting a number that was computed against the MRC standard. If you report something else — say, "92% of ads were rendered" — they'll discount your inventory or refuse to buy.
The definition, in detail
- ≥50% of pixels in viewport
- At least half of the ad's rectangle must be inside the reader's currently visible browser viewport. 49% visible? Not viewable. 51%? Viewable (once the dwell also satisfies). For large-format ads (≥242,500 pixels / ~550×441), the threshold drops to 30% — acknowledging that huge ads are hard to fully fit on smaller screens.
- ≥1 continuous second (display) or ≥2 continuous seconds (video)
- The pixels must stay visible for the full dwell without interruption. If a reader scrolls past in 800ms, the impression doesn't count as viewable even if the 50% threshold was briefly met. For video, the longer dwell reflects that a viewer has to actually start watching — not just pass by.
- Served to a real browser
- The ad must render in an actual user-facing browser — not a headless crawler, not an iframe pre-fetch, not an ad blocker's shadow. Most implementations use the browser's native IntersectionObserver API, which only fires for visible elements in a live viewport.
"Served" vs "viewable" — why the distinction matters
A served impression = the ad's HTTP request completed; the creative is in the DOM. A viewable impression = the ad was in a position where a reader could have looked at it. These are different numbers, and they tell you different things:
- Served impressions tell you the technical delivery worked — your server responded, the image loaded. Useful for debugging, useless for advertisers.
- Viewable impressions tell you readers had a chance to see the ad. This is what correlates with brand lift, recall, click-through, and the outcomes advertisers actually care about.
A healthy display-ad campaign runs at 50-70% viewable rate (viewable impressions ÷ served impressions). Below 50% suggests most readers scroll past the ad before the 1-second dwell completes — usually a placement problem (the ad is below the fold on mobile, or next to skippable content).
How viewability is measured in practice
The standard modern implementation uses the browser's IntersectionObserver API:
- When an ad element mounts in the page, fire an ad_impression event (the "served" count).
- Attach an IntersectionObserver with threshold
0.5to the ad element. - When the observer reports
intersectionRatio ≥ 0.5, start a 1000ms timer (2000ms for video). - If the element stays ≥50% visible for the full dwell, fire an ad_viewable event and disconnect the observer.
- If the element drops below 50% before the dwell completes, cancel the timer; re-arm if it returns above threshold.
- Each ad mount = one chance to fire ad_viewable. Re-mounts (page flips, SPA navigation) start fresh.
ZenFlip implements this natively in the flipbook viewer's useAdViewability hook. Every ad overlay drawn on a page carries the observer; every impression and viewable event is attributed to the correct slot + placement in the analytics database.
What publishers should actually do about this
- Pick a platform that measures MRC-standard viewability natively. If you're on ZenFlip Business+, this is already done. If you're on a competitor platform that doesn't support it, you can't report viewability — and you won't be able to sell to buyers who demand it.
- Include viewable rate on your advertiser reports. Don't just report impressions and clicks — add viewable impressions and viewable rate. This is what makes your tear sheet credible.
- Optimise placements for viewability. Ads at the top of the first page or the middle of a long-dwell page perform better than ads at the extreme bottom of short content. Use viewable rate per placement to diagnose weak slots.
- Consider charging on viewable impressions (vCPM). Some publishers sell CPM on served impressions; more sophisticated operations charge vCPM (viewable CPM) which only bills for impressions that met the MRC threshold. Premium placements that are always in-view can charge a higher vCPM than lower-quality inventory.
Keep reading
- How to sell ads in a digital magazine — the full playbook — complete six-step guide from media kit to audit-ready revenue ledger.
- ZenFlip ads & monetization feature page — how the native ad stack works end-to-end.
- Commercial publishers — industry-specific positioning for magazine publishers.
Frequently asked questions
What does MRC stand for?
What counts as a "viewable" impression under MRC?
Why does viewability matter more than just impressions?
Do small publishers need to track viewability?
How is MRC viewability different from Google Active View?
How does ZenFlip implement MRC viewability?
Native MRC viewability, with no extra setup
Upload your PDF, draw an ad slot, book an advertiser. Viewable impressions start tracking automatically — the same measurement Google and Meta use.