Google Shopping Scraper avatar

Google Shopping Scraper

Pricing

from $2.50 / 1,000 shopping products

Go to Apify Store
Google Shopping Scraper

Google Shopping Scraper

Scrape Google Shopping products and sponsored PLA ads by keyword — titles, prices, merchants, ratings, delivery, and direct retailer URLs. Multi-country, multi-query. Organic listings + ads in one run. Flat JSON/CSV for price monitoring, PPC research, and ecommerce intelligence.

Pricing

from $2.50 / 1,000 shopping products

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Google Shopping Scraper — Products, Prices & Sponsored Ads

Extract live Google Shopping results by keyword: organic product cards and sponsored PLA ads, with prices, merchants, ratings, delivery signals, and direct retailer URLs when Google exposes them.

Built for price monitoring, competitive research, and ecommerce intelligence — multi-query, multi-country, JSON or CSV out.


Why Use This Scraper?

  • Organic + sponsored in one run — most Shopping scrapers skip PLAs; this one returns both
  • Direct retailer URLs on sponsored ads — when Google shows them (JBL, Walmart, Target, Best Buy, …)
  • Structured money fieldsprice + numeric priceValue + currency for easy pipelines
  • Market + language targeting — any gl / hl Google Shopping market
  • Flat dataset — one product row per result, ready for sheets, warehouses, or agents

Overview

This Actor scrapes Google Shopping search results (udm=28) for one or more buyer keywords. Each dataset item is a single product card — either an organic Shopping listing or a sponsored Product Listing Ad (PLA).

It does not scrape Google Ads Transparency Center, Merchant Center, CPC/spend, or organic web Search results.


Supported Inputs

InputSupported
Keyword / product search (queries)
Country market (countryCode)
Language (languageCode)
Price range + sort
Sponsored / organic toggles
Google Shopping product detail URLs❌ (search mode only)
EAN / GTIN / SKU lookup❌ (not in this version)

Example keywords: wireless headphones, office chair, nike running shoes.


Use Cases

AudienceWhat you get
Ecommerce sellersCompetitor prices, merchants, discount signals
PPC / PLA teamsSponsored ad creative, ranks, retailer destinations
Market researchersCategory assortments across countries
Price-monitoring toolsRepeatable keyword → product rows
AI agents / MCPFlat JSON for RAG, alerts, and enrichment

How It Works

How it works

  1. Submit one or more product keywords and pick a market / language.
  2. The Actor builds Google Shopping URLs (udm=28) with optional sort and price filters.
  3. Pages are fetched with anti-block defenses (residential attempt → unlocker fallback).
  4. Organic cards and sponsored PLA units are parsed into flat product rows.
  5. Results land in the default dataset — charge is per saved product.

Input Configuration

FieldTypeDefaultDescription
queriesstring[]Required. Product / category keywords
maxProductsPerQueryinteger40Cap per keyword
maxTotalProductsintegerOptional run-wide cap
countryCodestringUSISO market (US, GB, DE, …)
languageCodestringenUI language
includeSponsoredbooleantrueCollect PLA ads
includeOrganicbooleantrueCollect organic cards
sortByenumrelevancerelevance / price_low / price_high / rating
minPrice / maxPricenumberPrice filters
maxConcurrencyinteger3Parallel keywords
maxRequestRetriesinteger3Retries per keyword
saveHtmlbooleanfalseDebug: store raw HTML
proxyobjectOptional Apify/custom proxy

Example — US headphones, 10 products

{
"queries": ["wireless headphones"],
"maxProductsPerQuery": 10,
"countryCode": "US",
"languageCode": "en",
"includeSponsored": true,
"includeOrganic": true
}

Example — price band + sort

{
"queries": ["office chair"],
"countryCode": "US",
"languageCode": "en",
"sortBy": "price_low",
"minPrice": 50,
"maxPrice": 250,
"maxProductsPerQuery": 30
}

Output Overview

Each row is one Shopping product. Sponsored rows carry retailerUrl (direct merchant link) and googleAdUrl. Organic rows carry rating, reviewCount and delivery when shown, plus five of Google's own identifiersproductId (data-cid), googleGroupId, googleItemId, googleOfferId, googleProductId — which are the durable handles to join a listing across runs.

Two fields are honestly limited on organic rows, and it is Google's page, not the parser. The modern Shopping results page (udm=28) contains no product anchor at all — navigation is JavaScript-driven — so productUrl is null for organic rows. Constructed google.com/shopping/product/<id> forms were tested against every id the page exposes and all returned Not available, so none is emitted rather than shipping a link that 404s. imageUrl is populated when Google publishes the thumbnail as a URL (google.ldiencrypted-tbn…); on many organic rows it inlines the thumbnail as a multi-kilobyte base64 JPEG instead, and that is left out rather than carried under a field named "URL". Sponsored rows are unaffected — they have real links.


Output Samples

{
"type": "sponsored",
"position": 1,
"searchQuery": "wireless headphones",
"countryCode": "US",
"languageCode": "en",
"title": "JBL Tune 510BT Wireless On-Ear Headphones - White",
"price": "$29.95",
"priceValue": 29.95,
"currency": "$",
"originalPrice": "$50",
"originalPriceValue": 50,
"merchant": "JBL",
"retailerUrl": "https://www.jbl.com/JBLT510BTWHTAM.html",
"googleAdUrl": "https://www.google.com/aclk?…",
"scrapedAt": "2026-07-22T22:41:00.000Z"
}

Organic Shopping card

{
"type": "organic",
"position": 7,
"searchQuery": "wireless headphones",
"countryCode": "US",
"languageCode": "en",
"productId": "5636327565946258541",
"title": "Sony WH-1000XM6 Wireless Noise Canceling Headphones",
"price": "$458.00",
"priceValue": 458,
"currency": "$",
"merchant": "Best Buy",
"rating": 4.7,
"reviewCount": "4.9K",
"reviewCountValue": 4900,
"delivery": "Free delivery by Fri",
"scrapedAt": "2026-07-22T22:41:00.000Z"
}

Key Output Fields

GroupFields
Contexttype, position, searchQuery, countryCode, languageCode, scrapedAt
ProductproductId, googleGroupId, googleItemId, googleOfferId, googleProductId, title
Pricingprice, priceValue, currency, originalPrice, originalPriceValue
Merchantmerchant, rating, reviewCount, reviewCountValue, delivery
LinksretailerUrl, googleAdUrl

Optional values are null when Google does not display them.


FAQ

Does this scrape organic web Search or only Shopping?
Only Google Shopping (udm=28) — product cards and PLAs.

Why is retailerUrl null on some organic rows?
Organic cards often open Google’s product viewer instead of a direct merchant link. Sponsored PLAs usually expose the retailer destination.

Can I pass EAN / GTIN codes?
Not in this version — keyword search only.

Do I need my own Google API key?
No. No Google login or Ads account is required.


Support

  • Open an issue on the Actor’s Issues tab in Apify Console
  • Website: apify.com/memo23
  • Custom scrapers / exports: contact via Apify

Additional Services

Need EAN→offers lookup, scheduled price monitoring, or a custom schema? Reach out for a tailored build or enrichment pipeline.


Explore More Scrapers

Browse the full portfolio: apify.com/memo23


🤖 For AI Agents & LLM Apps

Purpose: Scrape Google Shopping product listings + sponsored PLA ads by keyword.

Minimal input:

{
"queries": ["wireless headphones"],
"maxProductsPerQuery": 10,
"countryCode": "US",
"languageCode": "en"
}

Output fields (flat): type, position, searchQuery, countryCode, languageCode, productId, googleGroupId, googleItemId, googleOfferId, googleProductId, title, price, priceValue, currency, originalPrice, originalPriceValue, merchant, rating, reviewCount, reviewCountValue, delivery, productUrl, retailerUrl, googleAdUrl, imageUrl, scrapedAt

Billing: Pay-per-event — charged per dataset item (apify-default-dataset-item) plus actor start. One row = one product card.

Agent notes: Prefer short keyword lists; set maxProductsPerQuery explicitly; treat null retailerUrl as expected on many organic rows; type is organic or sponsored.


⚠️ Disclaimer

This Actor is not affiliated with, endorsed by, or sponsored by Google LLC. Google Shopping™ and Google™ are trademarks of Google LLC. All trademarks remain the property of their respective owners.

This tool collects publicly available Shopping listing data for research and monitoring. You are responsible for complying with Google’s Terms of Service, applicable laws (including GDPR/CCPA where relevant), and your own use-case policies. Use responsibly and at your own risk.


SEO Keywords

google shopping scraper, google shopping api, scrape google shopping, google shopping products, google shopping prices, PLA scraper, product listing ads scraper, google shopping merchant, price monitoring scraper, competitor price scraper, ecommerce intelligence, shopping results scraper, google udm=28 scraper, sponsored shopping ads, product price comparison scraper, google shopping dataset, apify google shopping, shopping keyword scraper, retailer url extractor, multi country shopping scrape