Google Ads Scraper - Transparency Monitor avatar

Google Ads Scraper - Transparency Monitor

Pricing

$0.50 / 1,000 results

Go to Apify Store
Google Ads Scraper - Transparency Monitor

Google Ads Scraper - Transparency Monitor

Competitor ad intelligence for $0.50/1K results. Monitor new and removed Google, YouTube, Search, Display and Shopping ads, build swipe files, download creatives, and inspect copy, CTAs, landing pages, markets, platforms and dates.

Pricing

$0.50 / 1,000 results

Rating

5.0

(1)

Developer

VortexData

VortexData

Maintained by Community

Actor stats

2

Bookmarked

16

Total users

6

Monthly active users

6 days ago

Last modified

Share

🎯 Google Ads Scraper - Competitor Monitor

Scrape public ads from the Google Ads Transparency Center by domain, company name, keyword, advertiser ID, or Transparency Center URL.

Use this Actor to build a clean competitor ads table with ad creatives, copy, CTAs, landing pages, active dates, preview media, downloaded creative files, OCR text, reach stats, and new/removed ad monitoring.

πŸ’Έ Price: $0.50 / 1,000 saved ads. No Google Ads account, no Google Ads API key, and no browser setup required.

βœ… What You Can Get

Data groupExample fields
πŸ‘€ AdvertiseradvertiserName, advertiserLegalName, advertiserId, advertiserRegionCode
πŸ†” CreativecreativeId, format, adTransparencyUrl, preview
✍️ Ad copyheadline, description, cta, text, textLines
πŸ”— Landing pageslandingUrl, landingDomain, optional archived HTML in key-value store
πŸ“… Activity datesfirstShown, lastShown, daysActive, isActive
🌍 Reach statsregions, platforms, impressionsMin, impressionsMax, targetingSummary
πŸ–ΌοΈ Mediamedia, variantUrls, optional downloaded assets in key-value store
πŸ”Ž OCRocrText for image ads, videoOcrText for video ads
πŸ“Œ Monitoringstatus, firstSeenAt, lastSeenAt, removedAt

The default output is one practical πŸ“Š Ads table. The πŸ“Œ Run report gives totals, top formats, top landing domains, long-running ads, performance stats, and next actions.

🎯 Best For

  • Monitoring competitors' Google, YouTube, Search, Display, and Shopping ads.
  • Building a swipe file of competitor creatives and landing pages.
  • Finding fresh ad copy, CTAs, offers, formats, and active campaigns.
  • Tracking new and removed creatives on a daily or weekly Apify Schedule.
  • Exporting Google Ads Transparency Center data to CSV, Excel, JSON, Clay, n8n, or your own API workflow.
  • Auditing advertisers by region, format, date range, platform, impression range, and targeting signals when Google exposes them.

πŸš€ Quick Start

For a first run, fill only:

  1. 🎯 Domains, names, IDs, or URLs - for example nike.com, Shopify, or an AR... advertiser ID.
  2. πŸ”’ Max ads - use 20 for a cheap test.
  3. Click Start.

Example input:

{
"searchTargets": ["nike.com"],
"resultsLimit": 20
}

After the run, open πŸ“Š Ads table first. It contains the rows most users need without opening technical storage tabs.

🧭 How To Choose Input

Input typeExampleBest use
Domainnike.comEasy competitor research
Company nameShopifyQuick brand lookup
Keywordrunning shoesBroader market discovery
Advertiser IDAR08888592736429539329Most reliable for repeat runs and monitoring
Transparency Center URLhttps://adstransparency.google.com/advertiser/...Exact advertiser or exact creative
Creative URLhttps://adstransparency.google.com/advertiser/AR.../creative/CR...Fetch one known ad

For scheduled monitoring, use exact AR... advertiser IDs whenever possible. They avoid ambiguity from brand search suggestions.

βš™οΈ Input Options

The input form is intentionally short. Start with competitors and a result limit, then enable only the extras you need.

FieldWhat it doesRecommended use
🎯 Domains, names, IDs, or URLsCompetitors or exact Google Transparency targets.Add one target per line.
πŸ”’ Max adsTotal saved rows across the whole run.Use 20 for tests, 100-500 for normal research, 0 only for everything available.
🌍 CountryOptional country filter.Leave All countries for the broadest view.
🎞️ Ad formatText, image, video, or all formats.Leave All formats unless you need a specific creative type.
πŸ“… Date rangeActivity window.Use Last 30 days for active campaign checks.
🎨 Download creative filesSaves direct media files to key-value store.Enable for swipe files.
πŸ”Ž Image OCRExtracts text from image creatives.Enable when image copy matters.
🎬 Video OCRExtracts text from video frames or thumbnails.Enable when video overlays matter.
πŸ”— Archive landing pagesSaves HTML copies of decoded landing pages.Enable when you need evidence or later review.
πŸ“ˆ Reach and targeting statsAdds regions, platforms, impressions, and targeting flags.Enable for the fullest competitor-intelligence rows.
πŸ“Œ Track new and removed adsStateful monitoring across scheduled runs.Enable for daily or weekly competitor watches.

πŸ“Š Output

Each dataset item is one Google ad creative.

Common fields:

FieldMeaning
advertiserName / advertiserIdGoogle advertiser identity.
creativeIdStable Google creative ID.
formatTEXT, IMAGE, or VIDEO.
text, headline, description, ctaDecoded ad copy when Google exposes it.
ocrText, videoOcrTextOptional text extracted from images or videos.
landingUrl, landingDomainDecoded destination when available.
firstShown, lastShown, daysActiveDate range in YYYY-MM-DD format and active duration.
regions, platforms, impressionsMin, impressionsMaxOptional Google-exposed reach stats.
preview, media, assetUrlPreview/media links and optional downloaded creative file.
statusnew, seen, or removed in monitor mode.
adTransparencyUrlDirect link to the ad in Google Ads Transparency Center.

Example output item:

{
"advertiserName": "Nike, Inc.",
"advertiserId": "AR16735076323512287233",
"creativeId": "CR01753144146295521281",
"format": "IMAGE",
"text": "Nike Running | New arrivals are here | Shop now",
"ocrText": "Run your best mile | New shoes available now",
"cta": "Shop now",
"landingUrl": "https://www.nike.com/",
"landingDomain": "nike.com",
"regions": ["United States"],
"platforms": ["YouTube", "Google Search"],
"impressionsMin": 1000,
"impressionsMax": 2000,
"firstShown": "2026-01-15",
"lastShown": "2026-03-18",
"daysActive": 62,
"preview": "https://tpc.googlesyndication.com/archive/simgad/...",
"assetUrl": "https://api.apify.com/v2/key-value-stores/.../records/ASSET_...?signature=...",
"adTransparencyUrl": "https://adstransparency.google.com/advertiser/AR.../creative/CR..."
}

Apify lets you download the dataset as JSON, CSV, Excel, JSONL, XML, RSS, HTML, or through the API.

🎨 Download Creative Files

Enable Download creative files when you need a saved swipe file instead of links that may disappear.

When Google exposes durable direct media URLs, the Actor stores files as ASSET_* records in the default key-value store and adds:

  • mediaDownloaded
  • assetKey
  • assetUrl
  • assetKeys
  • assetUrls
  • assets

YouTube watch URLs and expiring googlevideo.com streams remain as links because they are not durable creative files.

πŸ”Ž OCR For Image And Video Ads

Enable Image OCR to extract text baked into image creatives.

Image OCR adds:

  • ocrText
  • ocrLines
  • ocrSourceUrls
  • ocrImagesCount
  • ocrStatus

Enable Video OCR to extract text overlays from video creatives. Direct video assets are sampled with ffmpeg when Google exposes them. YouTube-only video ads use public thumbnail OCR instead of downloading full YouTube videos.

Video OCR adds:

  • videoOcrText
  • videoOcrLines
  • videoOcrSourceUrls
  • videoOcrFramesCount
  • videoOcrStatus

OCR is best-effort and adds extra CPU and network work, so leave it off for the fastest bulk exports.

πŸ”— Archive Landing Pages

Enable Archive landing pages when you need proof of competitor landing pages, not just final URLs.

The Actor saves one HTML archive per unique decoded landing URL and adds:

  • landingPageDownloaded
  • landingPageKey
  • landingPageUrl
  • landingPageStatus
  • landingPageContentType
  • landingPageBytes

Landing-page archiving is optional because it fetches external websites and can slow large runs.

πŸ“Œ Monitor New And Removed Ads

Enable Track new and removed ads, keep the same Monitor name, and run the Actor on an Apify Schedule.

Example:

{
"searchTargets": ["AR08888592736429539329"],
"resultsLimit": 100,
"monitorMode": true,
"monitorName": "NIKE_US"
}

Monitor rows include:

  • status: new, seen, or removed
  • firstSeenAt
  • lastSeenAt
  • removedAt

With a limited run such as 20, 100, or 500, the Actor labels new and seen inside that sampled window. Accurate removed-ad detection requires a full advertiser scan with resultsLimit: 0 and maxPages: 0, because Google's top-results window can shift between runs.

Monitor state is stored in the named key-value store google-ads-monitor-state and mirrored into the run's default key-value store for visibility.

⚑ Speed Benchmarks

Benchmarked on June 17-18, 2026. Times vary by advertiser, media volume, Google response speed, and enabled extras.

ModeSaved adsActor processing timeFull Apify run timeNotes
Default Ads table203.5s14.3sPreview-rich rows, 0 Google 429s
Default Ads table1005.3s15.8sPreview-rich rows, direct connection only
Default Ads table50042.1s54.5sPreview-rich rows, direct connection only
Reach and targeting stats10021.4s23.6s100 enriched rows, 0 Google 429s
Reach and targeting stats500122.3s125.2s500 enriched rows, 2 Google 429s recovered, 0 Residential traffic
All extras + reach stats2010.3s20.8sAssets, OCR, video OCR, landing archives, reach stats
All extras + reach stats + monitor500124.5s135.6s500/500 enriched rows, 473 assets, 2 Google 429s recovered, 0 Residential traffic
Media-heavy all-extras run500419.4s429.9s802 assets, 56 video OCR rows, 10 landing archives

The default Ads table is the fastest mode. Reach stats, OCR, media downloads, video OCR, and landing-page archives are optional because they add detail lookups, downloads, CPU work, and storage writes.

πŸ”Œ API Example

Use this Actor as a Google Ads Transparency Center API alternative.

curl -X POST "https://api.apify.com/v2/acts/vortex_data~google-ads/run-sync-get-dataset-items?format=json&clean=true&timeout=300" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchTargets": ["nike.com"],
"resultsLimit": 20,
"extractOcrText": true
}'

Use the same input fields in API calls as in the Apify Console form.

πŸ”„ Clay And n8n

Clay

Use Clay's Apify integration:

  1. Add Run Apify Actor.
  2. Actor: vortex_data/google-ads.
  3. Input JSON:
{
"searchTargets": ["nike.com"],
"resultsLimit": 20,
"extractOcrText": true
}

Map fields such as advertiserName, format, text, ocrText, cta, landingDomain, firstShown, lastShown, preview, and adTransparencyUrl into your Clay table.

n8n

Import integrations/n8n-google-ads-monitor.json from this Actor source, set APIFY_TOKEN, and edit the JSON body in the Run Google Ads Monitor node.

For scheduled alerts, replace Manual Trigger with Schedule Trigger, keep monitorMode: true, and reuse the same monitorName.

{
"searchTargets": ["AR08888592736429539329"],
"resultsLimit": 100,
"monitorMode": true,
"monitorName": "COMPETITOR_US"
}

⚠️ Notes And Limitations

  • Google Ads Transparency Center is a public transparency UI, not an official bulk export API.
  • Google does not expose exact impressions for every ad. When available, impressions are returned as ranges.
  • Some ads do not expose copy, CTA, targeting, platform stats, media files, or landing URLs.
  • Large repeated all-extras runs against the same advertiser can trigger temporary Google 429 responses. The Actor rotates warmed sessions, uses cheaper proxy routes first, and keeps Residential Proxy as a last rescue tier.
  • Rich modes do not invent missing data. If Google does not expose a field, the Actor leaves it empty.
  • Image and video OCR are best-effort. Video OCR does not transcribe speech.
  • Landing-page archiving saves HTML only when the decoded destination returns an HTML page within safety limits.
  • Signed googlevideo.com URLs expire and are kept as links, not downloaded files.
  • Brand and keyword search depend on Google's advertiser suggestions. Exact AR... IDs are more stable.

❓ FAQ

Can I search by domain?

Yes. Paste a domain such as nike.com or shopify.com. The Actor resolves matching Google advertiser accounts and scrapes their public ads.

Can I search by advertiser ID?

Yes. AR... advertiser IDs are the fastest and most reliable input, especially for scheduled monitoring.

Can I scrape one exact ad?

Yes. Paste a Google Ads Transparency Center creative URL containing both AR... and CR....

Does it support text, image, and video ads?

Yes. Leave Ad format set to All formats for normal competitor research, or filter to text, image, or video ads.

Can it download creatives?

Yes. Enable Download creative files. Direct durable images, thumbnails, videos, and HTML5 bundles are stored in the key-value store when Google exposes them.

Does it support OCR?

Yes. Image OCR and video OCR are optional. Leave them off for faster bulk runs.

Does it support landing pages?

Yes. The default table includes decoded landing URLs when available. Enable Archive landing pages to save HTML snapshots.

Do I need a Google Ads account?

No. The Actor uses public Google Ads Transparency Center data.

Is this affiliated with Google?

No. This Actor is not affiliated with Google. Users are responsible for using scraped data lawfully and respecting applicable rules.

🧯 Support

If a run returns fewer ads than expected, open the run log and check the target, country, format, date range, and result limit first. For repeatable monitoring, prefer exact AR... advertiser IDs.

Need help with a run? Open the Issues tab and include the run ID, input target, expected result count, and whether optional extras were enabled.