Apify actor · whoareyouanas/google-ads-transparency-scraper
Google Ads Transparency Scraper - Spy on Competitor Ads
Collect public ad creative and advertiser information from Google's Ads Transparency Center. Search by keyword or advertiser ID and export records for creative reviews and competitor research.
Documentation checked 2026-10-29 · deployed build 0.0.8 · run through your Apify account
01 / Overview
Match the actor to the job.
Advertiser research
Start from a search query or a known advertiser identifier.
Quick or detailed mode
Choose quickSearch for a lighter collection or request additional available creative details.
Source filters
Use supported region, platform, format, and date controls to define the research scope.
02 / Input
Start with a clear, bounded input.
Provide a searchQuery or advertiserId. Region values follow the actor's documented Google region codes, not arbitrary country names. Set maxResults and quickSearch explicitly for a predictable first sample.
{
"searchQuery": "nike",
"region": "2840",
"maxResults": 10,
"quickSearch": true
}Replace example targets and credential placeholders before running. These are documentation examples, not a promise of currently available source results.
| Field | Type / required | Default | Purpose |
|---|---|---|---|
| searchQuery | string | Not specified | Keyword or domain to search for an advertiser (e.g. 'nike', 'amazon.com', 'shopify'). The scraper will search the Google Ads Transparency Center for matching advertisers and their ads. |
| advertiserId | string | Not specified | Direct Google Ads Transparency Center advertiser ID (AR-prefixed, e.g. 'AR12345678901234567'). If provided, the scraper skips search and goes directly to this advertiser's ads. |
| creativeFormat | string | "all" | Filter ads by creative format. Options: all, text, image, video |
| platform | string | "all" | Filter ads by the Google platform where they were shown. Options: all, SEARCH, YOUTUBE, MAPS, SHOPPING, PLAY |
| region | string | "all" | Filter ads by the region where they were shown. Uses Google's numeric region codes. Options: all, 2840, 2826, 2124, 2036, 2356, 2276, 2250, 2380, 2724, 2528, 2620, 2056, 2040, 2208, 2752, 2578, 2372, 2203, 2616, 2642, 2076, 2484, 2032, 2170, 2604, 2392, 2410, 2702, 2764, 2360, 2608, 2458, 2704, 2682, 2818, 2710, 2566, 2376 |
| maxResults | integer | 40 | Maximum number of ads to return. Default is one page so Apify's automated QA run completes quickly. Increase for larger exports. Minimum: 0 · Maximum: 10000 |
| quickSearch | boolean | true | Skips detail page visits for faster, cheaper scraping. Disable only for targeted full-detail runs, ideally with low maxResults or a proxy. |
All other input controls (5)
| Field | Type / required | Default | Purpose |
|---|---|---|---|
| startDate | string | Not specified | Start date for filtering ads in YYYYMMDD format (e.g. '20250101'). Only ads shown on or after this date will be included. |
| endDate | string | Not specified | End date for filtering ads in YYYYMMDD format (e.g. '20250331'). Only ads shown on or before this date will be included. |
| maxConcurrency | integer | 1 | Number of parallel requests. Keep at 1 for stability. Increase to 2-5 for faster scraping with higher risk of rate limiting. Minimum: 1 · Maximum: 10 |
| requestHandlerTimeoutSecs | integer | 120 | Maximum time to wait for each HTTP request to complete. Minimum: 30 · Maximum: 600 |
| proxyUrl | string | Not specified | Proxy URL for requests. Format: http://user:pass@host:port or http://groups-RESIDENTIAL:[email protected]:8000. Recommended for avoiding rate limits. |
03 / Output
Know what each returned row represents.
- Rows expose advertiser and creative identifiers, available text or media, shown dates, source links, and capture context.
- Detailed fields depend on mode and source availability; the overview is a selected column view.
{
"advertiserId": "AR16735076323512287233",
"advertiserName": "Nike, Inc.",
"creativeId": "CR04739221842466701313",
"adFormat": "IMAGE",
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/9843983796603441212",
"firstShown": "2023-11-16",
"lastShown": "2026-03-28",
"source": "google_ads_transparency",
"sourceUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR04739221842466701313",
"scrapeDate": "2026-03-28T10:00:00.000Z"
}Example values illustrate the published contract. Available fields and populated values depend on the source, mode, and result status.
Fields in the documented output view
advertiserId
Advertiser ID
advertiserName
Advertiser
creativeId
Creative ID
adFormat
Format
firstShown
First Shown
lastShown
Last Shown
numServedDays
Days Active
title
Title
headline
Headline
snippet
Description
callToAction
CTA
visibleLink
Display URL
targetDomain
Domain
imageUrl
Image
videoUrl
Video
isVerified
Verified
adFundedBy
Funded By
regions
Regions
adLibraryUrl
Ad Library URL
scrapeDate
Scraped At
Output views select columns. They do not necessarily filter record types or exhaust the full JSON payload. Use structured JSON when you need nested arrays or objects.
Dataset links and run artifacts (2)
- Overview
- Overview of all scraped ads with key metrics and details
- All Ads (Full Data)
- Complete dataset with all fields including creative details, platform data, and regional targeting
04 / Pricing
Understand the billable unit.
These are the active public event prices checked on 2026-10-29, in USD. They describe each event, not a universal flat price for a run. Confirm your current Apify plan and run budget before starting.
| Billable event | Rate (USD) | When it applies |
|---|---|---|
Actor Start apify-actor-start | $0.00005 / event | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). Start units depend on allocated memory: one event per GB, with at least one event. |
Ad Scraped apify-default-dataset-item | $0.005 / event | One scraped Google ad creative with advertiser info, dates, and media assets $5.00 per 1,000 of this event. Other events and separate services are additional. |
- Use the current configured ad-event price below. README quick/full cost estimates can differ from the effective event configuration.
- Startup is a separate memory-based event. Review the Pricing tab for your plan and any other applicable costs.
A result limit and a spending cap are different controls. Account charges, applicable taxes, and separately billed providers or proxies must be considered where relevant. A cap setting is not a minimum invoice charge.
05 / API & automation
Use the same input from your workflow.
Test a small run in Apify Console, inspect its records and charges, then save a task or call the actor from your own application. Keep your Apify token in an environment variable. Source-specific credentials, if required, are separate from the Apify API token.
# Save the input example as input.json and set APIFY_TOKEN.
# This request starts an asynchronous, potentially billable run.
curl --request POST \
'https://api.apify.com/v2/acts/whoareyouanas~google-ads-transparency-scraper/runs' \
--header "Authorization: Bearer $APIFY_TOKEN" \
--header 'Content-Type: application/json' \
--data @input.jsonThe response identifies the run. Wait for it to finish, inspect its status, and use its default dataset and key-value store to retrieve results. A successful run can still contain partial or failed records; check the output contract above before continuing downstream.
Coverage & interpretation
Check the result before relying on it.
- A filtered export is not proof of every ad an advertiser has run.
- Public transparency data does not provide verified advertiser performance, conversions, or ROAS.
Questions
Before you build an integration.
What do I need to provide?
Provide a searchQuery or advertiserId. Region values follow the actor's documented Google region codes, not arbitrary country names. Set maxResults and quickSearch explicitly for a predictable first sample.
What should I check in the output?
- Rows expose advertiser and creative identifiers, available text or media, shown dates, source links, and capture context.
- Detailed fields depend on mode and source availability; the overview is a selected column view.
How do I budget the run?
- Use the current configured ad-event price below. README quick/full cost estimates can differ from the effective event configuration.
- Startup is a separate memory-based event. Review the Pricing tab for your plan and any other applicable costs.
Keep exploring
Practical guides for the next step.
How to Scrape Google Ads Transparency Center in 2026 (Complete Guide)
See exactly what ads your competitors run on Google Search, YouTube, Maps, and Shopping. Learn how to extract ad creative data at scale from Google's Ads Transparency Center.
Read the guideTop 7 Web Scrapers for Competitor Research in 2026
Compare the best web scrapers for competitor ad research, social listening, lead generation, and market research across Meta, Google, TikTok, Reddit, websites, and Facebook Groups.
Read the guideTop 5 Apify Scrapers to Automate Marketing Research
A practical stack of Apify scrapers for automating marketing research across Meta ads, Google ads, TikTok ads, Facebook Groups, and Reddit.
Read the guide