MFA Spend Fell to 0.39%. If Your Game Portal Got Classified, Nobody Sends You a Letter.
Verification vendors flag made-for-advertising inventory on ad density, refresh rate and paid traffic — three signals a busy game portal produces anyway. Nobody tells you when it happens.
Every operator running a games site has had this quarter. Traffic flat. Sessions flat. Fill rate looks fine. CPMs down by a third, and not one party in the chain can tell you why. The usual suspects get blamed: seasonality, a geo mix shift, an SSP rebalancing its floors.
There is another explanation almost nobody checks, because there is no notification for it. A verification vendor changed how it classifies your domain, and a block of demand-side platforms quietly stopped bidding on you.
📉 The Buy Side Won This Fight, Which Is Exactly Why It Matters Now
Made-for-advertising inventory used to be a rounding error you could argue about. It isn't any more, in either direction.
When the ANA published its first Programmatic Transparency Benchmark in June 2023, MFA sites accounted for 21% of the impressions in the study and 15% of the ad spend. By the Q3 2025 benchmark, released on 5 November 2025, MFA exposure was down to 0.39% of spend — roughly half the previous quarter's figure. The Q2 2025 edition put the median at 0.8%, down from 2.3%, though it also reported a quartile of buyers still running as high as 28.7%.
Read that as a supply-side operator, not a buyer. Three years ago, landing on an MFA list cost you a slice of programmatic demand and you probably never noticed. Today it costs you most of the branded budget in the auction, because the buy side actually implemented the blocks rather than talking about them.
And the money did not otherwise get cleaner. The ANA's August 2025 report put total wasted programmatic spend at $26.8 billion, up 34% from $20 billion in 2023. Waste moved; it did not disappear. MFA is the one line the industry genuinely closed. That makes it the single classification with the sharpest revenue consequence attached to it.
🔀 Two Credible Numbers That Look Like They Contradict Each Other
Hold the ANA's sub-0.5% next to Jounce Media, whose supply-path research most buyers treat as the reference point, and which has classified roughly a fifth of open-web ad impressions as MFA.
Under half a percent, or a fifth. Both are right, and the gap is the useful part. The ANA measures what money bought. Jounce measures what supply exists. MFA inventory is still being served in enormous volume — it is just being served at whatever the residual bidders will pay, because the advertisers with real budgets have routed around it.
If your domain sits in that supply pool, the symptom is not zero revenue. It is a floor you cannot get above, on inventory that fills every time.
🔍 The Four Signals, and Why a Games Portal Trips Two Before Doing Anything Wrong
There is no single agreed definition. The IAB Tech Lab's 2023 framework deliberately leans on a cluster of behavioural signals rather than one threshold, and different buyers set different tolerances. Industry discussion has circled a roughly 30% ad-to-content ratio, but no serious vendor treats that as a hard line.
The vendors converge on four observable inputs. Pixalate bases its designations on ad refresh rate, ad density, social traffic rate and paid traffic rate. DoubleVerify's tiered MFA categories, launched in February 2024, describe the top tier as sites with significant ad density relative to page content and a predominant dependence on paid traffic with little to no organic. DV also weighs low viewability against benchmark, content duplicated across pages or auto-generated, and design patterns that exist to manufacture impressions — endless scroll, sticky video.
Now look at a normal game page. It is a canvas or an iframe, a title, a short description, maybe a rating widget. A crawler measuring "content" is largely measuring text, and there is almost none. Put four units around that frame and your ad-to-text ratio is grotesque by any editorial standard — while the actual thing the user came for, the game, is invisible to the measurement.
Session length compounds it. A player sits on one URL for eleven minutes. On an editorial site, a single pageview holding that long with multiple auctions firing is a red flag. On a games site it is the product working. And if you bought traffic to seed a launch — perfectly normal — your paid ratio spikes in exactly the window a classifier is sampling.
Two of the four signals, then, are structural to the format. That is not a defence you get to make to a DSP. It is a reason to be deliberate about the other two.
⏱️ Refresh Is the One You Can Get Wrong on a Technicality
Ad refresh is not prohibited. Undeclared or misdeclared refresh is.
Google Ad Manager requires publishers to declare which inventory refreshes, the trigger that causes it, and the minimum interval to expect between refreshes. There are three trigger types: user action, event-driven content change, and time interval. On desktop and mobile web, user-action refreshes carry no minimum interval. Event-triggered and time-based refreshes require at least 30 seconds. Google's language is blunt about the consequence — failing to declare refreshing inventory, or declaring the wrong trigger type or interval, is a policy violation, and Google says it will notify you of violations it detects.
Games have the best possible version of this available and routinely waste it. Level complete, game over, return to menu, next round — these are genuine user-initiated content changes, the category with no interval floor at all. A portal that fires a fresh auction on game-over is doing the legitimate thing. A portal running a 25-second timer on a sidebar unit while the player is mid-level is doing the MFA thing, and doing it in the one place a verification vendor can measure without any judgement call.
The trap is that both portals may have filled in the same declaration. Check what your code actually does against what your Ad Manager setup says it does. In most cases nobody has looked since the tag was installed.
🚦 The Signal That Actually Decides It
DoubleVerify has been explicit that ad count alone does not make a site MFA: a site can carry a significant number of ads and still fall outside the definition if it registers high rates of direct and search-enabled traffic. That nuance is the whole game for a portal operator, and it is worth reading DV's own account of how it handles the grey area before you assume you are safe or assume you are doomed.
Traffic provenance is the discriminator. Not density, not session count, not how many units are on the page.
Which reframes the arbitrage question usefully. Buying traffic is not the offence. The pattern that gets classified is traffic that only ever monetises through the ad units on the page it lands on — in, impression, gone, never seen again. If bought users play a second game, come back next week typing your domain, and show up in your most-played lists as returning cohorts, the signature is different, because it genuinely is different.
This is the argument for depth over acquisition volume that most portals only make in retrospect. Direct and organic traffic share is not just cheaper. It is the input that keeps you in the auctions worth being in.
🕵️ How to Find Out Whether This Has Already Happened to You
You will not get a letter. You can still diagnose it in an afternoon.
- Split CPM by SSP, never blended. A classification propagates unevenly across supply paths. A blended average hides the shape completely; three healthy partners and two collapsed ones average out to "a soft quarter".
- Look at bids per impression, not bid price. This is the tell. A rate-card problem lowers what bidders offer. A classification problem lowers how many bidders show up. If your bid density fell and your win price barely moved, you have a demand-eligibility problem, not a pricing one.
- Compare a game page against a non-game page on the same domain. Your about page, your blog, your category pages. If the game URLs diverge sharply and the rest holds, the classification is page-level rather than domain-level, which is both better news and easier to fix.
- Ask your SSP directly. They can usually see verification-vendor flags against your domain, and most partner managers will tell you if you ask a specific question rather than a vague one.
- Pull your viewability against benchmark. DV uses low viewability as a supporting signal. Units below the fold that never enter the viewport during an eleven-minute session are earning you a mark, not revenue.
- Read your own ads.txt and sellers.json. Stale reseller lines from a partner you left two years ago are a supply-chain hygiene signal you control completely and probably have not audited.
🚫 Five Ways Portals Walk Into This
- Stacking units around the frame because the frame is fixed. The game does not get bigger, so the layout gets more slots. Each one moves the density measurement and none of them are viewable while the player is looking at the canvas.
- Time-based refresh under 30 seconds, undeclared. Usually inherited from a template, never audited, and the single cleanest thing a vendor can catch you on.
- Seeding launch traffic and never measuring return rate. Buying traffic is a tactic. Buying traffic without instrumenting whether any of it comes back is the exact pattern the classifiers were built to find.
- Auto-generating thin "walkthrough" and "cheats" pages around every title. It targets long-tail search and it produces mass-duplicated, machine-written pages — a documented MFA marker — attached to the same domain as your real inventory.
- Mirroring the same catalogue across dozens of domains. It looks like scale on a spreadsheet. To a classifier it looks like content duplicated across sites, which is on every vendor's list.
🎮 Where a Licensed Catalogue Fits
None of this is a licensing problem and no catalogue is a compliance product. But the variable that decides your classification — the share of players arriving direct and organic rather than bought — is downstream of whether there is enough on the site to bring anyone back. A portal with forty titles gets one visit per user. Depth and a steady release cadence are what convert bought traffic into the returning cohorts that keep you out of the grey tier.
That is the practical case for licensing rather than building: it is how you get a catalogue with enough depth to justify a second visit without waiting three years to produce it. Forestry Games licenses HTML5 titles for exactly this kind of portal, and our monetization side deals with the ad-stack questions above rather than treating them as someone else's department.
🧭 What to Do This Quarter
In order, because the first item is free and the last one is a roadmap decision:
- Export CPM and bids-per-impression by SSP for the last six months. If bid density fell while win price held, stop reading and call your partners.
- Diff what your refresh code actually does against your Ad Manager declaration. Move everything you can onto user-action triggers — a games site has real ones, which most publishers do not.
- Count units per game page and check viewability on each. Remove anything that has never been seen. It was not making money; it was making a signal.
- Report paid versus direct and organic traffic share as a standing metric, not a campaign-level one. This is the number that decides your classification, and almost nobody tracks it at the domain level.
- Audit ads.txt and sellers.json, and delete every line you cannot account for.
The uncomfortable part of this topic is that a well-run game portal and an MFA site produce genuinely similar telemetry on two of the four signals a machine can measure. You cannot argue your way out of that, and there is no appeals process because there is no notification in the first place. What you can do is make the other two signals unambiguous — declared, honest refresh and a real base of returning players — so that the automated read of your domain matches what it actually is.


