Google Ads Transparency Center Creative Scraper
Pricing
from $0.75 / 1,000 google ad results
Google Ads Transparency Center Creative Scraper
Scrape public Google Ads Transparency Center creatives by domain, advertiser name, or advertiser ID. Filter by platform, format, country, and dates, then export deduplicated ad records with IDs, media references, and active dates.
Pricing
from $0.75 / 1,000 google ad results
Rating
0.0
(0)
Developer
DataScraperES
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape public Google Ads Transparency Center creatives by domain, advertiser name, or advertiser ID. Filter by platform, format, country, and dates, then export deduplicated ad records with IDs, media references, active dates, and optional preview enrichment.
What this Actor does
Search Google Ads Transparency Center and retrieve its public creative listings. Filter by country, Google platform, creative format, and inclusive date range. Each Dataset row represents one unique advertiser/creative pair. Results are delivered incrementally, so completed pages remain available if a later request fails.
Use cases
- Monitor the creative formats and publication dates used by competing advertisers.
- Compare advertising activity across Google platforms and countries.
- Build a dated creative reference library for campaign research.
- Find advertisers matching a company name and examine their public ads.
How to use
- Open the Actor in Apify Console.
- Enter a website domain, advertiser name, or advertiser ID in
searchQuery. - Choose a small
maxResultsvalue for your first run and optionally add filters. - Optionally enable
includeDetailsto fetch the public preview render and extract observable preview text and image assets. - Click Start, then open the Dataset to inspect or export the creatives.
Input
The following input produced the complete Dataset item shown below:
{"searchQuery": "nike.com","maxResults": 1,"includeDetails": true,"maxDetails": 1}
| Field | Default | Behavior |
|---|---|---|
searchQuery | nike.com | Website domain/URL, advertiser name, or AR advertiser ID. Website URLs are reduced to their hostname, with a leading www removed. |
maxResults | 100 | Global unique creative limit, up to 1,000,000. Zero removes this limit; page and run limits still apply. |
platform | All | google_search, youtube, google_shopping, google_maps, or google_play. |
adFormat | All | text, image, or video. |
region | Worldwide | Optional two-letter country code from the country selector. |
dateFrom, dateTo | No date filter | Inclusive dates in YYYY-MM-DD format; start must not follow end. |
maxPages | 1000 | Pagination safety limit, between 1 and 10,000. |
maxAdvertisers | 10 | Name-search discovery limit, between 1 and 10 matching advertiser suggestions. Does not affect domain or ID searches. |
includeDetails | false | Fetch each creative preview and extract observable preview text and image assets. This enables the separate enrichment charge. |
maxDetails | 100 | Maximum creatives to enrich when includeDetails is enabled, from 0 to 1,000. |
Unknown input fields and invalid dates are rejected. Name searches discover matching advertisers and then retrieve their ads; they do not search the text of every ad. Discovery is limited to the available suggestions and is not an exhaustive advertiser census. Use a domain or advertiser ID when precision matters.
Output
One row represents one unique (advertiserId, creativeId) pair. Export the Dataset as JSON, CSV, Excel, or another supported Apify format. Empty searches produce an empty Dataset. Errors and run diagnostics are stored in SUMMARY in the default Key-value store, rather than being mixed into ad rows.
This is a complete Dataset item from a real successful run:
{"advertiserId": "AR16832577870747402241","advertiserName": "NIKE GLOBAL TRADING B.V. SINGAPORE BRANCH","creativeId": "CR05650980632755437569","adFormat": "text","firstShown": "2026-09-03","lastShown": "2026-09-05","approxDaysShown": 3,"adUrl": "https://adstransparency.google.com/advertiser/AR16832577870747402241/creative/CR05650980632755437569","imageUrl": null,"previewUrl": "https://displayads-formats.googleusercontent.com/ads/preview/content.js?client=ads-integrity-transparency&obfuscatedCustomerId=4211775641&creativeId=823308241355&uiFeatures=12,54&adGroupId=141596552840&overlay=%3DH4sIAAAAAAAAAF2NsUoDQRRFWZCwPBsZRWyUR0CwcZOATSAIgtUgsRitrIadt8xjJzPLzqySbr_DnzGl32AlCH6HbCyC1vfcc6SE3JI2jj2Ja1g8NpgCXk3PMVQVJssR58UclXaEl7hb76sKg0dFjsqEKq0dRfkE-4Zi2XKTOHhxB_JB14Tr0LUYbUj4wsli9ycRfw1xa_gXJG8izqaoqCnkGYyeOXatE0cgPNdUlGE1GbjJkmuSCzjWxvBQ1k6Rbkt7Y2510mI8xtf8FA7zvu8_P96-vt-zg012sskuMjGCveH9AwMl_FAHAQAA&sig=ACiVB_wSrwIgz_jCey6yfbqROBbu2jxA0g&htmlParentId=fletch-render-13252428034851688276&responseCallback=fletchCallback13252428034851688276","matchedDomain": "nike.com","searchQuery": "nike.com","scrapedAt": "2026-09-05T19:16:57.991298+00:00","previewText": ["Nike","Take your shot with up to 40% off select styles this 9.9 Sale ends 10 Sep."],"previewAssetUrls": ["https://tpc.googlesyndication.com/simgad/4728279338824705695?sqp"],"previewFetched": true}
firstShown and lastShown use the America/Los_Angeles calendar date to match the source's date convention. scrapedAt is an ISO timestamp in UTC. approxDaysShown is the source's served-day count, which can differ from the number of calendar days between the two dates. When enrichment is disabled, previewText and previewAssetUrls are empty and previewFetched is false.
When includeDetails is enabled, previewText contains conservative text observed in the public render, previewAssetUrls contains public image references found in that render, and previewFetched shows whether enrichment completed for that creative. Google may publish no text or image assets for a particular format.
An image reference can represent a text ad. adFormat is taken from the source's classification. imageUrl and previewUrl are nullable: some creatives have only a rendering reference. A preview reference is not a downloadable video file. matchedDomain can be null for advertiser searches. Missing source values remain null.
SUMMARY.status distinguishes completed, max_results, max_pages, max_charge, and interrupted or failed work. SUMMARY.complete is true only when the source pagination is exhausted. Reaching a requested limit is a successful bounded run, not a claim that all available ads were retrieved. On a failed run, already delivered rows remain available. SUMMARY.billed counts confirmed result charges; a failed run with billingPending requires recovery to confirm the charge outcome.
Pricing
Pay for each unique ad creative successfully delivered. Optional preview enrichment is billed separately for each creative whose preview was successfully fetched. The base price is $1.00 per 1,000 creatives and enrichment starts at $1.00 per 1,000 enriched creatives; your Apify discount tier determines the effective unit price below. Platform usage is included, and there is no Actor-start fee.
| Apify tier | ad-result price per creative | ad-result equivalent per 1,000 | ad-enrichment price per enriched creative | ad-enrichment equivalent per 1,000 |
|---|---|---|---|---|
| Free | $0.00100 | $1.00 | $0.00100 | $1.00 |
| Bronze | $0.00090 | $0.90 | $0.00090 | $0.90 |
| Silver | $0.00080 | $0.80 | $0.00080 | $0.80 |
| Gold | $0.00075 | $0.75 | $0.00075 | $0.75 |
| Platinum | $0.00075 | $0.75 | $0.00075 | $0.75 |
| Diamond | $0.00075 | $0.75 | $0.00075 | $0.75 |
The ad-enrichment event uses the same tiered unit prices as ad-result: $0.00100, $0.00090, $0.00080, or $0.00075 per enriched creative, depending on the Apify tier. An ad is charged for enrichment only when the preview fetch succeeds. Empty previews, failed enrichment, diagnostics and discarded duplicates are not enrichment charges.
When both features are used successfully, Apify exposes the two billing events in the run metadata under chargedEventCounts:
{"chargedEventCounts": {"ad-result": 1,"ad-enrichment": 1}}
This billing metadata belongs to the Apify run. It is separate from the Dataset rows shown in the Output section.
Empty searches, failed requests, diagnostics and discarded duplicates have no result charge. A run that fails after delivering some creatives can still charge for those delivered creatives. The same creative returned in separate runs is billable in each run.
Set Maximum cost per run to control spending. The Actor uses the highest configured tier price when deciding how many additional creatives fit, so discounted runs may stop with part of the budget unused. This affects the result count, not your tier's unit price. Check the Pricing tab for the effective commercial terms.
Related Actors
| Actor | Best for |
|---|---|
| TikTok Commercial Content Library Ads Scraper | Compare competitor creatives, captions, reach bands, and targeting in TikTok's public ad library. |
| Keyword Research & SERP Data | Investigate keyword demand, related terms, and search competitors alongside creative research. |
Limits and data quality
Only information available in the public source can be returned. Coverage varies by country and advertiser; ads requiring age verification are outside this anonymous collection. An old selectable date does not guarantee that every historical ad is still available. Platform-filtered coverage starts with ads shown from September 4, 2023 according to the source.
Runs use a fixed 128 MB memory allocation. Increasing memory is not supported or needed for larger exports; results are processed in pages.
The Actor processes pages at a conservative pace. A higher result limit increases runtime; allow sufficient run time for larger exports. Media references can change or expire. Ad copy, direct video downloads, destination-page URLs, spend, and worldwide impression totals are not part of this version's output.
A source block or unexpected response fails the run and preserves delivered output. Resurrecting the same run uses its checkpoint and existing Dataset when delivery can be verified. If a Dataset write has an unresolved outcome, the Actor stops for review rather than risking a duplicate write. If payment confirmation is lost after delivery, resurrecting the same unchanged run retries that pending charge without creating another charge for the same page. Do not manually edit the Dataset of a run you plan to resurrect, and start a new run when changing input.
Frequently asked questions
Does a name search find every advertiser with related ads?
No. It uses matching advertiser suggestions, limited by maxAdvertisers. It does not provide semantic search across all creative text.
Why does a text ad have an image URL?
The source sometimes provides an image representation of a text creative. The format and rendering reference describe different aspects of the ad.
Does maxResults zero mean the entire library is guaranteed?
No. It removes the unique-result cap. Pagination limits, run time, source availability, and the source's own coverage still apply.
Can I recover data from a failed run?
Yes. Already delivered rows remain in that run's Dataset. Read its SUMMARY record to distinguish source blocking, validation errors, and unresolved delivery before deciding whether to resume.
Responsible use
Use the public advertising records for lawful research and analysis. You are responsible for complying with applicable terms and privacy requirements and for verifying conclusions drawn from incomplete or changing source data.
Support
Open an issue in the Actor's Issues tab with the run ID, reproducible input, and a description of the expected and observed behavior. Do not include credentials in your report.
For API examples, sample input/output, and a no-code guide, see the public GitHub examples repository.