Score any URL 0–100 for Made-for-Advertising risk in real time. One API call combines ad-stack forensics, page-structure analysis, AI content-authenticity judgment and domain-level intelligence from public MFA research — so your media budget stops leaking into arbitrage inventory.
Made-for-Advertising websites exist for one purpose: buy cheap traffic, cram the page with ad slots, and pocket the spread. They look like publishers in a bid request — they even carry consent banners and ads.txt files — but they deliver almost no attention, no brand lift and no conversions. The ANA's programmatic transparency study found that roughly 15% of programmatic spend — about $13 billion a year — flows to MFA inventory, and around 21% of impressions land there. Adalytics' 2024 investigations showed even Fortune 500 advertisers with sophisticated verification partners were buying "Made for Arbitrage" placements at scale.
Domain, ads.txt, sellers.json, CMP banner — every checkbox a DSP verifies is present. The bid request cannot tell you the "publisher" was registered eight weeks ago and is 90% ad slots.
Jounce Media observed that the top MFA domain list turns over month to month. A static blocklist bought last quarter is already stale; detection has to be repeatable, per-URL, on demand.
A convincing 200-article "news" site now costs a weekend of LLM generation. Volume of plausible-looking text is no longer evidence of an editorial operation.
Documented MFA operators serve ad-free, harmless-looking pages to datacenter IPs and verification bots, and the full ad load only to the paid-traffic visitors they arbitrage.
A common first attempt is to fingerprint the ad stack: "the site runs AdSense and twelve SSPs, so it must be MFA." It fails in both directions. Every legitimate publisher also runs programmatic — The Guardian's homepage loads Google Ad Manager, header bidding and identity partners, exactly like an arbitrage site would. Meanwhile modern AdSense-arbitrage farms run a deliberately minimal stack (one ad network, one CMP), and cloaked operators show crawlers no ads at all. In our own 50-site benchmark, documented MFA sites averaged fewer detectable ad technologies (4.9) than premium publishers (8.1). Signal has to come from combining what the page is structurally, what the content authentically is, and what is publicly known about the domain.
We fetch the page in a real headless browser — accepting the consent dialog and scrolling, because EU crawling without consent hides the ad stack — then parse the live DOM:
An LLM audits the extracted editorial content the way a human reviewer would, scoring:
This is what catches the AI-content farm whose ad stack looks innocent.
Domains documented as MFA by independent public research — the Adalytics "Made for Arbitrage" study, Adalytics network-graph clusters, NewsGuard's AI content-farm monitoring — carry a reputation flag, exactly how commercial MFA products operate.
publicly_flagged_mfa)monetization_observed reports what the crawler saw, separately from the flagPOST a URL, get the composite score with every underlying signal exposed — no black box, every number defensible in front of an auditor or a publisher dispute.
curl -X POST "https://www.websitecategorizationapi.com/api/mfa/score.php" \ -d "query=https://example-news-site.com/article/10-best-things" \ -d "api_key=YOUR_API_KEY"
import requests
resp = requests.post(
"https://www.websitecategorizationapi.com/api/mfa/score.php",
data={"query": url, "api_key": API_KEY},
timeout=180,
)
result = resp.json()
if result["mfa_score"] >= 66: # HIGH or VERY HIGH
blocklist.add(result["url"])
elif result["mfa_score"] >= 46: # MODERATE
review_queue.add(result["url"], result["signals"])
{
"url": "https://www.heraldweekly.com/travel/welcome-to...",
"mfa_score": 78,
"mfa_risk": "HIGH",
"signals": {
"ad_script_count": 4,
"header_bidding_bidders": 0,
"ad_to_content_ratio": 0.25,
"content_word_count": 1168,
"pagination_detected": false,
"clickbait_score": 0.2,
"trustworthiness_score": 0.7,
"mfa_llm_likelihood": 0.4,
"content_originality": "original",
"mfa_operator_infrastructure": ["Cortex Media Group"],
"publicly_flagged_mfa": "adalytics_2024",
"domain_flag_applied": true,
"monetization_observed": true,
"consent_management": ["Google Funding Choices"]
},
"ad_technologies_detected": [
"Google Ad Manager / DoubleClick",
"Google AdSense", "Ad-Score", "Cortex Media Group"
],
"status": 200
}
Note what happened here: the article itself reads harmlessly (LLM likelihood 0.4) and the visible ad stack is light — but the domain is in the Adalytics 2024 arbitrage sample and runs a known MFA operator's infrastructure, so it scores HIGH, with the reason on the record.
Calibrated on a benchmark of documented MFA sites vs premium and mid-tier publishers: known MFA averaged 78 while premium publishers averaged 11, with zero premium false positives.
| Score | Tier | Meaning | Typical action |
|---|---|---|---|
| 0–25 | CLEAN | Legitimate publisher | Allow |
| 26–45 | LOW RISK | Some signals, likely legitimate | Allow, monitor |
| 46–65 | MODERATE | Suspicious profile | Manual review |
| 66–85 | HIGH | Likely MFA | Exclude / renegotiate |
| 86–100 | VERY HIGH | Almost certainly MFA | Block |
Distinct ad technologies and configured Prebid adapters. MFA sites often run either an extreme stack (20+ demand partners) or a suspiciously minimal AdSense-only arbitrage setup.
Ad containers vs real content elements in the rendered DOM, dampened on genuinely long-form pages so ad-heavy premium journalism is not penalized.
Slideshow and next-page patterns that split thin content across many impressions — only counted when the content actually is thin.
The LLM judgment: original journalism, aggregation, or likely AI-generated filler — with the decisive evidence quoted in llm_evidence.
Which public research names this domain (e.g. adalytics_2024, newsguard_2023). Auditable — you can cite the source in a dispute.
What our crawler actually saw. A flagged domain showing no ads to a datacenter IP is the cloaking fingerprint, not innocence.
Batch-screen your supply path against the 102M-domain database, keep CLEAN/LOW domains, and re-score MODERATE monthly as MFA inventory churns.
Score the placement report of a finished campaign and quantify exactly how much spend hit HIGH/VERY HIGH inventory — per DSP, per deal, per agency.
Gate new publisher applications with an automated MFA score plus content quality scores before inventory ever reaches buyers.
Independent auditors attach the full signal breakdown to findings — every score decomposes into named, checkable evidence.
MFA exclusion is a change to live media buying, so treat it like one. The pattern below is what we see work with agencies and in-house programmatic teams — it produces evidence before it produces enforcement, which keeps publisher relations and internal stakeholders on side.
Score the last 90 days of placement reports without changing anything. This establishes your true MFA exposure per DSP, per deal and per PMP — typically the single most persuasive artifact for leadership.
Everything scoring MODERATE goes to a human once. The signal breakdown makes each review a two-minute decision, and the outcomes calibrate your own thresholds against your risk tolerance.
Exclude VERY HIGH and HIGH first. Because domain flags cite public research and every structural signal is in the response, disputes with sellers resolve on evidence rather than opinion.
MFA supply churns monthly. Re-score inclusion lists on a schedule via the API, and diff the results — new HIGH-risk entrants are your early-warning system, not a quarterly surprise.
Teams that run this loop typically reallocate budget rather than cut it: money that was buying arbitrage impressions moves to the mid-tier publishers that were being crowded out on price, and the same reporting shows the working-media percentage recover campaign over campaign. That is the number your CFO actually cares about, and it is why MFA detection belongs in the measurement stack permanently, not as a one-off cleanup.
The Adalytics 2024 study documented MFA placements passing major verification vendors at scale. Our score is complementary and fully transparent — you see every signal, not a pass/fail verdict, so you can set your own thresholds and defend them.
Long-form dampening, homepage-aware scoring and an explicit premium-editorial profile protect legitimate publishers; in our benchmark no premium publisher scored above 25. A trusted news brand with a heavy ad stack is not MFA and does not score as such.
No. The same scoring runs in batch against the 102M-domain database for inclusion-list building, and the real-time endpoint handles per-URL checks at bid or audit time. See also the Ad Placement Analyzer and Technology Detector tools for interactive exploration.
MFA detection composes with IAB content categorization, quality scores, and audience segmentation — one fetch, multiple intelligence layers on the same page.
Send us a placement list and get back a scored CSV with the full signal breakdown — the same report format we produce for media auditors.
Request a Sample Read the API Docs