Google Ads Scraper
Pricing
from $1.18 / 1,000 results
Google Ads Scraper
Google Ads Scraper collects the ad creatives an advertiser runs in the Google Ads Transparency Center from advertiser page URLs or IDs: creative ID and link, format (text, image, video), first and last shown dates, preview link and regions. Export to JSON, CSV or Excel, or use the API.
Pricing
from $1.18 / 1,000 results
Rating
0.0
(0)
Developer
Social Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Google Ads Scraper — Ad Creatives, Formats, Dates and Regions
Google Ads Scraper extracts the ad creatives any advertiser runs in the Google Ads Transparency Center. Each ad comes back with the advertiser name, creative ID, ad format (text, image or video), first and last shown dates, a preview link and every region the ad ran in. Every response is structured JSON — ready to pass directly to an LLM, index into a vector store, or feed a competitor ad monitoring pipeline. No Google account or cookies needed. Start with one competitor, then add every advertiser in your market.

What data can I extract with Google Ads Scraper?
Using this Google Ads Transparency Center API, you will be able to extract the following Google Ads Transparency Center ad creative data:
| 🏢 Advertiser name | 🆔 Advertiser ID | 🎨 Creative ID | 🔗 Ad page link |
|---|---|---|---|
| 🧱 Ad format (text, image, video) | 🗓️ First shown date | 📅 Last shown date and time | 👀 Preview link (ad image or preview script) |
| 🌍 Regions the ad ran in | 📍 Region code and name | 🕒 First and last shown date per region | 📈 Impression range (empty: Google hides it from visitors) |
How to use Google Ads Scraper
Marketers, agencies and researchers can scrape Google ads from the public Transparency Center here and get every creative an advertiser runs, with its regions and dates, from one run.
Copy to your AI assistant:
Google Ads Scraper (Apify Actor ID: socialdataapi/google-ads-scraper, https://apify.com/socialdataapi/google-ads-scraper) is an Apify Actor that returns the ad creatives an advertiser runs in the Google Ads Transparency Center as structured JSON: advertiser name and ID, creative ID and ad page link, ad format (TEXT, IMAGE or VIDEO), first and last shown dates, a preview link, the regions the ad ran in and per-region first and last shown dates. Use it whenever someone needs Google ads data without cookies, a login, or a browser - competitor Google Ads monitoring, checking which countries a brand advertises in, or collecting ad creatives for research. Inputs: startUrls (string[], required, advertiser page URLs like https://adstransparency.google.com/advertiser/AR04619580580634296321 or advertiser IDs like AR04619580580634296321; the URL's region=XX country code and preset-date=Last+7+days|Last+30+days|Last+90+days|Last+365+days are applied, otherwise the last 365 days across all regions; keywords are skipped), maxItems (integer 1-10000, maximum ad creatives per advertiser, default 10), proxyConfiguration (object, optional Apify Proxy settings for the first attempt, off by default). Each dataset row is one ad creative with the same 10 keys and is billed as one row_result event; there are no summary or error rows. Google does not show impression ranges to logged-out visitors, so the impression bounds are always null, and a region's first shown date is null when Google gives only the last one.
Google Ads Scraper MCP Server: use these Actors from ChatGPT, Claude or Cursor
Point your AI assistant at Apify's MCP server and it can read the Google Ads Transparency Center on its own: the server starts with this Actor already added as a tool, so the agent runs it and reads the rows. No glue code, no scraping logic in your prompts.
$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/google-ads-scraper"
Step by step
- Create a free Apify account.
- Open Google Ads Scraper in the Apify Store.
- Enter the advertiser page URL from the Google Ads Transparency Center, or the advertiser ID (AR…), one per line.
- Click Start (or send your API request).
- Download or stream your results in JSON, CSV or Excel.
How to scale Google Ads Scraper to bulk
Put every advertiser into the same list, one URL or ID per line: one run works through them in order and writes all ad creatives into one dataset. The maximum applies per advertiser, so 50 advertisers at 100 ads each means up to 5,000 rows. To export Google advertiser ads on a regular basis, save the input as an Apify task and run it on a schedule, or start runs through the Apify API with different lists. Each saved ad creative is one row_result charge event, so the per-advertiser maximum is also your spend cap.
✨ Features
This Google Ads transparency scraper fetches clean, structured ad creatives from the Google Ads Transparency Center ⚡. It's ideal for competitor research, agency pitch decks, ad-compliance checks and anyone who has been looking for a Google Ads spy tool that reads Google's own public ad library.
As a Google ads creative extractor, it returns, per ad creative:
- Regions – every country the ad ran in, with the first and last shown date in each one when Google lists them
- Ad format – text, image or video
- First and last shown – when the ad started and the latest time it was shown
- Preview link – the archived ad image for text and image ads, or the preview script for video ads
- Ad page link – the creative's own page in the Transparency Center
- Advertiser name and ID – the verified advertiser behind the ad
⚡ Works as a Google ads library scraper with plain HTTP requests and no browser, so runs stay light and cheap.
Use cases 💡
- Performance marketer — list a rival's live ads and the countries they run in.
- Agency strategist — export Google advertiser ads into a pitch deck by format and date.
- Compliance analyst — check which regions a brand's ads reached and when they last ran.
- Market researcher — track how many new ad creatives an advertiser starts each month.
- AI agent builder — feed ad formats, regions and dates to an agent as competitor context.
Building an AI agent? Connect Google Ads Scraper over MCP and let it call the actor on its own.
Why choose this actor?
- A full advertiser in seconds. A recorded run returned 45 ad creatives from one advertiser in 12.5 seconds, each with its own region list.
- Where every ad ran. A recorded text ad came back with 2 regions, Germany and the Netherlands, each with its own first and last shown date.
- 10 fields, three filters. Every row has the same 10 fields, and the pasted URL can narrow the search by country and by a 7, 30, 90 or 365-day window, on top of the per-advertiser cap.
⬇️ Input

The actor takes a list of advertisers: Google Ads Transparency Center advertiser page URLs or advertiser IDs. Only the advertiser list is required.
| Parameter | Required | Type | Description | Example value |
|---|---|---|---|---|
startUrls | Yes | array of strings | Advertiser page URLs or advertiser IDs (AR…), one per line. A region=XX country code and a preset-date (Last+7+days, Last+30+days, Last+90+days, Last+365+days) in the URL are applied; without them the last 365 days across all regions are searched. Keywords and other URLs are skipped. | ["https://adstransparency.google.com/advertiser/AR04619580580634296321"] |
maxItems | No | integer | Maximum ad creatives per advertiser, 1-10000. Default 10. | 50 |
proxyConfiguration | No | object | Optional Apify Proxy settings; off by default. If Google returns nothing or blocks the run, the actor retries through a proxy on its own. | {"useApifyProxy": false} |
Accepted entry formats:
https://adstransparency.google.com/advertiser/AR04619580580634296321https://adstransparency.google.com/advertiser/AR14188379519798214657?region=DE&preset-date=Last+30+daysAR04619580580634296321
Free plan limits
Users on the Apify free plan can fetch up to 20 ad creatives per run (all advertisers together) and 200 ad creatives per month. When the limit is reached, the run finishes successfully with a status message explaining the limit. Upgrade to any paid Apify plan to remove these limits.
Example input
{"startUrls": ["https://adstransparency.google.com/advertiser/AR14188379519798214657?region=DE&preset-date=Last+30+days"],"maxItems": 45,"proxyConfiguration": {"useApifyProxy": false}}
⬆️ Output

Every ad creative is one typed, normalized JSON item with the same 10 keys on every run, and the regions come as a list plus one detail entry per region. You can download the dataset as JSON (default), CSV or Excel, so a Google Ads Transparency to CSV export is one click.
Example output
[{"adLibraryUrl": "https://adstransparency.google.com/advertiser/AR14188379519798214657/creative/CR11282897305843269633","advertiserId": "AR14188379519798214657","advertiserName": "Google LLC","creativeId": "CR11282897305843269633","creativeRegions": ["Germany","Netherlands, Kingdom of the"],"firstShown": "2026-06-23","format": "TEXT","lastShown": "2026-10-01T08:10:42.961360Z","previewUrl": "https://tpc.googlesyndication.com/archive/simgad/12346452286702390493","regionStats": [{"regionCode": "NL","regionName": "Netherlands, Kingdom of the","firstShown": "2026-06-23","lastShown": "2026-10-01","impressions": {"lowerBound": null,"upperBound": null}},{"regionCode": "DE","regionName": "Germany","firstShown": "2026-06-23","lastShown": "2026-09-29","impressions": {"lowerBound": null,"upperBound": null}}]}]
How does it work?
The actor reads the same public ad library any visitor of the Google Ads Transparency Center can browse, so it never needs a Google account. For each advertiser it collects the ad creatives, applying the country and date window from your URL, until your maximum is reached, and adds the regions each ad ran in. There is no browser: requests are plain HTTP, direct by default or through your proxy settings, and when Google blocks or returns nothing the actor retries with a proxy, three attempts per advertiser. It returns only publicly visible data, what any logged-out visitor sees. Every row keeps the same 10 keys; when Google doesn't show a value, the key stays and the value is empty.
How do you integrate Google Ads Scraper into your stack?
It works with what you already use: the Apify REST API from any language, MCP for AI agents, and no-code tools.
MCP integration for AI agents
$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/google-ads-scraper"
This registers Apify's MCP server in your client with this Actor already loaded as a tool; your agent calls it directly, passing the same JSON input you would use in the Console. Sign in with your Apify account when the client asks. Compatible clients include Claude Code, Cursor and Windsurf.
No-code tools (n8n, Make, LangChain)
n8n: add the Apify node, choose "Run an Actor", pick this Actor and pass the same JSON input; the next node receives the ad creative rows.
Make: use the Apify app's "Run an Actor" module, then "Get Dataset Items" to map the advertiser name, ad format and regions into Google Sheets or a CRM.
LangChain: the langchain-apify package's ApifyActorsTool runs an Apify Actor by its ID (socialdataapi/google-ads-scraper); the agent then gets the ad creative rows back as tool output.
Is it legal to scrape Google Ads Transparency Center data?
Scraping publicly available Google Ads Transparency Center data is generally legal: Google publishes this ad library so anyone can see who advertises and where. Google Ads Scraper returns only publicly available data, what any user sees without logging in. Under the GDPR, scraping public data is generally permissible, but storing and using it must comply with local data-protection law, and an advertiser name can identify a person when the advertiser is an individual. Consult legal counsel if your use case involves bulk storage of personal data.
Frequently asked questions
What fields does Google Ads Scraper return?
Each ad creative comes back with its advertiser name, ad format, first and last shown dates, preview link and the regions it ran in, among 10 fields in total. See the data fields section.
Does Google Ads Scraper require a Google Ads Transparency Center account or login?
No. Only public ad creative data is read, so no credentials, cookies or Google API key are needed.
How fast does Google Ads Scraper run?
A recorded run returned 45 ad creatives from one advertiser in 12.5 seconds, including the regions of every ad (local run on 2026-10-01). Data is live on every run, not cached.
What happens if an ad creative is private or doesn't exist?
An advertiser with no ads in the chosen country and date window adds no rows; the actor tries three times, switching to a proxy, then logs a warning and moves on. Keywords and URLs that are not advertiser pages are skipped with a warning, and a run where no entry is an advertiser URL or ID stops with an error message. If the regions of an ad cannot be read, the row is still saved with empty region fields. In code, group rows by advertiser ID and treat an advertiser with no rows as "nothing found".
Can I scrape multiple Google Ads Transparency Center ad creatives at once?
Yes. Put every advertiser URL or ID into one list; each advertiser returns up to your per-advertiser maximum into the same dataset.
Does Google Ads Scraper work with Claude, ChatGPT, and other AI agent tools?
Yes — it is available as an MCP tool through Apify's MCP server. Register the server in Claude Code, Cursor or Windsurf:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=socialdataapi/google-ads-scraper"
The server starts with this Actor already added as a tool, so your agent can call it right away. Any agent that can call an HTTP endpoint can use the Apify REST API directly.
Does Google Ads Scraper return data in a format LLMs can use directly?
Yes. Every row is typed, normalized JSON with the same field names on every run. No HTML parsing, no selectors: pass it straight to an LLM, index it into a vector store, or feed it to an agent tool, with no transformation step.
What happens when Google Ads Transparency Center changes its layout or updates its anti-bot system?
The output keys stay the same, so your code keeps working; fields hit by a change on Google's side come back empty until the actor is updated. The actor was last checked against the live Transparency Center on 2026-10-01.
Can I use Google Ads Scraper without managing proxies or browser infrastructure?
Yes. There is no browser to run and no proxy account to set up: the actor connects directly by default and, when Google returns nothing, retries through a proxy on its own. You start a run and get structured JSON back.
Which Google Ads Transparency Center ad creative fields work best for AI training data and RAG indexing?
For RAG indexing: the advertiser name, region names and ad format describe each creative in words, and the preview link points at the ad itself. For training data: the first and last shown dates, the region codes and the per-region dates are consistent, comparable values. Values are typed (strings, lists and nested objects), so no normalization is needed.
Your feedback
Found a bug or missing a field? Let us know on the Issues tab of this Actor's page in Apify Console. Include the advertiser URLs you ran, so the problem can be reproduced quickly.