Google Ads Scraper: Competitor Ads by Domain avatar

Google Ads Scraper: Competitor Ads by Domain

Pricing

$1.90 / 1,000 ad scrapeds

Go to Apify Store
Google Ads Scraper: Competitor Ads by Domain

Google Ads Scraper: Competitor Ads by Domain

Scrape every Google ad that points to a domain: text, image and video ads on Search, YouTube, Shopping, Maps and Play, with first and last shown dates, days active, countries, EU impressions and creative previews. Data from the Google Ads Transparency Center. No login. $1.90 per 1,000 ads.

Pricing

$1.90 / 1,000 ad scrapeds

Rating

0.0

(0)

Developer

PulseData

PulseData

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

12 minutes ago

Last modified

Share

This Google Ads scraper returns every ad that points to a website domain. You enter one or more domains such as nike.com, and it returns one item per ad from the public Google Ads Transparency Center: format, first and last shown dates, days shown, countries, EU impression ranges, targeting flags, YouTube video IDs and creative images. Ads from every advertiser account that promotes the domain are included, which is how agencies, resellers and regional subsidiaries show up next to the brand itself.

No Google account, login or cookies are needed, and no browser runs. PulseData is not affiliated with Google.

Price: $1.90 per 1,000 ads, with details and previews included. There is no start fee.

What you can do with it

  • Scrape Google ads of a competitor's website. Enter the domain, get every text, image and video ad Google has on record for it.
  • Export Google Search text ads by setting platform to SEARCH and format to TEXT.
  • Find a brand's YouTube video ads with platform YOUTUBE and format VIDEO. Each item carries the YouTube video ID and URL.
  • Monitor Google Shopping ads of an online store with platform SHOPPING.
  • See which Google ads run in one country by setting region to an ISO code such as DE or US.
  • Check how long an ad has been running. firstShown, lastShown and daysShown tell you which creatives a competitor keeps paying for.
  • Get EU impression ranges and targeting for ads shown in the European Union, per country and per Google platform.
  • Compare the Google ads of several competitors in one run by listing several domains.
  • Download the results as CSV, JSON or Excel, or read them through the Apify API.

Who uses it

  • Performance marketers and PPC agencies checking what a competitor is advertising before a pitch or a campaign launch.
  • Brand protection teams looking for resellers and affiliates that run ads pointing to the brand's domain.
  • Market researchers tracking ad activity of a category over time, for example all travel or fashion retailers in one country.
  • Creative teams collecting image and video references from long-running ads.
  • Developers and AI agents that need structured Google ad data inside a pipeline, a scheduled job or an MCP tool call.

Quick start

{ "domains": ["nike.com"], "maxAdsPerQuery": 100 }

Add more lines to domains to compare several competitors in one run. Full URLs such as https://www.nike.com/de/ are accepted and trimmed to nike.com. An entry that does not look like a domain is searched as an advertiser name instead, and the log says so.

A filtered run, YouTube video ads shown in Germany since the start of 2026:

{
"domains": ["adidas.com"],
"region": "DE",
"platform": "YOUTUBE",
"format": "VIDEO",
"startDate": "2026-01-01",
"maxAdsPerQuery": 200
}

Input

FieldDefaultMeaning
domains(required)Website domains, one per line
regionanywhereanywhere or an ISO country code (US, DE, GB). Common country names such as Germany or UK are also understood
platformALLALL, SEARCH, YOUTUBE, MAPS, PLAY, SHOPPING
formatALLALL, TEXT, IMAGE, VIDEO
startDate, endDateemptyOnly ads shown in this range (YYYY-MM-DD)
maxAdsPerQuery100Maximum ads per domain, 0 means no limit
includeDetailstruePer-ad regions, EU impressions and targeting
proxyConfigurationApify residentialKeep residential, Google blocks shared datacenter IPs

An unknown region or a date the scraper cannot read produces a warning in the log and the filter is skipped, so the run still finishes.

Output

One item per ad:

{
"query": "shopify.com",
"advertiserId": "AR01625195283841286145",
"advertiserName": "Shopify Inc.",
"creativeId": "CR03427811071065325569",
"url": "https://adstransparency.google.com/advertiser/AR01625195283841286145/creative/CR03427811071065325569?region=anywhere",
"format": "VIDEO",
"firstShown": "2025-12-23T17:40:45.903Z",
"lastShown": "2026-09-25T12:25:30.972Z",
"daysShown": 277,
"youtubeVideoId": "fe_ZvGJQlDs",
"youtubeUrl": "https://www.youtube.com/watch?v=fe_ZvGJQlDs",
"destinationUrl": "https://www.shopify.com/fr/demarrer",
"regionsShownIn": "FR",
"regions": [{ "regionCode": "FR", "regionName": "France", "impressionsLow": 2000000, "impressionsHigh": 2250000,
"firstShown": "2025-12-23", "lastShown": "2026-09-25",
"platforms": [{ "platform": "YOUTUBE", "impressionsLow": 2000000, "impressionsHigh": 2250000 }] }],
"targeting": { "demographic": { "included": true, "excluded": false },
"geographic": { "included": true, "excluded": false }, "contextual": { "included": true, "excluded": true } },
"variationsCount": 4,
"scrapedAt": "2026-09-25T12:48:15.976Z"
}

Items also carry advertiserUrl, previewUrl, previewImageUrl, imageUrls, euTotals, appId and topicId where Google publishes them. The default dataset view shows advertiser, format, dates, days shown, preview image and YouTube ID in one table, which is the view most people export to a spreadsheet.

Pricing

Pay per event: $0.0019 per ad returned (ad-scraped), so 1,000 ads cost $1.90. Details and preview data are included in that price. You pay nothing for domains with no ads, and there is no start fee.

Some sizes for planning: the default of 100 ads per domain costs $0.19, a comparison of five competitors at 200 ads each costs $1.90, and a full export of a large retailer with 20,000 ads costs $38. Set a maximum cost per run in the Apify Console if you want a hard ceiling; the scraper stops cleanly before it is reached.

Example pages

Each of these opens a ready-made run with a real input:

FAQ

Why do I get fewer ads than the Transparency Center shows? maxAdsPerQuery defaults to 100 per domain. Set it to 0 for everything, and split very large advertisers by region, platform, format or dates.

Why are impressions and targeting empty for some ads? Google publishes impression ranges and targeting only for ads shown in the EU (Digital Services Act). For ads shown only outside the EU you get format, dates, regions and creative data.

Does it return the ad text and landing page? It returns what the Transparency Center publishes: the creative preview (previewUrl, previewImageUrl, imageUrls), the YouTube video for video ads and a destinationUrl where Google exposes one. It does not return keywords, bids, spend or click data, because Google does not publish them.

Why do ads from other advertisers appear for my domain? The Transparency Center links ads to the domain they point to. Agencies, resellers, affiliates and country subsidiaries that advertise the same domain are included, each with its own advertiserName and advertiserId.

Can I search by advertiser name or advertiser ID instead? Use the Google Ads Transparency Center Scraper, which takes names, domains, AR… IDs and Transparency Center URLs.

Can I run it on a schedule? Yes. Save your input as a task in the Apify Console and add a schedule, for example weekly. Compare lastShown between runs to see which ads are new or stopped.

Do I need my own proxy? No. The default Apify residential proxy is used for the small JSON requests, about 3 KB per ad. Creative previews are fetched without the proxy.

Is it legal? It reads only what Google publishes in the Transparency Center for transparency and research, and collects no personal data. Follow Google's terms and applicable law when using the data.