Blog/Ads intelligence
5 min read

Find Companies Running Google Ads: Check a List of Domains

Turn a list of company domains into the ones running Google Ads, with their paid landing pages, top keywords and ad counts, billed per row.

Find Companies Running Google Ads: Check a List of Domains

Find which companies on your list are running Google Ads. Paste this into your agent:

Set up https://monid.ai/SKILL.md, and then use Monid to take the domains in my list, check each one for Google Ads landing pages in the US, drop the ones with none, and rank the rest by how many ads they run.

One prompt sorts a list by who advertises. 1 min setup · 5-10 hrs saved.

You have a list of companies and you want the ones that spend on Google Ads, because those are the ones who need what you sell: an agency pitch, a landing-page tool, a conversion service. The common advice is to search each name on Google and look for the sponsored label, which works for one company and falls apart at two hundred. This guide checks a whole list of domains in one pass and shows what comes back, from a live run on 2026-10-16. It runs through Monid, the OpenRouter for agent tools: one key, one balance, every tool priced per call.

What is the easiest way to find companies running Google Ads?

Monid. Install it once, add a key, and your agent asks for the paid landing pages of any domain, then keeps the ones that have some. There is no database seat to buy and no list to download first.

  • Pay for what you run. The paid-pages check bills per row returned, at $0.008385 a row (Verified 2026-10-16 on the lead generation tools page). A domain with no paid pages returns nothing and costs nothing. Buy calls flexibly: no monthly plan and no minimum top-up. Discovery and inspection are free; only a run bills.
  • One install, every tool. The same key and the same balance also build the candidate list (company search by headcount, location and industry) and look up contacts afterwards. You do not open a second vendor account for each step.
  • Lives inside your agent. Install the CLI, add your key, run the prompt above, and the check is there whenever your list changes. Your agent reads SKILL.md and learns the rest, so setup is about a minute.

In our run, three rows for one domain cost $0.025155 (Verified 2026-10-16).

How do you check a whole list of domains for Google Ads?

Send one paid-pages call per domain and keep the domains that return rows. The endpoint is keyed on a domain, so the list you check has to exist first, and building it is a separate step you do by company attributes.

For agents

Grab an API key at app.monid.ai, then paste this to your agent and hand it the key:

set up https://monid.ai/SKILL.md

It learns the whole discover, inspect, run workflow itself. More in the agent quickstart.

For humans

npm install -g @monid-ai/cli
monid keys add -k <your-api-key> -l main

Step 1: build the candidate list

Start from attributes you already trust: industry, headcount, location, technology. The company search endpoint, apollo/mixed_companies/search, filters on those and returns company records for each match, billed $0.026 a call (Verified 2026-10-16). It pages at up to 100 companies a call. If all you have is a company name, turning a name into its website gives you the domain the next step needs.

Step 2: check each domain

monid run -p ahrefs -e /site-explorer/paid-pages \
  --query '{"target":"monday.com","date":"2026-09-08","country":"us","mode":"domain","limit":10,"order_by":"sum_traffic:desc"}'

target and date are the two required fields. Put today's date in date for current values. limit is your cost control because billing is per row, and ten rows is plenty to decide whether a company is worth a call. mode set to domain stays on the root domain; the default, subdomains, includes every subdomain.

Step 3: loop it over the list

Put one domain per line in domains.txt, then run:

mkdir -p out
while read -r d; do
  monid run -p ahrefs -e /site-explorer/paid-pages \
    --query "{\"target\":\"$d\",\"date\":\"2026-10-16\",\"country\":\"us\",\"mode\":\"domain\",\"limit\":5,\"order_by\":\"ads_count:desc\"}" > "out/$d.json"
done < domains.txt

Each domain writes one file. A file with no rows means nothing was found for that domain, and you were not billed for it. The rest of the files are your prospects.

Or hand the whole job to an agent

Give this to your agent

$Set up https://monid.ai/SKILL.md, and then use Monid to for each domain in my list, pull its Google Ads landing pages in the US, drop the domains with none, and give me a table with domain, number of paid pages, total ads and the top keyword.

Can you tell if a company is running Google Ads without an API?

Yes, one company at a time, and it is a fair method when you only care about a handful. Search the keywords the company would buy and see whether it appears with the sponsored label; Google also publishes an Ads Transparency Center where you can look up a single advertiser. Both answer "is this company advertising" for the one name you typed.

The trouble is that both stop being practical as the list grows. A search shows only the ads served to you, in your location and at that moment, and you have to guess the keywords. For two hundred companies you are repeating the same lookup by hand and keeping the notes yourself. Doing it in code means loading Google result pages with a browser or a proxy, parsing the markup, and fixing the parser when Google changes it. If you already know the brand name and only want to read its ads, turning a brand name into its ad archive does that for one advertiser at a time.

Scraping search results also has a rules side: Google's terms and the laws where you work differ, so read yours before you build it. With Monid the collection is maintained for you, the output is typed JSON with four fields instead of markup, and the domain list is the only input you supply.

What does the data look like, and how do you turn it into a prospect list?

One row per paid landing page, with four fields: url, sum_traffic, top_keyword and ads_count. We ran it on 2026-10-16 for monday.com, United States, domain mode, top three rows by ads_count:

Landing pagesum_traffictop_keywordads_count
/ap/project-management436collaborative project management software182
/ap/task-management332organization apps166
/lp/templates344work timeline template146

Three things to read in it.

What does each field tell you?

ads_count is the number of ads pointing at that page. sum_traffic is the estimated paid traffic the page gets, and top_keyword is the paid keyword that brings the most of it. url is the page the ads send people to.

Note the keywords. None of the three is the product's own name or the name of the page. The paid pages are winning visitors on adjacent phrases such as "organization apps" and "work timeline template", which tells a salesperson what the company is actually bidding on.

Which field should you rank prospects by?

Rank by ads_count summed across the top rows, not by traffic. Traffic scales with market size, so a company in a busy market looks big for reasons that have nothing to do with how seriously it advertises. The count of ads is a direct read of how much creative work sits behind the pages. Here the top three monday.com pages carry 182, 166 and 146 ads, 494 together. The hubspot.com rows we pulled carried 4 and 3. That is a very different prospect, and one field separates them.

The sort is yours to choose. We asked for ads_count:desc, which is why traffic in the table is not in order: 344 sits below 332.

How do you build the list?

Keep it simple:

  1. Pull up to five rows per domain, sorted by ads_count:desc.
  2. Drop domains with no rows.
  3. Sum ads_count per domain and sort the domains by it.
  4. Read the top_keyword of the top page into your outreach note.

A page that sends paid traffic is also one you can say something specific about. The same domain data also feeds a different job, finding which domains compete in your own paid search auction, and the next step after a shortlist is contacts: the Apollo email finder covers that.

Give this to your agent

$Set up https://monid.ai/SKILL.md, and then use Monid to for each domain in my list, pull up to five Google Ads landing pages sorted by ads_count, sum the ads per domain, and give me the top twenty domains with their best keyword.

What goes wrong when you check domains for Google Ads?

Three things, each seen in the 2026-10-16 runs.

Why does an empty result not mean the company is not advertising?

Because empty means nothing was found, and we saw that look the same for both cases. We ran example.com and got zero rows back, status 200, billed nothing. The call did not fail; it returned an empty list. A company with a small budget, or one that sends its ads to a different domain, can look exactly the same. Treat an empty result as "no paid pages found" and put those companies at the bottom of the list, not in a "does not advertise" bucket.

Why do two rows describe the same page?

Because the url field keeps the query string of the ad's destination. For hubspot.com we pulled two rows:

url: https://hubspot.com/email-signature-generator?hsa_ver=3&hsa_net=adwords&hsa_kw=create%20your%20own%20email%20signature&hsa_cam=2032690927 ...
sum_traffic 4   ads_count 4   top_keyword "create a custom email signature"
url: https://hubspot.com/email-signature-generator?hsa_ver=3&hsa_net=adwords&hsa_kw=email%20signature&hsa_cam=2032690927 ...
sum_traffic 1   ads_count 3   top_keyword "professional signature on email"

Both rows are one page. They differ only in the tracking string that records the keyword and campaign. If you count rows as pages, one page looks like several. Strip the query string before you count distinct pages, and sum ads_count over the group:

const key = r => r.url.split("?")[0];

The tracking string also names the ad network, here hsa_net=adwords, so those rows are plainly Google Ads traffic.

How much does a whole list cost?

Rows are the unit, so the worst case is the number of domains times your limit. Two hundred domains at limit 3 is at most 600 rows, about $5.03 at $0.008385 a row (Verified 2026-10-16). The real figure is lower, because every domain that returns nothing costs nothing. Our three runs returned 5 rows in total and cost $0.041925.

Which endpoint should I use for which job?

EndpointWhat it doesInputReturnsBilling
ahrefs/site-explorer/paid-pagesPaid landing pages for one domaintarget, date, country, limit, order_byurl, sum_traffic, top_keyword, ads_countPer row, empty result free
apollo/mixed_companies/searchCompanies by attributeHeadcount, location, revenue, keywords, technologyCompany records, 100 per pagePer call
ahrefs/site-explorer/top-pagesOrganic top pages for a domaintarget, datePages with estimated organic trafficPer row

We ran the first row on 2026-10-16. The company search row was inspected on 2026-10-16 and not run, so its output is not described here. Billing shape is given here, and current prices are on monid.ai/tools.

The two billing shapes suit the two steps. Building the candidate list is per call, so a wide sweep is predictable. Checking each domain is per row, so you set the cost with limit, and domains that have nothing to show cost nothing.

When is another route a better fit?

You need one company, once. If you are about to call a single prospect, search their keywords and look at the sponsored results, or open Google's Ads Transparency Center for that advertiser. That is free and takes a minute.

You need spend. There is no budget field in the response. ads_count, sum_traffic and top_keyword are signals of effort, not of money, so use them to order a list and never to quote a figure back to a prospect.

Your prospects are small or local. A local business with a modest budget can come back empty, as example.com did. For that group check by hand, or by location, and expect the data to under-report.

You need the ad creative itself. The rows hold pages and counts, not headlines or images. For the ads' text and creative, use an ad library for the network in question; the Facebook ad library as a JSON feed does that for Meta.

And the disclosure: we resell these endpoints. The most useful thing in this post is free, though: count ads per page and strip the query string before you rank, whoever you buy the data from.

Conclusion

The quickest way to find which companies on a list run Google Ads is one paid-pages call per domain through Monid: $0.008385 a row (Verified 2026-10-16), nothing for a domain that returns no rows, one key for this and every other tool, and about a minute to set up inside your agent. Doing it by hand works for a few names and stops working at two hundred.

Two things matter more than the tool. Rank by the number of ads, not by traffic, since traffic mostly reflects the size of the market. And strip the query string from url before you count pages, or one page will count as several; also treat an empty result as "nothing found", not as "does not advertise".

How we estimated the time saved: checking 200 domains by hand, searching keywords or opening an advertiser page for each, takes about 1.5 to 3 minutes a domain, which is 5 to 10 hours. The 1 minute is the install, key and first call once you already have a Monid key.

Free next step: run monid inspect -p ahrefs -e /site-explorer/paid-pages, then call it for one domain from your list with a limit of 3. It costs under $0.03 (Verified 2026-10-16). Start at monid.ai.

FAQ

How do you tell if a company is running Google Ads?

Check the paid landing pages for its domain: if the response has rows, the company is sending paid search traffic to those pages. For a single company you can also search its keywords and look for the sponsored label, or look the advertiser up in Google's Ads Transparency Center. For a list, one paid-pages call per domain does the same at scale.

Can you see a competitor's Google Ads spend?

No. The response has four fields, url, sum_traffic, top_keyword and ads_count, and none of them is a budget. They show where a company sends paid traffic, for which keyword and how many ads sit behind it. Use them to order prospects, not to quote a spend figure.

Does this work for small and local businesses?

Not reliably. A small advertiser can return an empty list, which looks the same as a company with no ads: the example.com run we did returned zero rows and cost nothing. Treat an empty result as unknown and check small prospects by hand.

How fresh is the data?

It is dated by the date parameter, which is required, so you are reading a snapshot for that day and not a live feed. Pass today's date for current values. The counts move between snapshots, so compare two domains on the same date and not across weeks.

Published September 2026.

find companies running google adscompanies running google adsgoogle ads prospectingpaid search landing pagesagency lead generation