Google Ads Transparency Scraper - Ad Creatives + Landing Pages
Pricing
from $0.35 / 1,000 results
Google Ads Transparency Scraper - Ad Creatives + Landing Pages
[$0.45/1K] Scrape Google Ads Transparency Center by domain, company name, advertiser ID, or URL. Ad creatives, dates + landing pages. API alternative.
Pricing
from $0.35 / 1,000 results
Rating
0.0
(0)
Developer
Jaybird Technologies
Maintained by CommunityActor stats
0
Bookmarked
202
Total users
69
Monthly active users
8 days ago
Last modified
Categories
Features
Share
Google Ads Transparency Scraper
What does Google Ads Transparency Scraper do?
It scrapes the Google Ads Transparency Center and extracts ad creatives, formats, dates, and advertiser metadata — with optional landing page enrichment. Works as a Google Ads Transparency API alternative since Google offers no official API for this data.
Unlike most competitors, you don't need to craft a adstransparency.google.com/advertiser/AR… URL. Just type a domain, company name, advertiser ID, or URL — the Actor auto-detects the type and resolves it.
Why scrape the Google Ads Transparency Center?
- Competitive analysis — see every active ad creative a competitor is running, across Search, YouTube, Shopping, Maps, and Play
- Ad monitoring — track when competitors launch, pause, or change creatives
- Lead generation — find companies actively spending on Google Ads in your niche
- Landing page research — enable enrichment to pull the title, meta description, and CTA from each advertiser's landing page
- Political ad tracking — monitor campaign and PAC advertising spend
- Brand protection — detect unauthorized use of your brand in ads
- Built for automation — schedule runs on Apify, connect to Google Sheets, Zapier, Make, or call via API
What data can you extract?
| Field | Description |
|---|---|
advertiserId | Google's unique advertiser identifier |
advertiserName | Verified advertiser legal name |
advertiserDomain | Advertiser's website domain |
creativeId | Unique identifier for the ad creative |
adFormat | IMAGE, TEXT, or VIDEO |
mediaUrls | Direct URLs to ad images/video previews |
previewUrl | Link to the ad on Google's Transparency Center |
firstShown | Date the ad was first seen |
lastShown | Date the ad was most recently seen |
landingUrl | Advertiser's landing page URL |
landingTitle | Landing page <title> tag (when enrichment is on) |
landingMetaDescription | Landing page meta description (when enrichment is on) |
landingH1 | Landing page main heading (when enrichment is on) |
landingPrimaryCta | Primary call-to-action text (when enrichment is on) |
How to scrape Google Ads Transparency Center
- Create a free Apify account
- Open this Actor in Apify Console
- Enter one or more domains, company names, advertiser IDs, or transparency center URLs in the Queries field
- Optionally set region, date range, ad format, or platform filters
- Toggle Enrich landing pages if you want destination page data
- Click Start
- Download results in JSON, CSV, or Excel
How much will it cost?
Pay-per-event pricing — no monthly subscription. You only pay for ads actually scraped.
| Event | When it fires |
|---|---|
actor-start | Once per run |
ad-scraped | Each ad written to the dataset |
landing-page-enriched | Each landing page fetched and parsed |
Pay-per-event, no subscription: $0.45 per 1,000 ads ($0.00045/ad). Landing-page enrichment is billed separately at $0.05 per 1,000 pages. Example: 5 competitors × 100 ads ≈ $0.23.
When a search finds no live ads (the advertiser isn't currently running any, or the query matched nothing), you still get an explicit answer: one record flagged noAdsFound: true for that query, with the query in sourceQuery. It's useful for monitoring whether a competitor has gone live. Each confirmed "no ads" answer is billed as one result, so a list of 1,000 businesses with no ads costs $0.45.
That row is only written when Google actually answered and confirmed zero ads. If a search can't be completed (for example, Google keeps rate-limiting it even after retries through rotating proxies), nothing is written for it and you are not billed for it; it is listed under failedSearches in the run's OUTPUT record instead. If every search in a run fails, the run ends as Failed with the reason.
Input
| Field | Type | Default | Description |
|---|---|---|---|
queries | string[] | — | Domains, advertiser IDs, company names, or URLs. Auto-detected. |
region | string | anywhere | ISO country code (US, GB, DE...) or anywhere. |
dateRangePreset | enum | LAST_30_DAYS | ANYTIME, TODAY, YESTERDAY, LAST_7_DAYS, LAST_30_DAYS, CUSTOM. |
customStartDate / customEndDate | string | — | YYYY-MM-DD, required when preset is CUSTOM. |
adFormat | enum | ALL | ALL, TEXT, IMAGE, VIDEO. |
platform | enum | ALL | ALL, SEARCH, YOUTUBE, SHOPPING, MAPS, PLAY. |
maxAdsPerAdvertiser | integer | 100 | Cap per advertiser. 0 = unlimited. |
enrichLandingPages | boolean | false | Fetch each ad's landing page and extract page title, meta description, H1, and primary CTA. Billed separately. |
landingPageTimeoutSecs | integer | 15 | Per-page timeout for landing page enrichment. |
Output example
{"advertiserId": "AR16735076323512287233","advertiserName": "Nike, Inc.","advertiserDomain": "nike.com","creativeId": "CR05834359183490678785","adFormat": "IMAGE","mediaUrls": ["https://tpc.googlesyndication.com/archive/simgad/..."],"previewUrl": "https://adstransparency.google.com/advertiser/AR.../creative/CR...","firstShown": "2022-11-30","lastShown": "2026-05-25","landingUrl": "https://nike.com","landingFinalUrl": "https://www.nike.com/","landingStatus": 200,"landingTitle": "Nike. Just Do It. Nike.com","landingMetaDescription": "Inspiring the world's athletes, Nike delivers...","landingH1": null,"landingPrimaryCta": "Sport","landingFetchedAt": "2026-05-26T03:46:39.874Z","sourceQuery": "nike.com","scrapedAt": "2026-05-26T03:46:39.873Z"}
Landing page fields are populated only when enrichLandingPages is enabled. Results are available in JSON, CSV, Excel, and XML formats.
Tips
- Start with a domain search like
nike.com— it resolves to all advertisers using that domain automatically - Use company name search for brands where you don't know the domain (e.g.
"Coca-Cola"finds 20+ regional advertisers) - Filter by platform and format to narrow results — e.g.
VIDEO+YOUTUBEto find only video ads on YouTube - Use
maxAdsPerAdvertiserto control costs — set to 10 for a quick snapshot, or 0 for everything - Landing page enrichment is most useful for competitive teardowns — it costs just $0.00005 extra per ad ($0.05 per 1,000 pages) but saves manual research
Integrations
Export your results to Google Sheets, connect to Zapier or Make for automated workflows, or call the Actor via the Apify API or JavaScript/Python SDK for programmatic access.
Feedback and reviews
Something not working, or a field you need? Open an issue on the Issues tab and we'll take a look.
If this Actor saved you time, a short review on Apify Store helps other people decide whether it fits their needs.
FAQ
How is this different from other Google Ads Transparency scrapers?
Most scrapers require you to paste a specific adstransparency.google.com URL. This Actor accepts plain domains, company names, or advertiser IDs — no URL crafting needed. It also offers landing page enrichment, which no other scraper on the Apify Store provides.
What does landing page enrichment do?
When enabled, the Actor fetches each advertiser's website and extracts the page title, meta description, main heading, and primary call-to-action text. This is useful for analyzing what offers and messaging competitors use on their landing pages.
Does this scraper need authentication?
No. The Google Ads Transparency Center is publicly accessible. The Actor uses direct HTTP requests with no browser or login required.
How far back does the data go?
Google retains approximately 12 months of ad history in the Transparency Center. Older creatives are not available.
Is it legal to scrape the Google Ads Transparency Center?
The Google Ads Transparency Center is a public database that Google provides specifically for transparency purposes. This Actor accesses only publicly available data. Please ensure your use case complies with applicable laws and the Google Terms of Service.
Can I run this on a schedule?
Yes. Use Apify's built-in scheduling to run the Actor daily, weekly, or on any custom cron schedule. Combine with integrations to automatically push new results to Google Sheets or trigger downstream workflows.
Changelog
- 2026-10-30 — Every query with no live ads now gets its own
noAdsFoundrow, billed as one result. Before, a run wrote one such row in total, and none if any other query in the run had ads, so most "no ads" answers appeared only inOUTPUT. Requests to the Transparency Center also use HTTP/1.1 to avoid stalled proxy connections. - 2026-10-27 — Runs no longer hang for minutes on a stalled proxy connection: every request to the Transparency Center now has a hard time limit and is retried on a fresh session. When a run reaches its maximum cost per run, it stops fetching and finishes with a status message saying so (
stoppedAtMaxChargeinOUTPUT), instead of being aborted by the platform. - 2026-10-24 — Added a Feedback and reviews section. Runs that finish with ads and no failed searches now end their status message with a link to the Store reviews page.
- 2026-10-24 — Failed searches are no longer billed as "no ads found". Requests to the Transparency Center now go through rotating Apify Proxy sessions with retries, and each run writes a per-query status summary to its
OUTPUTrecord.