Skip to content
CrawlerData
Menu
Solution

Spot MAP violations across every seller on Google Shopping

Check each of your products against every seller Google Shopping lists for it, then flag the offers priced below your minimum advertised price.

The problem

What gets in the way

Your minimum advertised price policy only works if you see violations quickly. On Google Shopping one product can be offered by many sellers, and the one undercutting you is rarely the one you checked.

You need the full seller list for each product, captured on a schedule, with the advertised price kept separate from shipping so you compare like with like.

The approach

How CrawlerData solves it

  1. Search for your brand or model names to find the Google Shopping product_id for each product you sell.

    Google Shopping API
  2. Check each product with the sellers endpoint: every seller with merchant, offer_title, price, shipping and total_price in one request.

    Google Shopping Sellers API
  3. Compare price.value with your MAP for each seller, and keep the raw response as a dated record of what Google showed.

    Google Shopping Sellers API
  4. Run it in several countries with the country parameter if your MAP differs by market.

    Google Shopping Sellers API
Example

One request, structured data back

Compare each seller's price.value with your MAP. offer_title shows how the seller names the product.

REQUEST / RESPONSEPOSTapi.crawlerdata.com/v1/jobs
curl -X POST https://api.crawlerdata.com/v1/jobs \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"endpoint":"google-shopping-product","params":{"product_id":"14580532573920022357","country":"us"},"queue":"live"}'
{
  "sellers_count": 12,
  "sellers": [
    {
      "merchant": "Walmart",
      "merchant_rating": 4.3,
      "offer_title": "Soundplay Foldable Wireless Headphones, Bluetooth Over-Ear Headset with Built-in Mic, White",
      "price": {
        "value": 14.94,
        "currency": "USD",
        "raw": "14.94 USD"
      },
      "total_price": {
        "value": 21.93,
        "currency": "USD",
        "raw": "21.93 USD"
      },
      "availability": "In Stock"
    },
    {
      "merchant": "Best Buy",
      "merchant_rating": null,
      "offer_title": "Tzumi - SoundPlay Foldable Wireless Headphones, Bluetooth Over-Ear Headset with Built-in Mic",
      "price": {
        "value": 22.69,
        "currency": "USD",
        "raw": "22.69 USD"
      },
      "total_price": {
        "value": 22.69,
        "currency": "USD",
        "raw": "22.69 USD"
      },
      "availability": "In Stock"
    }
  ]
}

Excerpt of the result object, with fields and items trimmed. Full response on the Google Shopping Sellers API page.

What it costs

A worked example

Every endpoint costs 1 credit per request. Here is what a typical monthly workload costs with whole credit packs.

500 products checked twice a day × 30 days

= 30,000 requests a month

1 credit per request, so 30,000 credits a month.

Buy one month at a time

1 × Starter (50,000 credits) for $50.00

$50.00 / month

$0.0017 per product check

Buy six months at once (best)

180,000 credits needed: 4 × Starter (200,000 credits) for $200.00

$33.33 / month

$0.0011 per product check, 20,000 credits left unused after six months

Packs are bought whole, like in the pricing calculator. Credits are valid for 6 months, so buying ahead can move you to a cheaper pack. Failed requests are not charged. Prices exclude sales tax/VAT.

Good to know

Limits to plan for

  • CrawlerData returns the prices Google Shopping shows. Deciding what counts as a violation, and contacting sellers, is up to you.
  • Results reflect Google Shopping at request time in the chosen country. A seller can change a price between two checks.
  • A sellers request can take tens of seconds because it loads the full product page. Schedule checks on the fast or regular queue.
  • Sellers who list your product under a different Google Shopping product need their own product_id check.
FAQ

Questions

Does one request really include every seller?

Yes. The sellers endpoint returns all the sellers Google Shopping lists for the product, with sellers_count, for 1 credit.

Is the price advertised price or price with shipping?

Both, separately. price is the item price the seller shows, shipping is the shipping charge, and total_price is the two together.

Can I keep the results as evidence?

You get the full JSON response, which you can store with your own timestamp. The job also records when it was created and completed.

Which countries are supported?

31 countries, including us, gb, ca, au, de, fr, nl, it, es, jp, in and br. The full list is on each API page.

Try it on your own data

Get 50 free credits when you sign up with your work email and verify it. Failed requests are never charged.

Get 50 free credits