Google Search Results (SERP) & Ads Scraper avatar

Google Search Results (SERP) & Ads Scraper

Pricing

Pay per usage

Go to Apify Store
Google Search Results (SERP) & Ads Scraper

Google Search Results (SERP) & Ads Scraper

Scrape Google SERPs at scale: paid ads (headline, copy, displayed/final URL), organic results, People Also Ask, and related searches — by keyword, country, language, and device. Clean JSON output for SEO, PPC, and competitor ad research.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

ScrapeForge

ScrapeForge

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

2 hours ago

Last modified

Share

Turn any keyword list into clean, structured Google SERP data — paid ads, organic results, People Also Ask, and related searches — as analysis-ready JSON. Built for marketers, SEO/PPC agencies, and competitive-intelligence teams who need to know who's bidding on a keyword, what their ad copy says, and how the whole results page looks — without searching Google by hand.

Runs on desktop or mobile, for any country and language, and returns one tidy row per query per page.

What you get

  • Paid ads — headline, description, displayed URL, final URL, and position
  • Organic results — title, URL, snippet, and position
  • People Also Ask — the questions Google surfaces for the query
  • Related searches — the suggestions at the foot of the SERP
  • A consistent JSON schema, ready for a spreadsheet, a dashboard, or a diff against last week's run

Why this scraper (the edge over other Google SERP actors)

This category is crowded, but most actors in it share the same complaints: runs that die on a consent screen, and empty results when Google shifts its markup. This one is built to fix exactly those:

  • It doesn't crash on block pages. Google's consent interstitials and "unusual traffic" walls are handled gracefully: the row is marked blocked: true, a page snapshot is saved for debugging, and the run keeps going instead of failing outright.
  • Ads and organic and PAA and related — in one pass. Many actors give you only organic results or only ads. This returns the full competitive picture for each keyword.
  • Device- and locale-aware. Ad placement and layout differ a lot between desktop and mobile and across countries — this honors device, countryCode, and languageCode so you see what a real searcher there sees.
  • Resilient, documented selectors. All parsing is isolated in one file that targets stable page landmarks (ad rails, headings, ARIA labels) instead of Google's rotating class names — so when Google changes, fixes ship fast.
  • Honest scope. Real ad copy and placement only — no invented "bid" or "spend" estimates dressed up as data.

Use cases

  1. Competitor ad monitoring — run the same keyword list on a schedule (weekly, daily) and diff the ads array to see who started or stopped bidding and how their copy changed.
  2. Keyword & SERP research — one-off pulls of the full competitive landscape (ads + organic + PAA) before a campaign or a content push.
  3. Ad-copy swipe file — bulk-collect real, currently-running ad headlines and descriptions in a niche for copywriting inspiration.
  4. Share-of-voice tracking — measure how often each competitor appears across a keyword set, on desktop vs. mobile.
  5. Content & SEO planning — mine People Also Ask and related searches for questions and topics to cover.
  6. Local & multi-market checks — compare the same queries across countries and languages to see how ads and rankings shift by market.

Input

Provide a list of queries; everything else is optional with sensible defaults.

{
"queries": ["crm for small business", "project management software"],
"countryCode": "us",
"languageCode": "en",
"device": "desktop",
"maxPagesPerQuery": 1
}
FieldTypeDefaultNotes
queriesarray of strings— (required)One or more search terms; each scraped as its own SERP.
countryCodestringusGoogle gl parameter (us, gb, ph, …).
languageCodestringenGoogle hl parameter (en, es, fr, …).
devicedesktop | mobiledesktopAd placement and layout differ by device.
maxPagesPerQueryinteger 1–51SERP pages per query (10 results each).
extractAds / extractOrganic / extractPaa / extractRelatedSearchesbooleantrueToggle each section on or off.

Output

One dataset row per query per page:

{
"query": "crm for small business",
"page": 1,
"countryCode": "us",
"languageCode": "en",
"device": "desktop",
"scrapedAt": "2026-09-27T10:00:00.000Z",
"ads": [{ "position": 1, "headline": "...", "description": "...", "displayedUrl": "example.com", "finalUrl": "https://example.com/..." }],
"organic": [{ "position": 1, "title": "...", "url": "https://...", "snippet": "..." }],
"peopleAlsoAsk": ["..."],
"relatedSearches": ["..."]
}

If Google serves a block/CAPTCHA page, the row is still emitted with "blocked": true and empty arrays, and a snapshot of the page HTML is saved to the run's key-value store for debugging. An empty ads array is also normal — not every keyword has ads running.

Pricing

$2.50 per 1,000 results — pay-per-result, no subscription. One result = one SERP (one query, one page), so 500 keywords at one page each = $1.25.

FAQ

What counts as a "result"? One result is one SERP — a single query on a single page. maxPagesPerQuery: 2 over 100 queries = 200 results.

Do I need my own proxies? No. It defaults to Apify's GOOGLE_SERP residential proxy group, tuned for Google. You can supply your own proxy configuration if you prefer.

Can it scrape mobile SERPs? Yes — set device: "mobile". Ad slots and layout differ from desktop, and the scraper matches its browser fingerprint to the device you pick.

Which countries and languages are supported? Any Google market — set countryCode (e.g. us, gb, ph) and languageCode (e.g. en, es). Ads and rankings are localized accordingly.

How many keywords can I run at once? As many as you like — pass a large queries array. Very high volumes may occasionally hit rate limits even on residential proxies; blocked pages are skipped rather than failing the run.

Does it return ad spend or bid amounts? No. Google doesn't expose that publicly, and this scraper won't fabricate it. You get real ad copy, URLs, and placement only.

Can I schedule it? Yes — use Apify Schedules to run your keyword list on a cadence and diff the results over time for competitor monitoring.

What happens when Google changes its page markup? All parsing lives in one isolated file built around stable landmarks, so fixes are quick to ship. If extraction ever looks off, report it and it gets patched.

Is scraping Google allowed? Google's Terms restrict automated querying. This actor follows the same pattern as other published Google Search/Maps/Trends scrapers on the Apify Store and is intended for research and monitoring, not high-volume redistribution.

Tech

Node.js + Crawlee PlaywrightCrawler, on Apify's official apify/actor-node-playwright-chrome base image, with browser fingerprint generation matched to the requested device.