Google Shopping Ads Scraper avatar

Google Shopping Ads Scraper

Pricing

from $2.65 / 1,000 shopping ads

Go to Apify Store
Google Shopping Ads Scraper

Google Shopping Ads Scraper

Scrape live paid Google Shopping ads from Google Search. Export product titles, prices, merchants, ranks, promotions, images, ad click URLs, and landing pages by keyword, market, language, and device.

Pricing

from $2.65 / 1,000 shopping ads

Rating

5.0

(1)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

19

Total users

11

Monthly active users

9.1 hours

Issues response

2 days ago

Last modified

Share

🛒 Collect paid Google Shopping ads by keyword

Google Shopping Ads Scraper helps PPC teams, ecommerce sellers, and market researchers collect paid product ads shown on Google Search. Submit buyer keywords and export product titles, prices, merchants, positions, promotions, images, and available destination links for competitive research.

📦 Returned data

Each dataset row represents one collected paid Google Shopping ad. Depending on what Google displays, fields can include:

  • query context: searchQuery, device, position, country, language, and scrapedAt
  • product details: productId, productTitle, productImage, and optional adCardScreenshot
  • prices: price, priceValue, currency, originalPrice, checkoutPrice, and discount fields
  • merchant signals: merchant, merchantDomain, rating, reviewCount, and storeRating
  • offer details: saleLabel, freeShipping, priceDropLabel, promotion fields, and deliveryText
  • links: landingPage and googleAdUrl when the source exposes or allows them to be resolved

Optional values are null when they are not displayed or cannot be resolved. This Actor does not return organic Shopping listings, Google Ads Transparency Center archives, campaign spend, CPC, clicks, conversions, or Merchant Center data.

🚀 Running the Actor

  1. Add product or category terms under Search keywords.
  2. Choose a market and Google page language.
  3. Select desktop, mobile, or both.
  4. Set per-keyword and optional run-wide ad limits.
  5. Enable card images only when you need rendered visual evidence; capture is substantially slower.
  6. Start the Actor and open the default dataset.

Product-focused searches such as office chair, computer monitor, or wireless headphones are more likely to show Shopping ads than broad informational queries.

⚙️ Input

This valid input checks two keywords on desktop in the US market:

{
"searchQueries": ["office chair", "computer monitor"],
"country": "US",
"language": "en",
"device": "desktop",
"maxAdsPerQuery": 25,
"maxTotalAds": 50,
"captureScreenshots": false
}

searchQueries is required. You can also provide an optional location such as a city, state, or postal area. No Google login, cookies, Ads account, or Google API key is required from you.

📊 Output

A dataset row follows this shape; nullable fields vary with the ad card:

{
"id": "qB4rZ8YJjPpU2x7TnK5mLw",
"searchQuery": "wireless headphones",
"device": "desktop",
"position": 1,
"productId": "1700529733379415144",
"productTitle": "Wireless Bluetooth Earbuds",
"price": "$69.99",
"priceValue": 69.99,
"currency": "USD",
"originalPrice": "$79.99",
"originalPriceValue": 79.99,
"discountPercent": 13,
"checkoutPrice": null,
"checkoutPriceValue": null,
"pricePerUnitText": null,
"merchant": "Example Store",
"merchantDomain": "example.com",
"rating": 4.5,
"reviewCount": 4000,
"storeRating": null,
"saleLabel": "Sale",
"freeShipping": true,
"priceDropLabel": null,
"promotionText": null,
"promotionCode": null,
"promotionOfferText": null,
"promotionDiscountPercent": null,
"topQualityStoreBadge": null,
"deliveryText": "Free delivery",
"landingPage": "https://example.com/wireless-earbuds",
"googleAdUrl": "https://www.google.com/aclk?example=1",
"productImage": "https://example.com/wireless-earbuds.jpg",
"adCardScreenshot": null,
"detectedLocation": null,
"country": "US",
"language": "en",
"scrapedAt": "2026-07-19T12:00:00.000Z"
}

💳 Pricing

This Actor uses pay-per-event pricing with tier-dependent rates. The Shopping ad event is charged once for each ad successfully saved. Empty searches and skipped duplicates do not trigger that event; Apify platform usage may still apply.

🔌 Integrations

Use the Apify API to submit inputs and retrieve dataset rows. You can also schedule runs, export datasets in formats such as JSON, CSV, and Excel, or trigger webhooks when runs finish.

❓ FAQ

Why did my keyword return no rows?

Google may not show paid Shopping ads for that keyword, market, language, device, or moment. Try a product-focused buyer query, another supported market, or a later run. An empty search does not trigger the Shopping ad charge event.

Can I compare desktop and mobile ads?

Yes. Choose both to check both surfaces in one run. Google may show different products, prices, merchants, and positions on each surface.

Can I target a city or postal area?

You can provide the optional location input to request localized inventory within the selected market. The returned detectedLocation remains null unless Google displays location context.

Are landing pages and product images always available?

No. Google does not expose every field on every ad card, and some click wrappers cannot be resolved. Optional fields remain null rather than being invented.

Is screenshot capture necessary?

No. Leave it disabled for ordinary structured-data collection. Enable it when you need a rendered PNG of each saved ad card and can accept slower collection.

Does this scrape organic Google Shopping results?

No. It keeps cards with paid-ad evidence and excludes organic Shopping listings from its core output.

How is this different from the Google Ads API or Transparency Center?

The Google Ads API serves account-owned campaign and reporting data, while Transparency Center focuses on public advertiser creatives. This Actor checks paid Shopping product cards shown for buyer keywords on live Google Search.

📝 Changelog

  • 0.3: Added checkout price and structured promotion fields so coupon ads clearly separate regular price, after-code price, promotion text, and discount percent.
  • 0.2: Added desktop/mobile/both device selection, richer Shopping ad fields, automatic duplicate cleanup, and lower Shopping ad pricing.
  • 0.1: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré