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

Brand Safety & Suitability

Keyword blocklists fail in both directions: they let a brand land next to a crisis because the "wrong word" wasn't on the list, and they block quality journalism because the "right word" was. This platform reads the whole page — 703 IAB categories plus a 44-category web filtering taxonomy, suitability and quality scores, MFA and COPPA risk layers, and sentiment — so you can move from binary blocking to suitability tiers that protect the brand without killing reach.

703
IAB content categories, full-page classification
44
web filtering categories for safety floors
5
suitability tiers instead of one blocklist
2
extra risk layers: MFA and COPPA
Try the Brand Safety Demo Request a Sample API Documentation

The problem: blunt instruments, expensive misses

Every brand-safety incident that makes the trade press follows the same script: an ad appears beside content no reasonable person would place it near, a screenshot circulates, and spend is frozen while everyone audits everyone. The industry's reflex — longer keyword blocklists — causes the opposite failure at far larger scale.

Adjacency incidents keep happening

Airline ads beside crash coverage, snack brands beside tragedy — keyword filters miss these because the dangerous page rarely contains the blocked word, and the harmless page often does. Only whole-page understanding separates the two.

Over-blocking defunds the news

Blocklists carrying words like "shooting", "COVID" or "attack" strip ads from award-winning journalism wholesale. Brands lose the engaged, high-attention news audience; publishers lose the revenue that funds the reporting — and the money flows to blander, worse inventory.

GARM-style frameworks need page-level nuance

Industry suitability frameworks distinguish an absolute floor (never monetize) from graduated risk levels per category. A keyword can't tell glorification of violence from reporting on it — a classifier that reads the page can.

Safe-looking pages carry hidden risk

A page can be "safe" by every content standard and still be a made-for-advertising farm wasting your budget — or a child-directed site exposing you to COPPA liability. Content categories alone don't surface commercial and regulatory risk.

The solution: classify the page, grade the risk, keep the reach

Four products, one URL in. Together they replace "is this word present?" with "what is this page, how risky is it for this brand, and at what tier should we buy it?"

1. Full-page classification, two taxonomies

One call to POST /api/iab/iab_web_content_filtering.php classifies the rendered page into the IAB Content Taxonomy (703 categories) and the Web Filtering taxonomy — 44 categories built for brand safety, parental controls and compliance, covering the floor content every framework excludes: adult, weapons, hate, illegal drugs and their neighbors. Because the model reads meaning, crisis reporting and its glorification land in different categories.

2. Suitability and quality scoring — not binary blocking

Quality scores grade clickbait, trustworthiness, design and deception so you can express policy as tiers, not walls. Explore live results in the suitability dashboard and the URL classification dashboard, or test single pages with the Brand Safety Checker and Quality Score tools.

3. Commercial and regulatory layers: MFA and COPPA

MFA detection (POST /api/mfa/score.php) protects the budget from arbitrage inventory that passes every content check, and COPPA compliance scoring (POST /api/coppa/score.php) flags child-directed pages where behavioral advertising creates regulatory exposure — two risks no keyword list can even see.

4. Sentiment for tone-sensitive placements

Some placements are category-safe but tone-wrong: a celebration campaign beside a somber obituary is technically "News" and completely unsuitable. The Sentiment Analyzer adds a tone dimension, and the same signal ships in audience segmentation's content_context block for campaign-scale use. For planning-scale screening, the 102M-domain database carries classifications for every domain you might ever bid on.

A suitability decision flow in code

Classification first, floors second, graduated risk last. The result is a tier your DSP or ad server can act on — and that a marketer can read.

Classify a page (curl)
curl -X POST "https://www.websitecategorizationapi.com/api/iab/iab_web_content_filtering.php" \
  -d "query=https://example.com/news/article" \
  -d "api_key=YOUR_API_KEY" \
  -d "data_type=url"
Response shape
{
  "classification": [
    {"category": "News and Politics > Crime", "confidence": 0.91},
    {"category": "News and Politics > Law", "confidence": 0.64}
  ],
  "language": "en",
  "status": 200
}

Note what the classifier gives you that a keyword never could: this page is reporting about crime — a suitability decision — not a page promoting it, which would surface in the web-filtering floor categories instead.

Categorize → floor check → tier (Python)
import requests

BASE = "https://www.websitecategorizationapi.com"

def post(path, extra=None):
    data = {"query": url, "api_key": API_KEY}
    data.update(extra or {})
    return requests.post(BASE + path, data=data, timeout=180).json()

def suitability_tier(url):
    page = post("/api/iab/iab_web_content_filtering.php",
                {"data_type": "url"})
    cats = {c["category"] for c in page["classification"]
            if c["confidence"] >= 0.6}

    # 1. Floor: never monetize, for any brand
    if cats & FLOOR_CATEGORIES:        # adult, weapons, hate...
        return "FLOOR"

    # 2. Commercial + regulatory layers
    mfa = post("/api/mfa/score.php")
    if mfa["mfa_score"] >= 66:
        return "HIGH_RISK"             # budget safety
    coppa = post("/api/coppa/score.php")
    if coppa_flags_child_directed(coppa):
        return "REGULATED"             # contextual ads only

    # 3. Graduated suitability, per brand policy
    if cats & brand_policy.high_risk:  # e.g. graphic news
        return "HIGH_RISK"
    if cats & brand_policy.medium:     # e.g. hard news, debate
        return "MODERATE"
    return "SUITABLE"

tier = suitability_tier(url)
apply_bid_multiplier(url, TIER_MULTIPLIERS[tier])

Suitability tiers, not a wall

The point of tiers is that different brands draw the line differently: a toy brand and an energy-drink brand should not share a blocklist. Keep the floor absolute, and let each campaign pick its tier — that is how you stay safe and stay in the news.

TierWhat lands hereTypical treatment
FLOORWeb-filtering floor categories: adult, hate, weapons, illegal contentNever monetize, for any brand, ever
HIGH RISKGraphic or breaking crisis coverage; MFA score 66+Exclude by default; opt-in only for risk-tolerant brands
MODERATEHard news, politics, contested social topicsSuitable for most brands; sensitive campaigns exclude
LOW RISKGeneral news, sport, business, entertainmentInclude; monitor tone via sentiment
SUITABLEAligned verticals, high quality scores, positive or neutral toneInclude; candidate for contextual PMPs

A news article about a marathon-day tragedy tiers HIGH RISK for a sportswear brand's launch campaign — and stays monetizable for a brand that has chosen to support news. That is the difference between suitability and a blocklist: the journalism keeps its funding, and your brand keeps its distance, each by explicit policy rather than by keyword accident.

Frequently asked

How does this map to GARM-style suitability frameworks?

The web filtering taxonomy covers the floor categories such frameworks exclude outright, and the 703-category IAB classification gives you the resolution to implement graduated risk levels per sensitive topic. Because you receive categories and confidences rather than a verdict, you can encode your own framework mapping — and change it per client without re-classifying anything.

Will this stop us from advertising in news altogether?

The opposite — that is the point. Whole-page classification distinguishes reporting from glorification, and sentiment separates somber coverage from routine news, so you can keep buying journalism at the MODERATE and LOW RISK tiers instead of keyword-blocking the entire category. Reach comes back; only genuinely unsuitable pages leave the plan.

Can we run this at campaign scale, pre-flight?

Yes. Screen placement lists in batch through the APIs, or license the 102M-domain offline database to tier every domain before a single bid — the same architecture our DSP & SSP customers use. For one-off checks, the Brand Safety Checker gives an instant interactive answer.

Related resources

Audit your current blocklist

Send us your keyword blocklist and a placement sample; we return the pages you are wrongly blocking, the risks you are missing, and a tiered suitability map to replace both.

Try the Brand Safety Demo 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.