
Google Ads Transparency Scraper
hipersoft/google-ads-transparency-scraper
Spy on any advertiser's ads from Google Ads Transparency Center: creatives, formats, first/last shown dates and preview links across Google Search, Display and YouTube. Search by advertiser name or ID, filter by region. No setup.
Total users
1Monthly users
1Total runs
109Per ad scraped
$0.0012Last rebuilt
Oct 28, 2026Overview
See exactly what ads your competitors are running. This Actor pulls any advertiser's ads straight from Google's Ads Transparency Center — creatives, formats, the dates each ad first and last ran, and direct preview links — across Google Search, Display and YouTube. Search by brand name, website domain, or advertiser ID, filter by region, format and date. No account, no API key.
Perfect for competitive research, ad-creative inspiration, affiliate/dropshipping spying, and monitoring what a brand is promoting right now.

Features
- 🔎 Search by brand name — type "Nike"; the Actor resolves it to the right advertiser automatically
- 🌐 Search by domain — enter
nike.comto get ads from every advertiser tied to that domain, including the brand's media agencies (broader than a name search) - 🆔 Or by advertiser ID — pass exact
AR…IDs to skip the lookup - 🖼️ All formats, right asset — image ads return the creative image; text & video ads return the render URL; every ad gets a permalink
- 🎚️ Filter by format — image / text / video only
- 📅 Filter by date — only ads shown after / before a date you set
- 🌍 Region filter — ads shown in the US, GB, DE, IN, BR and 25+ more countries
- 📊 Bulk & paginated — pull up to thousands of ads per advertiser, de-duplicated
What you get

One record per ad creative:
{
"advertiserName": "Nike, Inc.",
"advertiserId": "AR16735076323512287233",
"creativeId": "CR17005015292943794177",
"format": "image",
"formatCode": 1,
"firstShown": "2022-11-30T15:28:09.000Z",
"lastShown": "2026-07-22T10:22:58.000Z",
"imageUrl": "https://tpc.googlesyndication.com/archive/simgad/10365756016983535800",
"renderUrl": null,
"adUrl": "https://adstransparency.google.com/advertiser/AR16735076323512287233/creative/CR17005015292943794177?region=US",
"region": "US"
}
Text and video ads have imageUrl: null and a renderUrl (a Google-hosted URL that renders the actual ad).
Output schema
| Field | Type | Description |
|---|---|---|
advertiserId |
string | Google advertiser ID (AR…) the creative belongs to. |
advertiserName |
string | Advertiser / brand name. |
creativeId |
string | Unique creative ID (CR…) for the ad. |
format |
string | Ad format: image, text or video. |
formatCode |
integer | Numeric code for the ad format. |
firstShown |
string (ISO date) | Date the ad was first shown. |
lastShown |
string (ISO date) | Date the ad was last shown. |
imageUrl |
string | Image asset URL for image ads (null for text/video). |
renderUrl |
string (URL) | Google-hosted URL that renders text and video ads. |
previewUrl |
string (URL) | Link to a preview of the creative. |
adUrl |
string (URL) | Permalink to the ad in the Ads Transparency Center. |
region |
string | Region the ad was shown in. |
Input
{
"advertiserNames": ["Nike"],
"domains": ["hellofresh.com"],
"region": "US",
"adFormat": "all",
"shownAfter": "2025-01-01",
"maxAdsPerAdvertiser": 200
}
| Field | Description |
|---|---|
advertiserNames |
Brand/company names to look up. |
domains |
Website domains — returns ads from all advertisers on the domain. |
advertiserIds |
Exact AR… advertiser IDs (skips lookup). |
region |
Country code (US, GB, DE…) or Google numeric region id. |
adFormat |
all, image, text or video. |
shownAfter / shownBefore |
Date filters (YYYY-MM-DD). |
maxAdsPerAdvertiser |
Max creatives per target. |
Use cases
- Competitor ad research — see every ad a rival brand is actively running
- Creative inspiration — build a swipe file of ads in your niche
- Affiliate / dropshipping — spot winning products and angles
- Brand monitoring — track when a competitor launches or retires campaigns
Pricing
Pay-per-event: a small amount per ad scraped. See the Pricing tab for current rates.
FAQ
Do I need an account or any setup? No setup and no login. Add advertiser names, domains or IDs, set your filters and run.
How many ads can I collect per advertiser?
Use maxAdsPerAdvertiser to cap creatives per target, or leave it open to collect the full, de-duplicated set of ads available for each advertiser.
Can I search by brand, website or advertiser ID?
Yes. Search by brand name, by website domain (returns ads from every advertiser tied to the domain) or by exact AR… advertiser IDs to skip the lookup.
What export formats are supported? Export your results as JSON, CSV, Excel or XML, or pull them via the Apify API.
Can I connect this to other apps and services? The Google Ads Transparency Scraper can be connected with almost any cloud service or web app thanks to integrations on the Apify platform. It works with Make, Zapier, Slack, Airbyte, GitHub, Google Drive and many more, plus the Apify API, JavaScript/Python clients and MCP. Or use webhooks to trigger an action whenever a run finishes.
Notes
Uses the public Google Ads Transparency Center, which Google publishes for ad transparency. Returns Google's own transparency data as-is. This is an independent tool and is not affiliated with or endorsed by Google.
Input
| Field | Type | Description |
|---|---|---|
advertiserNamesAdvertiser names | array | Company/brand names to look up (resolved to the closest advertiser in the Transparency Center). e.g. "Nike", "HelloFresh". |
advertiserIdsAdvertiser IDs (optional) | array | Exact advertiser IDs (start with AR...) if you already have them — skips the name lookup. |
domainsDomains | array | Website domains to find ads for (e.g. "nike.com"). Returns ads from every advertiser tied to the domain — including the brand's agencies. |
regionRegion | string | Two-letter country code (US, GB, DE, FR, IN, BR, …) or Google's numeric region id. Ads shown in this region. Default: "US" |
adFormatAd format | string · all, image, text, video | Filter by creative type. Default: "all" |
shownAfterShown after | string | Keep only ads last shown on/after this date (YYYY-MM-DD). Leave blank for no limit. |
shownBeforeShown before | string | Keep only ads first shown on/before this date (YYYY-MM-DD). Leave blank for no limit. |
maxAdsPerAdvertiserMax ads per advertiser | integer | Cap the number of ad creatives pulled per advertiser. Default: 100 |
proxyConfigurationProxy | object | Proxy configuration. Leave the default — it is tuned for reliable results. Default: {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} |
API
curl -X POST "https://api.apify.com/v2/acts/hipersoft~google-ads-transparency-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"advertiserNames": [
"Nike",
"HelloFresh"
],
"domains": [
"nike.com"
]
}'from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("hipersoft/google-ads-transparency-scraper").call(run_input={
"advertiserNames": [
"Nike",
"HelloFresh"
],
"domains": [
"nike.com"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('hipersoft/google-ads-transparency-scraper').call({
"advertiserNames": [
"Nike",
"HelloFresh"
],
"domains": [
"nike.com"
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);Pricing
| Event | Price | Paid plans from |
|---|---|---|
| Ad scraped One ad creative with format, dates and preview | $0.0012 | $0.0006 |
| Search request One Ads Transparency search/page request | $0.001 | $0.001 |
You pay only for what the run returns. Set a maximum cost per run and it stops cleanly at that limit.
Related scrapers
Dribbble Shots Scraper
Scrape public design shots from Dribbble: title, high-res image, tags, likes, views and designer credit. Filter by category or sort, export JSON, CSV or Excel.
359 runs · 5 users · $0.003 / shot scrapedComputrabajo Scraper
Scrape Computrabajo job listings across Latin America (Mexico, Colombia, Argentina, Chile, Peru and more): title, company, location, salary, posted date and apply URL. Filter by country and keyword. No setup.
206 runs · 4 users · $0.002 / listing scrapedKraken Market Data Scraper
Fetch Kraken spot market data in bulk: ticker stats (ask, bid, last, 24h high/low/volume/vwap), OHLC candles for any interval, order book depth (top bids/asks), and tradable pair metadata. Fast, clean and cheap.
165 runs · 4 users · $0.001 / pair scrapedBayt Scraper
Scrape Bayt.com job listings across the Middle East (UAE, Saudi Arabia, Egypt, Qatar and more): title, company, location, posted date and apply URL. Filter by country and keyword.
134 runs · 4 users · $0.003 / job scrapedGitHub Scraper
Search GitHub and scrape repositories (stars, forks, language, topics, license, dates) or user profiles (name, company, location, bio, followers, public email, repos). Uses the GitHub REST API; optional token for higher rate limits. For developer lead generation, OSS research and recruiting.
131 runs · 7 users · $0.0008 / item scrapedHacker News Scraper
Scrape Hacker News stories, comments, Ask HN, Show HN, jobs and polls by keyword, points, comments and date range. Sort by relevance or newest. Title, URL, author, points, comment count, text and HN link. Fast clean HTTP via the HN Algolia API, no setup.
130 runs · 2 users · $0.004 / item scrapedSend the site and the fields. We build it and you get it first.