A 10 million domain database, 99.99 percent of active internet usage, with every ad-carrying site profiled: who sells it, how much of it, how clean it is, who reads it
Active SSPs with seat IDs, an impression range, a made-for-advertising quality score, IAB category and a cookieless audience profile. One row per domain, for a handful or your whole index, from a 10 million domain database covering 99.99 percent of active internet usage.
The database: 10 million domains, 99.99 percent of active internet usage, every ad-carrying site profiled
The row below exists for every one of the 10 million most visited root domains, the sites behind 99.99 percent of active internet usage, each checked for advertising supply. Here is a small sample of ten.
10M domains
Category, language, country, rank and audience profile for every domain in the database.
99.99% of active usage
The most visited root domains on the web, each checked for advertising supply.
Every ad-carrying site
Sellers, seat IDs, scale and quality for each domain that sells ads programmatically.
A sample of ten, exactly as a customer receives them
Seven editorial sites and three made-for-advertising sites. Full profiles with the complete audience segmentation are on the sample page.
Tinted cards are sites built to carry ads rather than to be read. Every card's audience tile opens the full audience segmentation for that domain, and the sample page shows the same ten with seat IDs.
Who uses it, and for what
Curation and PMP packaging
Qualify any media owner in seconds
Check a site a client asks about before the call, not after.
Build the deal in the SSP that carries the site, with the right seat ID, first time.
Keep packages clean with the score; sell them as audiences with the profile.
Extend a hand-reviewed index to any media owner a brief names.
SSPs and exchanges
See every publisher's other relationships
Scale, quality and audience per domain for the whole market, not only your own supply.
Catch made-for-advertising sites before they enter curated supply.
Prioritise publisher development by scale and quality.
Database for internal joins, or API for tooling.
Agencies, trading desks, DSPs
Inclusion lists with quality on the same row
Build and refresh inclusion and exclusion lists from data, not from vendor decks.
Supply-path decisions with the active SSP list per domain.
Audience-first lists for cookieless campaigns.
Client reporting that shows the numbers behind each site.
Verification and measurement
A supply-chain layer next to your own signal
Seller relationships and quality per domain, next to page-level measurement.
Coverage for the long tail panels and tags never reach.
An independent quality score to reconcile against your own.
Delivered as a database for joining at scale.
Four workflows, step by step
1
Qualify media owners for a curated deal
Pull candidates by region, category and language.
Sort by impression range; drop everything under the quality bar.
Read the active SSP and seat ID for each survivor.
Confirm the audience matches the brief.
A week of emails becomes an hour with a table.
2
Refresh an inclusion list every week
Re-run the whole list weekly.
Flag sites whose score dropped or whose active SSPs changed.
Append new candidates that meet scale and quality in target categories.
Every change carries the numbers that caused it.
3
Clean supply before it enters a marketplace
Profile every publisher that applies.
Score gates admission; the impression band sets expected volume.
Audience profile decides which packages the publisher belongs in.
Re-run monthly to catch sites that change character.
4
Build an audience-first package without cookies
Filter for the personas and purchase intent the brief names.
Restrict to market, scale and a quality score above 70.
Each domain comes with the exchange and seat ID to buy it through.
Defined by content, so it does not decay as cookies disappear.
What is in a row
SSPs actively selling the site
The exchanges that actually carry the site's ad requests, most active first, with seat IDs. Separated from SSPs merely authorised, plus the reseller count.
Estimated monthly impressions
A range for the whole site with ad positions per page. Tells a 100 million, a 10 million and a 100 thousand impression site apart.
Quality score
0 to 100, higher is better. Sites built to carry ads rather than to be read fall below 50 and are flagged.
Audience profile
Demographics, life stage, interests, purchase intent and personas from the site's own content. IAB Audience Taxonomy codes, no cookies or IDs.
Category, language, country
IAB content category, primary language, country and rank, from the same database as the categorization API. Joinable with data you already hold.
Owner and sales house
The media group behind the domain where declared. A list of 300 domains collapses into the 40 conversations it really is.
How to read the four numbers
Active versus authorised
Only the active list fills
Publishers permit far more sellers than they use. One regional news site in the sample: 113 authorised, 989 reseller relationships, 24 actually selling.
Build the deal in one of the other 89 and it never fills.
The row shows the active SSPs with their seat IDs, and the dormant rest as a count.
Impressions
A range, on purpose
Sorts sites into the right order of magnitude before a conversation.
Comes with ad positions per page so the reasoning is visible.
The SSP delivery report remains the record once a deal is live.
Quality score
Editorial sites 79 to 93, made-for-advertising sites 28
Made-for-advertising sites look ordinary: owners, dozens of exchanges, describable audiences.
The score captures page structure, ad density, content origin and how traffic is acquired.
50 separates the groups across the sample; set a stricter bar for premium packages.
Audience
From the content, not from visitors
Exists for every domain, including sites no data partner ever panelled.
Survives the end of third-party cookies because it never used them.
Sample: the beauty site profiles female-leaning 25 to 44 with beauty products in market; the football site male-leaning with sports merchandise; the parenting site expectant mothers with baby products.
The problem this solves
Every list in programmatic buying is a set of publisher domains, and every domain on it was once qualified by a person. That breaks in three places.
It does not scale
Teams re-review the same few thousand well-known publishers. The long tail, where both the risk and the unused audience sit, is never looked at.
It goes stale
Publishers change partners, move ad positions and get acquired. A site approved two years ago is never re-checked.
It is blind to unknown sites
Nobody can qualify a site they have never heard of. Made-for-advertising inventory lives exactly there.
The fix: a row of data that exists for any domain on demand, answering the six questions a buyer asks, the same way for a national newspaper and for a site launched last month.
Coverage, delivery, and what it is not
Coverage
Any of the 10 million domains behind 99.99 percent of active internet usage. Long-tail sites get the same fields as the largest.
Sites without ads
Still in the database with category, language, country, rank and audience. Empty seller list, no impression estimate: a useful answer in itself.
Three delivery forms
Lookup API as JSON, list job as CSV or JSON with optional weekly refresh, database licence on-premises. Same field names everywhere.
Not a delivery report
Impressions are an estimated range from the outside. Once a deal is live, the SSP's numbers are the record.
Not a real-time signal
Profiles refresh weekly or monthly, which matches how fast publishers actually change.
Not a verification tag
It is the layer before the impression, deciding which sites are worth bidding on. Cheaper to remove a site here than to flag it later.
Why one row instead of five vendors
Five feeds, five problems
Supply-chain data, traffic estimates, quality lists, categories and audience data each from a different specialist.
Different domain normalisations and refresh cycles.
Different definitions of the same thing.
A licensing conversation for each.
One row, one day, one domain
All six dimensions for the same domain on the same date.
Keyed on the registrable domain, joinable with your own data.
Audience and supply described together, because a package is sold as an audience.
One supplier, one refresh, one invoice.
The fields
The same row in every delivery form. Field names are stable across API, CSV and database.
Field
Content
domain, owner
The registrable domain and the media group or sales house behind it where declared.
active_ssps[]
Exchanges actively selling the site, most active first, each with name, seat_ids[] and an activity share.
authorised_dormant, resellers
Count of SSPs permitted but not selling, and count of intermediaries permitted to sell the site.
impressions_low, impressions_high, ad_positions
Monthly impression range for the whole site and the ad positions detected per page.
quality_score, quality_label
0 to 100, higher is better; label editorial, mixed or made for advertising.
iab_category, language, country, rank
IAB content category, primary language, country and global rank.
audience
Demographics, life stage, household, interests, purchase intent and personas, coded to the IAB Audience Taxonomy, plus a confidence level.
profiled_at
Timestamp of the profile, so refreshes can be diffed.
Questions buyers ask
How current are the profiles?
API lookups are computed on request. List jobs are delivered fresh and can be refreshed weekly with a change report. The database licence is refreshed monthly, with the deep layer for the largest sites on the same cycle.
Can we start with a few domains?
Yes. Send five to ten domains you know well and you get the rows back, so you can judge the output on sites you already understand before choosing a plan. The sample page shows exactly what comes back.
Does it cover the long tail?
The row exists for any of the 10 million domains behind 99.99 percent of active internet usage. Long-tail sites are profiled with the same fields as the largest publishers.
How is the quality score different from a block list?
A block list is a set of names compiled in the past. The score is computed for any domain, including one launched last week, as a level rather than a yes or no.
Is the audience profile compliant?
It is derived from published content, not from people. No cookies, device identifiers, panels or user tracking are involved, which is why it works for every domain and does not depend on consent frameworks.
Can it be joined with our own data?
Yes. Every row is keyed on the registrable domain, and the category, language and country come from the same database as the categorization API, so joins with existing categorization or block lists are direct.
Start with your own domains
Send a list, get the rows back, then decide between an API plan, a one-time job with optional refresh, or a database licence.