Google Ads Transparency Center Scraper by Domain avatar

Google Ads Transparency Center Scraper by Domain

Pricing

from $1.28 / 1,000 ad founds

Go to Apify Store
Google Ads Transparency Center Scraper by Domain

Google Ads Transparency Center Scraper by Domain

Every Google ad a company runs, by domain or advertiser name, from the Ads Transparency Center. Batch domains, export to CSV or Clay.

Pricing

from $1.28 / 1,000 ad founds

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Features

Limited permissions

Share

What's new (October 2026)

  • Only new ads. Set the new only_new_ads input to true on a scheduled run and you get only the ads no earlier run delivered for that company, region, and format filter. Only those new ad rows are charged. The summary row carries the new new_ads count. The optional state_key input keeps separate lists for separate schedules. Off by default.

No price change. Existing fields and saved inputs work as before.

See every Google ad a company runs. Enter a company domain or an advertiser name and get one row per ad from Google's Ads Transparency Center, with the format, first and last shown dates, a creative link, and the ad's permalink. Each input also gets one company summary row that answers the question most teams actually ask: does this company run Google ads, how many, and in which formats.

Rows are flat and snake_case, so they load straight into a spreadsheet, a CRM, or a Clay table.

✨ Features

  • Company keyed. A domain such as stripe.com in, the ads Google lists for that domain out. No advertiser ID lookup needed.
  • Advertiser names too. Enter a name such as HubSpot, Inc. and the actor finds the matching verified advertisers, up to 5, and says on every row whether the match was exact or the closest suggestion.
  • A company summary row. Ads returned, Google's own ad count band (for example 8,000 to 9,000), formats seen, and the first and last dates seen.
  • Filters that run on Google's side. Region by country code, and format (text, image, or video).
  • Last shown window. Keep only ads shown in the last N days, 90 by default.
  • Safe when Google changes its page. The actor checks the shape of every response. If Google changes it, you get a free source_changed row instead of empty rows that look real.
  • Reads robots.txt on every run and stops with a free blocked row if Google ever disallows the pages it reads.
  • Batch input. Up to 500 domains or advertiser names per run.
  • Only new ads on a schedule. With only_new_ads on, each run returns and charges only the ads earlier runs did not deliver. Off by default.

đŸ“Ĩ Input

FieldTypeDescription
company_domainstringA company domain, for example stripe.com
advertiser_namestringAn advertiser name, for example Stripe, Inc.
domainslistSeveral domains, one per line
advertiser_nameslistSeveral advertiser names, one per line
regionstringanywhere (default) or a two letter country code
formatslisttext, image, video; empty means all
max_adsstringAd rows per input, 1 to 1,000, default 50
since_daysstringOnly ads last shown in this many days, default 90; 0 for all
include_summarystringtrue (default) or false
max_charge_usdstringOptional cost cap for the run
skipCachestringtrue to skip the 24 hour cache
only_new_adsstringfalse (default). true returns only ads not delivered by an earlier run with the same state_key, input, region, and formats; only those are charged
state_keystringOptional name for the saved list of delivered ads, one per schedule
proxy_modestringauto (default): direct, then the Apify proxy default pool if Google refuses a request; direct: proxy off, never use a proxy, so a refused request returns a free blocked row; or residential: the Apify residential proxy from the start. Proxy use adds nothing to your price

Supported region codes: US, CA, MX, BR, AR, CL, CO, PE, GB, IE, DE, FR, ES, IT, PT, NL, BE, LU, CH, AT, DK, SE, NO, FI, IS, PL, CZ, SK, HU, RO, BG, GR, HR, SI, RS, UA, EE, LV, LT, CY, MT, TR, IL, AE, SA, QA, EG, ZA, NG, KE, MA, IN, PK, BD, SG, MY, ID, TH, VN, PH, JP, KR, TW, HK, AU, NZ.

Example:

{ "company_domain": "stripe.com", "max_ads": "20", "since_days": "90" }

📤 Output

One row per ad (row_type ad) and one summary row per input (row_type summary). Every row carries every field; a field that does not apply is null.

FieldExampleNotes
row_typeadad or summary
company_domainstripe.com
advertiser_idAR16951989901585285121Google advertiser ID
advertiser_nameStripe, Inc.Verified advertiser name
ad_idCR17494586812444704769Google creative ID
formatimagetext, image, video, or unknown
first_shown, last_shown2024-08-13T02:39:41ZUTC
days_running798First to last shown, inclusive
creative_urllinkCreative image, or Google's preview script for text and video ads
ad_urllinkThe ad's page on the Ads Transparency Center
advertiser_urllinkThe advertiser's page
ads_returned20Summary row
total_ads_min, total_ads_max8000, 9000Summary row: Google's ad count band for the input and filters
advertisers_count, advertisers_json2Summary row. A domain can be advertised by resellers and agencies too
formats_seen["image","text"]Summary row
first_seen_any, last_seen_anydatesSummary row
runs_google_adstrueSummary row: Google lists at least one ad for the input and filters
new_ads3Summary row with only_new_ads on: ad rows this run returned that no earlier run had delivered. Null when only_new_ads is off
row_statusokok, no_ads, blocked, source_changed, error
error_reasonnullWhy a row is not ok
billable_events_json{"ad-found":1}What the row was billed as; {} is free
from_cache, source, checked_at

đŸ’ĩ Pricing

Pay per event. You pay for ad rows returned and for a summary row when ads were found, plus a small start fee per run.

EventFree planBronzeSilverGold
Ad found (ad-found), per ad row$0.00200 ($2.00 per 1,000)$0.00190 ($1.90 per 1,000)$0.00180 ($1.80 per 1,000)$0.00170 ($1.70 per 1,000)
Company summary (company-summary), per input with ads$0.00300 ($3.00 per 1,000)$0.00285 ($2.85 per 1,000)$0.00270 ($2.70 per 1,000)$0.00255 ($2.55 per 1,000)
Actor start (apify-actor-start), per run$0.0005$0.0005$0.0005$0.0005
  • Free rows: no_ads, blocked, source_changed, and error rows cost nothing, and so do rows served from the 24 hour cache.
  • A run stops at the maximum cost per run you set in Apify, and at max_charge_usd if you set it.
  • Free Apify plan: 1.50 USD of evaluation a month, which is 750 ad rows at the free plan price. Any paid Apify plan removes the cap.
  • max_ads caps the ad rows, and so the cost, per input. 20 ads plus a summary costs $0.0435 on the free plan price, start fee included.
  • Proxy traffic is included. You pay only the events above: Mamba Labs pays the platform costs of your run, Apify proxy traffic included. proxy_mode is a reliability setting. In the default auto mode a run that Google refuses switches to the Apify proxy and keeps going; direct never uses a proxy, so a refused input returns a free blocked row instead.

🚀 Usage examples

Console or API. POST https://api.apify.com/v2/acts/mambalabs~google-ads-transparency-monitor/runs with the input above, then read the default dataset.

Batch of accounts.

{ "domains": ["stripe.com", "hubspot.com", "notion.so"], "max_ads": "10", "region": "US" }

Video ads only, by advertiser name.

{ "advertiser_name": "Nike, Inc.", "formats": ["video"], "max_ads": "25" }

Weekly schedule, new ads only.

{ "company_domain": "stripe.com", "only_new_ads": "true", "state_key": "stripe-weekly", "since_days": "0", "max_ads": "200" }

The first run returns every ad and records them. Each later run returns only ads that appeared since, and its summary row says how many in new_ads.

Clay. Call the actor from a Clay column with the domain column mapped to company_domain. Clay sends every field as a string, which this actor expects. Set include_summary to true and max_ads to 1 for a cheap "runs Google ads" column.

MCP. The @mambalabsdev/mcp-google-ads-transparency-monitor server exposes the tool get_google_ads to AI agents.

âš ī¸ Error handling

SituationWhat you get
Google lists no adsOne free summary row, row_status no_ads, runs_google_ads false
Ads exist but none in the since_days windowOne free summary row, no_ads, runs_google_ads true
No advertiser matches the nameOne free summary row, no_ads
Google refuses a request (HTTP 429, a challenge page, or its sorry page)In auto mode the run switches to the Apify proxy default pool and tries twice more; if that is refused too, one free blocked row, and ads already read are kept
robots.txt disallows the pages read, or cannot be readOne free blocked row per input; no request is made
Google changes its response shapeOne free source_changed row naming the missing piece
Anything elseOne free error row with the reason

âš ī¸ Limitations

  • The data comes from Google's own public page, which is not a documented API. When Google changes it, this actor reports source_changed until it is updated.
  • The ad count is Google's band (for example 8,000 to 9,000), not an exact number.
  • A domain search returns every advertiser Google lists for that domain, which can include resellers and agencies. advertisers_json shows who ran what.
  • Text ads are shown as Google's rendered preview image or preview script, not as plain headline text.
  • One format filter runs on Google's side. Choosing two formats filters on the actor's side, so the count band then covers all formats.
  • Google rate limits bursts from one address. In auto mode the run moves to the Apify proxy default pool when that happens, at no extra cost to you.
  • No login, no key, and no personal data: the rows describe advertisers and ads.

🧩 Want other GTM data?

Mamba Labs builds a fleet of enrichment actors that share one flat output convention:

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Answer Visibility TrackerRJZvzKniYK4nswcMg
AI List Extractor for Any WebsiteD5hOdIez45M0NX5jD
AI Tooling DetectorEwkHhmqiuJgRoVEbE
Amazon Product, Price, and Stock TrackerMtJPZoyjJ3IeqTFyo
API Deprecation and Breaking Change MonitorpHsbS3xXUK8Jqutz5
App Store and Google Play Review MonitorMaCMEhGrbchxQZ92G
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Bluesky Posts ScraperKldSjS7wjoeZ7vQGm
Brand Sponsor FinderPPgK6xrgOmvL7Nrys
Bulk WHOIS and RDAP Domain Age LookupMTrkG5FLU6SjqLdJY
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Careers Page Jobs, 17 ATS BoardsizP0rfIgf5YaRZfIh
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Headcount EstimatoraHC4GROnNt6kfZe5r
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Role Email, Phone and Address Finder4mMncKaJykiq94grz
Company Social Presence Mapper4k6CCemkgBDz18m2h
Competitor Price, Stock, and Changelog MonitoryxdgCbUQ4PYQWwRNU
Contact Classifier0lGSeYJmniXhGANnO
Contractor License Search, CA, TX, WA, OR, LAWBYK3CPI2kdeq4bP1
CRM Contact Job Change CheckerL8UbEmMJC1XYPSZOb
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Ecommerce Store DiscoveryPeHu4sLyFvQHXUUrX
Email List Verifier, Bring Your Own KeyCzVJ4NlaCKk80xpgE
Event Presence IndexWLhMy8fMDgsxdYxv5
Expert Witness Finder, US and AustraliaLIpwlgfE3LaQBaXd4
Facebook Posts ScraperT6jxIeq4ua0SLXnqG
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GDPR Cookie Banner and Consent CheckerTrKyOS0KBoGC35nbr
GitHub Followers and Following ExportSGNxDmFb9v3tRDaFI
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Center Scraper by Domain1eOwxhBVxzvOXAm4s
Google Maps Places ScraperSuvHCNJ7pIuw6gn54
Google Trends ScraperOeDzaACKmBYJXzHZk
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
Healthcare Provider NPI EnricherMrgbHzcpDq3mOv9Df
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Search Across TikTok, Instagram and YouTubetpkedmloIIWtXx6sg
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Posting MonitorQCfICD9kOPiOdj5iI
Journalist and Media List BuildermAfizsZC8qRoR0ecS
Launch Directory List BuildercRq3bmvEZxZtioQ7U
Lead File Import CheckerRwlGVXTf46LqZdUgt
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Jobs FeedSH6N0d8cz46BhCC8B
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Local Business Lead BuilderqMN97aoHhsAS5bznV
Local Rank and Map Pack Trackergv0kyHGDIg8XscclB
Lookalike Companies from Seed Domainse2O426WBAbLLQL4Z2
Manufacturer and Supplier FinderQcsdmd0lUfPzVkonh
MCP Server Change and Health MonitorIeqjWF9U0BdDQFY08
Media URL TranscriberSyfr7Ya3EsHgWfrB6
Meta Ad Library Ads by Company, Graph APIJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
New Hire FindercKuc38p4nYHNF3IW8
Newly Registered Companies, UK, Norway, Finland, Franceg2WfZhWvCtc57g2Jo
News and Media Mention Monitorgol1PPUKrsIk4QLBd
Newsletter Sponsor TrackerqSwpqxD1TiPZpLQHv
Open Tender and RFP FinderkPTGz6t6TFoUUyfaO
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
Partner and Member Directory ExtractorZX0XJPPUvnFJxeC1a
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person LinkedIn URL ResolverssuyPV8LnEsL8qbnb
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Personal Email to Company ResolverAefT5Ye6YNPFQwJBf
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Podcast Guest and Host Findero2MGSvgbSLeeXOsIo
Product Hunt Daily Launches with Maker DomainsO4VX63drWK9Y9x641
Prospect Engineq9rT6v64nUJdPexOQ
Public Feature Board and Roadmap MonitorrcHF5gj5r2Vqnry35
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Recent Funding Rounds FeedKueVp9MOz7iOoAgDp
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reddit Search and Thread Scraper4Gsth5cP2Xt9V2xDN
Reporting Window FinderuINxR7a1IW8qUTRUX
Research Topic Institutions and AuthorsOH8ANqt7bCKbo72Gk
Sequencer Event PollerS6s8Rjd61tGdrMRk4
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Shopify App Store and Chrome Web Store ListingsgaY0BzkLyN77mD3wI
Site Crawler for Links and TableslLLJ6JxZ4XqN8ULz0
Substack Newsletter and Posts ScraperUEFsdwiPLmPNVy9xd
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
Tennis Match Datav3OX6zxXHZOf2yurO
Threads Posts by Keyword, Exact Match2OT8K8RiEEWtaj2MW
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
US and UK Contract Award Winners by CompanyzhEtllASykOcx9hJ8
US Import Records Buyer FinderVIMafpKF5ggOw0COU
VC and Accelerator Portfolio List BuilderchH8hrfuoqqolW06m
Website Accessibility Checker, WCAG 2.2 AAP3jBj3FRghKEhX52z
Website Phrase and Business Model ClassifierCBuZ9k7sRwBeiKiCS
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel from Company Domain6hSpD3kd2s2IQ4VSs
Zillow Listing DetailsyG4zM0Enfsw2NefJ1

Every actor in the suite takes a domain or a company and returns flat rows, so they stack in the same table without reshaping anything.

🆘 Support

Found a bug? Open an issue on the Issues tab. Response time is typically within 48 hours.

â„šī¸ Sourcing. Ads come from Google's public Ads Transparency Center at adstransparency.google.com. No login is used and robots.txt is read on every run. You are responsible for how you use the output.

Built by Mamba Labs.