π₯ Google Ads Transparency Center Scraper
Under maintenancePricing
from $1.00 / 1,000 ad scrapeds
π₯ Google Ads Transparency Center Scraper
Under maintenanceExtract ad creatives from Google Ads Transparency Center Scraper. Scrape VIDEO, IMAGE and TEXT ads for any advertiser β search by domain, name, or ID. Filter by region, platform and date. Pay per result β $1 per 1,000 ads.
Pricing
from $1.00 / 1,000 ad scrapeds
Rating
0.0
(0)
Developer
extractmaster01
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share
Google Ads Transparency Center Scraper
Extract ad creatives from the Google Ads Transparency Center. Search by domain, advertiser name, or Google Advertiser ID and get structured data for VIDEO, IMAGE, and TEXT ads β with filters for region, platform, and date range.
No login required. No browser. Pure HTTP.
Why Use This Scraper?
- Three search modes β domain (
nike.com), keyword ("Nike"), or advertiser ID (ARβ¦). Auto-detected. - Multiple targets in one run β scrape a list of competitors simultaneously using
searchTargets. - All ad formats β VIDEO with YouTube URL, IMAGE with CDN image URL, TEXT with ad copy when available.
- All Google platforms β Search, YouTube, Shopping, Maps, Play, or all at once.
- 170+ regions β filter by any country or search globally.
- Date range filters β last 7, 30, 90 days, all time, or custom
startDate/endDate. - Active date range β
firstShownandlastShownfor every ad. - Fast and cheap β 256 MB memory, no browser overhead.
Use Cases
Competitive Intelligence
Track every ad a competitor runs across Google platforms. Use numServedDays to identify long-running creatives β ads that run 60+ days are almost always profitable.
Ad Creative Research Build a library of IMAGE and VIDEO ad creatives from any brand. Every VIDEO ad includes a direct YouTube watch URL and thumbnail.
Brand Protection
Find who is advertising on your brand name or domain. advertiserLegalName and isVerified help distinguish authorized partners from unauthorized advertisers.
Lead Generation Identify companies actively spending on Google Ads in your target vertical β a strong buying-intent signal for outbound sales.
Market Research
Combine region and platform filters to map the competitive landscape in any country or channel.
Getting Started
Search by domain
{"searchQuery": "nike.com","maxResults": 100}
Search by keyword
{"searchQuery": "cloud hosting","maxResults": 50}
Search by advertiser ID
{"searchQuery": "AR16735076323512287233","maxResults": 200}
Multiple competitors, filtered
{"searchTargets": ["competitor-a.com", "competitor-b.com"],"region": "US","platform": "YOUTUBE","datePreset": "LAST_30_DAYS","maxResults": 300}
Output
Each result is one ad creative. Example for a VIDEO ad:
{"creativeId": "CR01422152672017907713","advertiserId": "AR17828074650563772417","advertiserName": "Tesla Inc.","advertiserUrl": "https://adstransparency.google.com/advertiser/AR17828074650563772417","advertiserLegalName": "Tesla, Inc.","advertiserCountry": "US","isVerified": true,"format": "VIDEO","adFormat": "video","youtubeVideoUrl": "https://www.youtube.com/watch?v=misASga7klE","imageUrl": "https://i.ytimg.com/vi/misASga7klE/hqdefault.jpg","previewUrl": "https://www.youtube.com/watch?v=misASga7klE","adUrl": "https://adstransparency.google.com/advertiser/AR17828074650563772417/creative/CR01422152672017907713?region=anywhere","firstShown": "2026-03-01","lastShown": "2026-06-07","numServedDays": 99,"approxDaysShown": 99,"scrapedAt": "2026-06-08T14:23:01.000Z"}
Field Reference
| Field | Type | Description |
|---|---|---|
creativeId | string | Unique ad creative ID |
advertiserId | string | Google advertiser ID (ARβ¦) |
advertiserName | string | Advertiser display name |
advertiserUrl | string | Link to the advertiser's Transparency Center page |
advertiserLegalName | string? | Legal entity name registered with Google |
advertiserCountry | string? | Country of legal registration |
isVerified | boolean? | Whether the advertiser passed Google's identity verification |
format | string | VIDEO, IMAGE, or TEXT |
adFormat | string | Lowercase alias: video, image, or text |
youtubeVideoUrl | string? | YouTube watch URL β VIDEO ads only |
imageUrl | string? | Direct URL to the image asset (IMAGE ads) or video thumbnail (VIDEO ads) |
adCopy | array? | Ad headline text β TEXT ads only, when available |
shoppingProductTitle | string? | Product title β Shopping IMAGE ads only |
previewUrl | string? | YouTube URL for VIDEO ads; Transparency Center page for IMAGE/TEXT |
adUrl | string | Transparency Center page URL for this creative |
firstShown | string? | Date the ad was first shown (YYYY-MM-DD) |
lastShown | string? | Date the ad was last shown (YYYY-MM-DD) |
numServedDays | number? | Number of days the ad has been running |
approxDaysShown | number? | Alias for numServedDays |
scrapedAt | string | Timestamp of when this record was scraped |
Enable
includeStats: trueto also getregionStats(per-country date breakdown),targeting(audience category flags), andimpressionsTotal(EU DSA political ads only).
Input Parameters
Search
| Parameter | Type | Description |
|---|---|---|
searchQuery | string | Domain, keyword, or AR⦠ID. Auto-detects type. |
searchTargets | string[] | List of domains, keywords, or IDs for multi-advertiser runs. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Max ads per advertiser. Set to 0 for unlimited. |
maxAdvertisersPerKeyword | integer | 1 | How many advertisers to follow when a keyword matches multiple accounts. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
region | string | anywhere | ISO country code (US, BR, DEβ¦) or anywhere for global. |
platform | string | ALL | SEARCH, YOUTUBE, SHOPPING, MAPS, PLAY, or ALL. |
adFormat | string | ALL | VIDEO, IMAGE, TEXT, or ALL. |
datePreset | string | ALL_TIME | LAST_7_DAYS, LAST_30_DAYS, LAST_90_DAYS, or ALL_TIME. |
startDate | string | β | Custom start date YYYY-MM-DD. Overrides datePreset. |
endDate | string | β | Custom end date YYYY-MM-DD. Overrides datePreset. |
Date filtering is applied client-side after fetching. You are only charged for ads that match your filters and are saved to the dataset.
Advanced
| Parameter | Type | Default | Description |
|---|---|---|---|
proxyConfiguration | object | Apify proxy | Proxy settings. Residential IPs improve reliability on large-scale runs. |
includeStats | boolean | false | Add regionStats, targeting, and impressions to each result. |
skipDetails | boolean | false | Skip the per-ad detail fetch. Returns core fields only β much faster for large discovery runs where image URLs and video links are not needed. |
Pricing
$1 per 1,000 ads scraped. No subscription, no minimum.
| Volume | Cost |
|---|---|
| 100 ads | ~$0.10 |
| 1,000 ads | ~$1.00 |
| 10,000 ads | ~$10.00 |
Platform compute costs (typically < $0.01 per run) are billed separately by Apify.
API Usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('YOUR_ACTOR_ID').call({searchQuery: 'nike.com',maxResults: 100,adFormat: 'VIDEO',});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('YOUR_ACTOR_ID').call(run_input={'searchQuery': 'nike.com','maxResults': 100,'adFormat': 'VIDEO',})items = list(client.dataset(run['defaultDatasetId']).iterate_items())
Integrations
Export as JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps:
- Google Sheets β export directly to a spreadsheet for team analysis.
- Slack / Email β get notified when a competitor launches new ads.
- Clay / Airtable β enrich prospect lists with ad activity signals.
- n8n / Make / Zapier β trigger workflows when new creatives appear.
- Apify API β schedule automated runs and pull data programmatically.
FAQ
Do I need a Google account? No. The Google Ads Transparency Center is publicly accessible without login.
How many ads can I get per run?
As many as you need. The default is 100 per advertiser. Set maxResults: 0 for unlimited. Use searchTargets to scrape multiple advertisers in one run.
Can I search by domain?
Yes. Enter a domain like "nike.com" and the scraper automatically finds the associated advertiser and fetches their ads.
Why is imageUrl missing for some IMAGE ads?
Shopping IMAGE ads load their product photos dynamically at runtime β the image URL is not available in the public API. Display IMAGE ads will have imageUrl populated.
Why is adCopy empty for most TEXT ads?
Most modern TEXT ads are responsive display ads served via JavaScript. The ad copy is not exposed in the public API. adCopy is populated for older ads that include inline HTML copy.
What's the difference between previewUrl and adUrl?
adUrl always points to the Transparency Center page for the creative. For VIDEO ads, previewUrl is the YouTube watch URL. For IMAGE and TEXT ads both fields point to the Transparency Center page.
How does date filtering work? Google's API does not support server-side date filtering. The scraper filters client-side β you are only charged for ads that match your date range and are saved to the dataset.
The actor returned 0 ads β what do I do?
- Verify the advertiser has active ads at adstransparency.google.com.
- Try
"region": "anywhere"β the advertiser may only run ads in specific countries. - Remove format and platform filters β the combination may produce zero results.
- For keyword searches, try the domain (
brand.com) or a directARβ¦ID instead.
How do I find an advertiser ID?
Search at adstransparency.google.com. The ID appears in the URL β e.g. .../advertiser/AR17828074650563772417. You can also paste the full URL directly into searchQuery.
How is this different from the Google Ads API? The Google Ads API requires an approved developer account and only shows your own campaigns. This scraper accesses publicly available data from the Transparency Center β any advertiser, no credentials required.
Legal
The Google Ads Transparency Center is a public accountability tool built by Google for regulatory compliance. All data it contains is intentionally made public. Users are responsible for complying with applicable laws and Google's Terms of Service. Do not use collected data for spam, harassment, or any unlawful purpose.