WebsiteCategorizationAPI
Home
Demo Tools - Categorization
Website Categorization Text Classification URL Database Taxonomy Mapper
Demo Tools - Website Intel
Technology Detector Quality Score Competitor Finder
Demo Tools - Brand Safety
Brand Safety Checker Brand Suitability Quality Checker
Demo Tools - Content
Sentiment Analyzer Context Aware Ads
Resources
API Documentation Pricing Login
Try Categorization

Made-for-Advertising (MFA) Detection

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.

~15%
of programmatic spend lands on MFA (ANA 2023)
20+
signals per URL in one composite score
102M
domain database for batch screening
0–100
score with five risk tiers
Request a Sample Report API Documentation

The problem: your ads run on sites built for arbitrage, not audiences

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.

MFA looks legitimate in a bid request

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.

Domains churn faster than blocklists

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.

AI content collapsed the cost of faking a publisher

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.

Cloaking defeats naive crawlers

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.

Why technology detection alone is not enough

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.

The solution: a three-layer composite score

1. Structural forensics

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:

  • Distinct ad technologies (SSPs, exchanges, native networks)
  • Header-bidding depth: Prebid.js adapters actually configured
  • Ad-container-to-content ratio in the DOM
  • Slideshow / pagination patterns splitting thin content
  • Autoplay and outstream video players
  • Editorial word count and internal-link stuffing

2. Content authenticity (LLM)

An LLM audits the extracted editorial content the way a human reviewer would, scoring:

  • Clickbait style in headline and framing
  • Trustworthiness: sourcing, authorship, brand reputation
  • Deceptive or manipulative content patterns
  • Originality: original reporting vs aggregated vs likely AI-generated
  • An overall MFA likelihood with a one-sentence evidence trail returned in the response

This is what catches the AI-content farm whose ad stack looks innocent.

3. Domain intelligence

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.

  • Flag source is returned transparently (publicly_flagged_mfa)
  • Cloaking is handled: monetization_observed reports what the crawler saw, separately from the flag
  • Parked or repurposed domains fall back to behavioural signals only

One call, one score

POST 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.

Request (curl)
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"
Request (Python)
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"])
Response — a real, documented MFA domain
{
  "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.

Score tiers

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.

ScoreTierMeaningTypical action
0–25CLEANLegitimate publisherAllow
26–45LOW RISKSome signals, likely legitimateAllow, monitor
46–65MODERATESuspicious profileManual review
66–85HIGHLikely MFAExclude / renegotiate
86–100VERY HIGHAlmost certainly MFABlock

What the signals mean

ad_script_count & header_bidding_bidders

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_to_content_ratio

Ad containers vs real content elements in the rendered DOM, dampened on genuinely long-form pages so ad-heavy premium journalism is not penalized.

pagination_detected

Slideshow and next-page patterns that split thin content across many impressions — only counted when the content actually is thin.

content_originality & mfa_llm_likelihood

The LLM judgment: original journalism, aggregation, or likely AI-generated filler — with the decisive evidence quoted in llm_evidence.

publicly_flagged_mfa

Which public research names this domain (e.g. adalytics_2024, newsguard_2023). Auditable — you can cite the source in a dispute.

monetization_observed

What our crawler actually saw. A flagged domain showing no ads to a datacenter IP is the cloaking fingerprint, not innocence.

How teams deploy it

Pre-bid inclusion lists

Batch-screen your supply path against the 102M-domain database, keep CLEAN/LOW domains, and re-score MODERATE monthly as MFA inventory churns.

Post-campaign audits

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.

SSP / exchange onboarding

Gate new publisher applications with an automated MFA score plus content quality scores before inventory ever reaches buyers.

Media auditing

Independent auditors attach the full signal breakdown to findings — every score decomposes into named, checkable evidence.

A practical rollout plan

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.

1

Measure silently

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.

2

Review the middle

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.

3

Enforce at the edges

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.

4

Re-score continuously

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.

Frequently asked

Doesn't my verification vendor already do this?

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.

What about false positives on ad-heavy but legitimate publishers?

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.

Is this only for single URLs?

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.

How does it relate to your other classifications?

MFA detection composes with IAB content categorization, quality scores, and audience segmentation — one fetch, multiple intelligence layers on the same page.

Related resources

See your own supply path scored

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
Stay in the loop

You are on the list!

We will send you updates that matter — no spam.