Skip to main content
This section documents the sponsored ads data returned by the Google Search endpoint. Sponsored ads are part of the Google response, so no separate API call is needed. For use cases, pricing context, and copy-paste examples, see the Google ads scraper page on the product site.

Example request

This produces a response containing the ads array documented below.

Overview

Sponsored ads are paid placements Google injects into the SERP. They cover both classic text ads (top and bottom of the page) and shopping-style sponsored cards (right-hand-side carousel and top-of-page carousels). All sponsored entries share the same ads[] array — the type field discriminates them.
Sponsored ads in Google Search

Ad types

Each ad carries a type discriminator with two values:
  • RESULT — plain text ad. Displayed at the top or bottom of the main column with ad copy, sitelinks, and a normal destination URL.
  • SHOPPING_CARD — shopping-style sponsored card. Carries a product image, price, optional MSRP / oldPrice, merchant name, and a Google-redirected aclk? destination URL.
SHOPPING_CARD ads surface on three SERP positions, distinguished by blockPosition and category: To discriminate, switch on type first; for SHOPPING_CARD items use blockPosition + category to identify the surface.
Sponsored products carousel on the Google SERP
Do not confuse type: SHOPPING_CARD ads with the organic shoppingCards field. Sponsored cards live in ads[], are paid placements, and use Google aclk?-redirected URLs. Organic shopping cards live in shoppingCards[], come from the “Popular products” / “More products” grids, and use JS-hydrated productLink URLs that are usually empty in the static HTML response.
Fields shared across all ad types:
For type: RESULT items, description is classic ad copy. For type: SHOPPING_CARD items it carries category-specific subtitle fragments joined with · — for example Used - 94k miles · Greeley on a “Sponsored vehicles” card.
Fields specific to type: RESULT text ads: Fields specific to type: SHOPPING_CARD ads:

Price shape

price and oldPrice carry both a parsed and a raw representation: raw is always present when price is emitted. value and currency are populated only when the visible string parses unambiguously. Installment / down-payment labels (common on phone-contract cards) parse the leading "$0" as value: 0 — use raw to disambiguate genuine free items from down-payment phrasing.

Response example