Skip to content
whichadnetwork
Guide

How to find out which ad network a website uses

You can answer this for almost any site in about a minute, without any tools, because both sides of the ad industry are required to publish who they work with. Here is where those files live, how to read them, and the trap that makes most quick answers wrong.

1 August 2026 · 8 min read

Every site running display advertising leaves a public trail. Not in an analytics tool or a paid database — in two plain text files that the advertising industry obliges both sides to publish. Once you know they exist, identifying a site’s ad network stops being guesswork.

This is exactly how this site is built: 38,758 network–site relationships across 39,459 sites, assembled entirely from records the networks and the publishers put on the open web themselves.

Method 1: read the site’s ads.txt

Add /ads.txt to any domain — example.com/ads.txt — and if the site sells advertising programmatically, you will usually get a text file. It is the publisher’s own declaration of who is allowed to sell its inventory. Each line looks roughly like this:

google.com, pub-1234567890123456, RESELLER, f08c47fec0942fa0

The first field is the advertising system, the second is the account id the publisher has with it, and the third says whether that partner owns the inventory (DIRECT) or resells it (RESELLER). A managed ad network almost always adds a large block of lines at once, so the network running a site is usually visible as a cluster of entries appearing together.

The catch is that the network’s own domain often does not appear. Networks sell through upstream exchanges, so a site monetised by a managed partner may show hundreds of lines naming exchanges and not one line naming the network you are looking for. Reading ads.txt alone tells you which exchanges touch the inventory, not who manages it.

Method 2: check the network’s sellers.json

The same transparency rules run in the other direction. Ad systems publish a sellers.json at their root — network.com/sellers.json — listing the sellers they represent, each with the account id that matches the ads.txt side. This is the network’s own statement of its publisher roster.

Searching a network’s sellers.json for a domain answers the question directly: if the network lists the site, the network is claiming the relationship. This is the file that makes a comprehensive index possible at all — you can enumerate a network’s entire publisher list from one URL.

Method 3: look at what the page actually loads

The files describe the paperwork; the page source shows what is running right now. View source on the homepage and search for script tags from ad domains. Managed networks load a recognisable wrapper — a script from their own host, or in some cases the whole site served through their proxy, which is how Ezoic sites behave.

Script evidence is the strongest signal of the three because it is present-tense. It is also the narrowest: some networks load through generic exchange endpoints that identify nobody, and a site running ads only below the fold or only for logged-out visitors can look empty on a casual look.

Putting the three together

No single source is sufficient, which is the whole reason this site cross-checks them. The standard we hold every relationship to is that both parties independently say the same thing:

What you foundWhat it means
Confirmed both waysThe network lists the site, and the site points back — its ads.txt carries that network’s account, or its homepage runs the network’s script. This is a live relationship.
Different account idBoth name each other, but under an account the network does not publish for that site. Usually a shared house seat — still a real relationship.
UnconfirmedOnly the network says so. Common and often legitimate for resellers, but never treat it as evidence on its own.
No longer detectedThe network still lists the site, but the site shows no trace — on networks where members almost always carry the line. A stale listing.

Of the 38,758 relationships indexed here, 30,287 are confirmed by both sides. The gap between that figure and the total is not error — it is the honest size of the industry’s one-sided paperwork, and it is the reason a single-source answer is so often wrong.

The shortcut

If you would rather not read files: every site we have indexed has a page here showing each detected network, the evidence behind the match, and when it was first and last seen. Search for a domain from the home page, or browse every network we track to see its full publisher list.

Doing this at scale

If you want to check many sites rather than one, the practical order is:

  • Start from sellers.json, not from the sites — one fetch per network gives you the network’s entire claimed roster.
  • Fetch each site’s ads.txt and look for the account ids the network published for that specific domain, matched tolerantly for formatting but never loosely.
  • Fall back to homepage script detection for sites with no readable ads.txt, and expire a detection when two consecutive re-crawls stop seeing it.
  • Re-read everything on a schedule. Both files change without notice, and a stale index is indistinguishable from a wrong one.

The full set of rules we apply, including how managed networks are matched through exchange seats, is written up on the coverage & method page.

A worked example

Take any recipe blog. Open /ads.txt and you will typically find several hundred lines: Google, then a long tail of exchanges — Rubicon, Index Exchange, PubMatic, Sovrn and so on. None of those is the answer. They are the demand partners, and almost every monetised site in the world names most of them.

What identifies the manager is the pattern. A managed network adds its whole demand stack in one block, with its own seller ids, and those ids will appear in that network’s sellers.json against this exact domain. So the test is not “is this network named in the file” but “does this network’s own file name this site, under an account id the site’s file also carries”. Two documents, one agreement.

Where that fails — no ads.txt, or a network that never appears under its own name — the homepage settles it. Load the page, look at the network requests, and see whose host the ad code comes from. If the site is served through a network’s proxy, as Ezoic sites are, that is visible too.

Why the quick answers are usually wrong

Most tools that claim to identify a site’s ad network do one of two things. They read ads.txt and report every advertising system named in it, which produces a list of thirty exchanges and no answer. Or they read one network’s sellers.json and report a match, which cannot distinguish a live partnership from a listing left behind three years ago.

The cross-check is the whole difficulty, and it is why we re-read both sides on a schedule rather than building an index once. A record that is not re-read is a record that quietly becomes fiction.

Common questions

Can you tell what ad network a site uses just from the page source?

Often, but not always. Managed networks load a recognisable script from their own host, and some serve the whole site through their proxy, both of which are conclusive. But a site can load ads only below the fold, only for certain regions, or only through generic exchange endpoints that identify nobody. Page source is the strongest evidence when it is present and proves nothing when it is absent, which is why it works best combined with the published files.

What is ads.txt and why does every site have one?

It is a plain text file at the root of a domain in which a publisher declares which advertising systems are authorised to sell its inventory, and under which account ids. It exists to stop fraudsters reselling inventory they do not have. Buyers check it before bidding, so a site that sells programmatically has a strong commercial reason to publish and maintain one.

What is sellers.json?

The mirror image of ads.txt. Advertising systems publish it at their own root, listing the sellers they represent and the account id each one holds. Because it is one file per network rather than one per site, it is what makes indexing a network's entire publisher roster possible at all.

Does a network listing a site prove the site is using that network?

No, and this is the single most common error. A sellers.json entry is one party's claim. Networks are slow to remove publishers who have left, so a site that switched away last year can remain listed indefinitely. Treat a one-sided listing as a lead, not a fact, and look for the publisher's side before believing it.

How often do these files change?

Without notice and without any versioning. Publishers edit ads.txt when they change partners or add a demand source; networks regenerate sellers.json on their own schedule. That is why any index of this data has to be rebuilt continuously — we re-read both sides and expire a script detection when two consecutive re-crawls stop seeing it.

Every figure on this page is read from our own index when the page is built, and refreshes on a weekly cycle — so the numbers move as the data does. Method and evidence rules: coverage & method.

Read next

Data
Which ad networks are hardest to get into? A data-backed ranking

Ranked by the authority of the publishers each network actually carries, not by the traffic minimums they advertise — with the full ladder from the strictest network to the most open.

7 min read
Data
The best ad networks for gaming sites, according to 3,600 of them

Gaming publishers do not use the networks that dominate lifestyle blogging. Here is who actually monetises gaming sites, ranked by live site count.

6 min read
Data
Sites running both Mediavine and Raptive — and what that actually means

Both networks are widely understood to be exclusive, yet our index finds live sites carrying evidence of both. Here they are, with the four explanations that fit the data.

6 min read