Google Ads Transparency Scraper — Creatives & Run Dates avatar

Google Ads Transparency Scraper — Creatives & Run Dates

Deprecated

Pricing

from $3.00 / 1,000 scraped ads

Go to Apify Store
Google Ads Transparency Scraper — Creatives & Run Dates

Google Ads Transparency Scraper — Creatives & Run Dates

Deprecated

Scrape Google Ads Transparency Center ads by domain or advertiser name, with advertiser, ad ID, format, preview image, regions and first and last shown dates. Works with Apify MCP and the API.

Pricing

from $3.00 / 1,000 scraped ads

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

57

Total users

8

Monthly active users

6 hours ago

Last modified

Share

What is Google Ads Transparency Scraper?

Google Ads Transparency Scraper turns a company domain, an advertiser name or an advertiser page link into one row per ad from the Google Ads Transparency Center. Each row contains the source advertiser and creative IDs, format, and available preview/date fields. Missing fields remain absent. A source page lets you check each creative. Marketers, agencies, competitive-intelligence teams and AI agents use it to see which ads a competitor runs on Google Search, YouTube and display, with no Google account or API key.

Why marketers use it for competitor ad research

  • Any competitor, three ways in. Search by domain like hubspot.com, by advertiser name like Coca-Cola, or paste an advertiser page link.
  • Reported date ranges. first_shown_date and last_shown_date preserve dates returned by the source. Availability varies by route, region and creative variation; duration alone does not establish performance.
  • Format and market filters. Narrow to text, image or video ads, and to a country such as US, GB, DE or ANY.
  • Verified advertiser identity. advertiser_name and advertiser_id come from Google's own verification, so related brands stay separate.
  • Pay per ad. One charge per ad saved.

How to use it

All recent ads for a competitor's domain in the US:

{
"searchQuery": "hubspot.com",
"searchType": "domain",
"countryCode": "US",
"maxResults": 50
}

Image ads by advertiser name, worldwide:

{
"searchQuery": "Shopify",
"searchType": "advertiserName",
"countryCode": "ANY",
"adFormat": "IMAGE",
"maxResults": 25
}
InputWhat it controls
searchQueryA domain such as nike.com, or a brand name such as Nike
searchTypedomain for a website, advertiserName for a brand name
startUrlsAdvertiser page links, such as https://adstransparency.google.com/advertiser/AR16735076323512287233?region=US
countryCodeTwo-letter country code, or ANY for all regions (default US)
adFormatALL, TEXT, IMAGE or VIDEO
maxResultsAds to save (default 50)
enrichDetailsVisit each ad's page for extra detail (default on)

Want the ads running on Google Search right now for a keyword? Continue with Google Ads Scraper linked below.

Output: Google ads data you receive

A real row from a nike.com search in the US:

{
"advertiser_name": "Nike, Inc.",
"advertiser_id": "AR16735076323512287233",
"advertiser_domain": "nike.com",
"ad_id": "CR17050812151263920129",
"ad_format": "TEXT",
"ad_image_url": "https://tpc.googlesyndication.com/archive/simgad/10633112158864726501",
"regions_shown": ["US"],
"first_shown_date": "2022-11-30",
"last_shown_date": "2026-10-01",
"is_political_ad": false,
"scraped_at": "2026-10-01T06:12:34.809Z",
"source_url": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR17050812151263920129"
}
FieldWhat it contains
advertiser_name, advertiser_idGoogle-verified advertiser and its ID
advertiser_domainThe domain you searched, in domain mode
ad_id, ad_formatCreative ID and format: TEXT, IMAGE or VIDEO
ad_image_urlPreview image of the ad, when Google provides one
regions_shownRegions explicitly exposed by the detail page; empty when unavailable. The requested country filter is reported in OUTPUT.countryCode.
first_shown_date, last_shown_dateValid source-reported dates in YYYY-MM-DD form, when available. Public detail pages may expose only last shown.
is_political_adWhether Google lists it as a political ad
source_url, scraped_atThe ad's Transparency Center page and collection time

Preview images are optional. A missing image does not establish that an ad is invalid; text/video creatives and preview-only renderers may not expose a direct image. The native fallback associates media only with that creative’s own card. Headline/body copy, landing pages and platform values remain absent unless the source supplies them.

OUTPUT in the default key-value store reports the run outcome, ads saved and the advertiser matched for name searches.

Example workflow: a quarterly competitor ad review

A SaaS marketing team reviews four competitors each quarter. They run each domain with maxResults at 100 and sort by first_shown_date to see which ads have run the longest. They open the long-running source_url pages to read the copy and note the angles that stick. They compare ad_format counts to see who is investing in video. Then they check Google Ads Scraper for their core keywords to see which of those ads appear in live search results.

Pricing

This Actor uses Pay per event plus Apify platform usage. You pay one event per ad saved, plus a start event and the platform usage of the run. The live Pricing tab on this page shows the current price.

  • 4 competitors × 25 ads = 100 ad events + platform usage.
  • maxResults caps each run, so it doubles as a cost ceiling.
  • Format filters inspect a bounded source sample of up to five times the remaining result limit (maximum 1,000 source records per provider call). A partial outcome identifies a scan cap. The provider bills its retrieved source records, including records excluded by your format filter.
  • One combined provider charge budget covers the run. Each child call reserves its full cap; remaining sources stop with a partial outcome if that budget is exhausted. The parent Max charge setting applies to the parent run; child charges are separate and bounded by OUTPUT.providerBudgetUsd.
  • Searches are fulfilled through a specialist Ads Transparency Actor on Apify, which runs in your account with its own small per-ad charge shown in your usage.

Ad research with AI agents (MCP)

Connect this Actor to an AI agent through Apify MCP and ask in plain language:

Show me the video ads Salesforce has run in the US, and which ones have been running the longest.

Agent checklist:

  1. Use searchType: "domain" for a website, or "advertiserName" for a brand name.
  2. Set countryCode and adFormat to match the question; keep maxResults small for quick answers.
  3. Read rows with get-dataset-items; sort by first_shown_date for long-running ads.
  4. Share source_url so the user can view each ad.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~google-ads-transparency-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"searchQuery": "canva.com", "searchType": "domain", "countryCode": "US", "adFormat": "VIDEO", "maxResults": 20}'
Your next stepUseWhy
When you then want live search ads for a keywordGoogle Ads ScraperSponsored results with copy and position
When you research Facebook and Instagram adsMeta Ad Library ScraperMeta ad creatives and run dates
When you research TikTok adsTikTok Ads ScraperTop TikTok ads with performance signals
When you research Pinterest adsPinterest Ads Library ScraperPinterest ad creatives and disclosed targeting

Best results

Starting situationHelpful actionExpected outcome
You know the competitor's websiteUse searchType: "domain"Every ad tied to that domain
A brand with many local entitiesUse searchType: "advertiserName"Ads from the best-matching advertiser and its related accounts
A known advertiser pagePaste it into startUrlsAds from exactly that advertiser
Researching one marketSet countryCodeAds shown in that country

Builder's note

I found that the most useful signal in a competitor's ads is how long each one keeps running, so every row carries first_shown_date and last_shown_date. I learned that brand names often map to several verified advertisers, so name searches pick the advertiser with the most ads and keep each advertiser's own name on its rows.

FAQ

Do I need a Google Ads account?

No. The Transparency Center is public, and the Actor needs no login or API key.

Does it show ad text and headlines?

Rows include the ad's preview image when Google provides one, plus a source_url that opens the full ad in the Transparency Center.

Which countries can I filter by?

Any two-letter country code Google supports, such as US, GB, DE, FR or IN, or ANY for all regions.

What happens if an advertiser has no ads?

You get zero rows and an outcome of VALID_EMPTY, at no ad charge.

Can I track a competitor every week?

Yes. Save your input as a task and schedule it; compare ad_id values between runs to spot new ads.

Responsible use

This Actor collects public ad information from the Google Ads Transparency Center. Use it for competitive research and follow Google's terms. Read Apify's guide on whether web scraping is legal for more context. Google is a trademark of Google LLC. This independent Actor is not affiliated with, associated with, or endorsed by Google. For questions or bugs, open a ticket in the Issues tab.