Google Ads Scraper — Live Search Sponsored Ads
Pricing
from $5.00 / 1,000 sponsored ads
Google Ads Scraper — Live Search Sponsored Ads
Scrape LIVE Google Search sponsored ads by keyword, location, and device. One row per paid ad. Not Transparency Center.
Pricing
from $5.00 / 1,000 sponsored ads
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape the LIVE sponsored (paid) ads that appear on Google Search for any keyword, in any country, on desktop or mobile. You get one row per ad: advertiser, ad position, headline, ad copy, display URL, landing URL, and sitelinks. Built for PPC competitive monitoring — see exactly which advertisers are bidding on your keywords, what copy they run, and where they rank.
This is NOT a Google Ads Transparency Center scraper. It reads the real-time Search results page, not the advertiser creative archive. If you want an advertiser's historical creative library (impressions, run dates), use a Transparency Center scraper instead. This actor answers a different question: "What ads show right now for keyword X in location Y?"
What does Google Ads Scraper do?
It runs your keywords through Google Search using residential proxies, finds the sponsored ad blocks at the top and bottom of the results page, and extracts each ad as a structured record. Because it runs on the Apify platform you get API access, scheduling, proxy rotation, monitoring, and one-click export to JSON, CSV, or Excel.
Typical uses:
- PPC competitive intelligence — track which competitors bid on your money keywords and how their copy changes.
- Ad copy research — collect live headlines and descriptions before writing your own.
- Share-of-voice monitoring — count how often each advertiser appears across a keyword set.
- Geo / device comparison — see how ads differ between cities or between desktop and mobile.
- Agency reporting — schedule daily runs and feed ad data into dashboards.
Why use Google Ads Scraper?
| Benefit | Detail |
|---|---|
| Ad-first output | Every row is one ad, not a generic SERP dump you have to filter. |
| Real-time | Reads the live results page — what searchers actually see today. |
| Geo + device targeting | Country (gl), language (hl), city (uule), desktop or mobile. |
| Cost control | Hard per-keyword ad cap; you see the max cost before the run starts. |
| MCP-ready | Designed to be called by AI agents (Claude, ChatGPT) via Apify MCP. |
| Reliable | SerpApi-backed engine handles Google's anti-bot for you; honest failure on block (no silent empty runs). Works out of the box — no key required. |
How to use Google Ads Scraper
- Open the actor and go to the Input tab.
- Add your keywords (one per line), e.g.
car insurance,crm software. - Pick a country, language, and optionally a city for local ad targeting.
- Choose desktop or mobile.
- Set Max ads per keyword to cap cost.
- Click Start. Download results from the Output tab in JSON, CSV, or Excel.
Input
| Field | Type | Description |
|---|---|---|
queries | array | Keywords to search (required). |
countryCode | enum | Two-letter country code (gl), default us. |
languageCode | enum | Two-letter language code (hl), default en. |
locationName | string | Optional City,Region,Country for city-level ad targeting. |
device | enum | desktop or mobile. |
maxAdsPerQuery | integer | Cost cap — max ads saved/billed per keyword (default 20). |
maxPagesPerQuery | integer | Result pages per keyword (default 1). |
includeBottomAds | boolean | Also capture bottom-of-page ads (default true). |
engine | enum | auto (recommended), serpapi, or browser. Leave on auto. |
serpApiKey | string | Optional — bring your own SerpApi key. Blank = built-in managed key. |
Input example
{"queries": ["car insurance", "project management software"],"countryCode": "us","languageCode": "en","locationName": "New York,New York,United States","device": "desktop","maxAdsPerQuery": 20,"includeBottomAds": true}
Output
One record per sponsored ad. You can download the dataset in JSON, HTML, CSV, or Excel.
{"query": "car insurance","advertiser": "progressive.com","title": "Progressive® Car Insurance — Get a Free Quote Online","description": "Switch & save an average of $750. Get your fast, free quote today.","displayUrl": "progressive.com/car-insurance","finalUrl": "https://www.progressive.com/auto/","position": "top","rankInBlock": 1,"sitelinks": [{ "title": "Get a Quote", "url": "https://www.progressive.com/auto/quote/" },{ "title": "Bundle & Save", "url": "https://www.progressive.com/bundle/" }],"extensions": [],"phone": null,"rating": null,"countryCode": "us","languageCode": "en","device": "desktop","locationName": "New York,New York,United States","page": 1,"searchUrl": "https://www.google.com/search?q=car+insurance&gl=us&hl=en","scrapedAt": "2026-05-30T12:00:00.000Z"}
Data fields
| Field | Description |
|---|---|
query | The keyword that produced this ad. |
advertiser | Advertiser domain. |
title | Ad headline. |
description | Ad body copy. |
displayUrl | The display (vanity) URL shown in the ad. |
finalUrl | Resolved landing-page URL. |
position | top or bottom ad block. |
rankInBlock | 1-based rank within its block. |
sitelinks | Array of {title, url} ad sitelinks. |
extensions | Callout / structured-snippet extensions when present. |
phone | Call-extension phone number, if shown. |
rating | Seller rating, if shown. |
device, countryCode, languageCode, locationName | Targeting context. |
scrapedAt | ISO 8601 timestamp. |
How much does it cost to scrape Google ads?
Pricing is pay-per-event:
- $0.00005 per actor start.
- $0.008 per sponsored ad extracted (capped per keyword by
maxAdsPerQuery).
A typical Google SERP shows 3–7 ads, so one keyword usually costs $0.024–$0.056. Your maximum cost is always keywords × maxAdsPerQuery × $0.008, shown in the run status before billing begins. Both per-event and usage-based billing are available.
Tips
- Lower
maxAdsPerQueryto tighten cost; ads beyond the cap are skipped, not billed. - Set
locationNamefor local-intent keywords (plumber near me) — ads are highly geo-specific. - Compare
device: desktopvsmobile— ad counts and advertisers often differ. - Schedule daily runs to track competitor ad-copy changes over time.
FAQ, disclaimer, and support
Does every keyword have ads? No. Informational queries (e.g. "how does rain form") show zero ads, and even commercial keywords serve ads probabilistically — Google may show 6 ads on one scrape and 0 a minute later. The run always completes and reports which keywords had none; you are never billed for ads that did not appear.
How does it stay reliable? Google Search ads are rendered by JavaScript and Google aggressively blocks automated browsers. This actor uses a managed SerpApi engine that handles anti-bot for you, so it works out of the box with no setup. Advanced users can switch engine to browser (tries a stealth browser first, falls back to the API) or supply their own SerpApi key via serpApiKey.
Legal: This actor collects only publicly visible Google Search ad content. You are responsible for complying with Google's Terms of Service and applicable laws in your jurisdiction. Do not use the data for unlawful purposes.
Support: Found a parsing gap or a markup change? Open an issue on the actor's Issues tab. Custom field requests and higher-volume needs welcome.
Related actors
- Google Ads Transparency Scraper — Pull advertiser-level historical creatives and run dates from Google's Ad Transparency Center.
- Meta Ad Library Scraper — Capture Facebook and Instagram ad creatives and run dates for competitive analysis.
- TikTok Ads Scraper — Mine TikTok Creative Center's top-performing ads by region, industry, and objective.
- Google SERP Scraper — Combine sponsored ad data with the full organic SERP for the same keywords.
- Google Trends Scraper — Align ad coverage with search demand and trending queries.