Operations

How to verify a supplier list of 2,000 domains

The full operational process for turning a messy supplier spreadsheet into a verified, orderable publisher list, from normalising the sheet to the final order, without checking sites one at a time.

28 October 2026 · 6 min read

Every link buyer has the spreadsheet. It arrived from a supplier, or three suppliers, or a colleague who left last year. It has somewhere between a few hundred and a few thousand rows, a column that might be a price, a column that might be a language, and a confidence level somewhere around "probably mostly right". Campaigns get planned against it, budgets get committed to it, and nobody has verified it since it was built.

Verifying a list of that size by hand is not realistic: at two minutes a domain, 2,000 domains is a working week. So the list stays unverified, and the errors surface one placement at a time: a site that no longer exists, a site that was never in the supplier's inventory, a site that will not take the content, a duplicate ordered twice under two spellings. This guide sets out a process that verifies the whole list in one pass, and what to do with each category of result.

Step 1: Normalise the sheet before anything else

The single largest source of false "not found" results is formatting, not availability. The same publisher appears in supplier lists as https://www.example-magazine.de/, example-magazine.de, EXAMPLE-MAGAZINE.DE and example-magazine.de/sponsored-posts, and a naive comparison treats those as four different sites. Before any checking, every row should be reduced to a bare domain:

  • strip the protocol (http://, https://);
  • strip a leading www.;
  • strip everything from the first /, ? or # onwards;
  • lower-case the result;
  • remove exact duplicates, and keep a count of how many were removed.

The duplicate count is worth recording. A list that loses 15% of its rows to duplicates was almost certainly assembled by merging other lists, which tells you something about how much to trust its other columns.

Two edge cases need a decision rather than a rule. Subdomains (blog.example-magazine.de) are usually a different editorial property from the root domain and should be kept as they are. Country variants (example-magazine.de and example-magazine.at) are different publishers and must never be merged.

Step 2: Match the whole list against a source of truth

With a clean list, matching is a single operation: every domain is looked up against an inventory that is maintained, rather than against the supplier's own claims. The output splits the list into two groups, and the split itself is informative.

ResultWhat it tells youWhat to do
In catalogThe publisher is available now, with current termsReview the attributes (step 3) and shortlist
Not in catalogThe publisher is not currently available from this sourceDecide whether to request it (step 5) or drop it

A supplier list that is largely "not in catalog" against a large, maintained inventory is not necessarily wrong, but it should prompt the question of where those sites came from and whether they still accept placements at all.

In the RBN Media Portal, this is the Catalog Matcher: a pasted list of up to 2,000 domains, in whatever state it arrived, is normalised automatically and matched against the full inventory of more than 70,000 publishers, not only the part of the catalog a particular account is filtered to.

Step 3: Check the attributes that decide whether you can actually order

Being "in catalog" is necessary but not sufficient. Four attributes decide whether a match is usable for a given campaign, and all four should be visible in the same row, so the review is a scan rather than a series of lookups:

  1. Language. A supplier's "German" column is often wrong. Austrian and Swiss publishers are German-language but a different market; an .es domain can publish in Catalan.
  2. Category. Topical fit is what makes a placement worth having. A finance product on a general news site is a weaker placement than on a personal finance title, at any price.
  3. Gambling policy. For iGaming campaigns this is the attribute that prevents refusals: accepts casino and sports betting, sports betting only, or no gambling content. A site in the last group cannot be used for gambling content however good its other attributes are. The classifications are covered in detail in the guide to confirming gambling policy before ordering.
  4. Price. Shown per site, before the order. If the price is only available by asking, the list is not verified; it is a list of sites to ask about.

The outcome of step 3 is a shortlist: matched sites whose attributes fit the campaign. Everything else is either set aside for a different campaign or dropped.

Step 4: Act on the shortlist in bulk

A verified shortlist of several hundred sites should not then be ordered one at a time. The useful bulk actions are:

  • select and add to cart for the sites you will order now;
  • mark as interested for sites that fit but are not for this campaign, so they resurface later without re-checking;
  • mark as not interested for sites you have decided against, so they stop appearing in future results;
  • export the full result, matched and unmatched, as a spreadsheet for internal sign-off or for the client.

The export is the artefact that replaces the original supplier sheet. It is dated, it reflects a real inventory, and it carries the attributes that the original did not. The next verification starts from this file, not from the supplier's.

Step 5: Decide what to do with the unmatched sites

The "not in catalog" group deserves a deliberate decision rather than a shrug. Three outcomes are reasonable:

  • Request them. If a site matters to the campaign and is not available from your source, ask the source to approach the publisher. The sensible arrangement is that outreach costs nothing, and you pay only if the placement is secured. In the portal, unmatched sites can be requested in one click from the Matcher results and tracked under "Sites you asked us to get".
  • Keep them on a watch list. Some sites are worth revisiting next quarter.
  • Drop them. A site that no source carries, and that nobody can reach, is not an opportunity; it is a row.

Whichever you choose, record it. A list where every unmatched row has a decision against it is a managed list; one where they are simply left in place will be re-checked, at the same cost, next time.

Step 6: Exclude what you already have

The final check before ordering is against your own history, not the supplier's inventory. Sites that already link to you should be excluded, both to avoid paying twice and because a second placement on the same domain is usually worth less than a first placement elsewhere. This exclusion should be automatic, driven by a maintained list of your existing linking domains, rather than a memory test at checkout. In the portal, a linking profile does this: the domains that already link to you are hidden from the catalog and from Matcher results.

The process, in one pass

  1. Normalise: bare lower-case domains, duplicates removed and counted.
  2. Match: the whole list against a maintained inventory, split into found and not found.
  3. Review: language, category, gambling policy and price, side by side.
  4. Act: order, mark interested or not interested, export.
  5. Decide: request, watch or drop every unmatched site.
  6. Exclude: sites that already link to you.

Done this way, a 2,000-domain list is verified in minutes, the supplier spreadsheet is retired in favour of a dated export, and the errors that used to surface one placement at a time are caught before anything is ordered.

Run this process in minutes, not days.

The Catalog Matcher in the RBN Media Portal takes up to 2,000 domains at once and returns, for every site we carry, its price, language, category and gambling policy. Apply for access to verify your next supplier list.