how a call runs
what it reaches
Merchant Center API
server to server · straight to the platform’s API
access granted once · OAuth · scoped to this account
no browser session · no password sharing · no scraping
what you get
read-only by default · Every question is answered without touching the catalogue. Fixing a listing or resubmitting a feed is a separate, deliberate step with its own guards, its own record and its own way back.
nothing is lost if something crashes mid-change · Every change is recorded before it is attempted and again once it is confirmed, so a change that lands without being accounted for cannot happen quietly.
one page at a time · The catalogue is read page by page, never pulled whole, and the platform's own limit on how often a product may change is respected rather than raced.
| tool | type of access | what it does | why it exists |
|---|---|---|---|
| products.list | reads only | lists the catalog as the platform sees it | the catalogue as Google will sell it |
| rejections.list | reads only | lists every refused product with its reason | every refused product, with Google's reason |
| feed.diagnostics | reads only | reads feed health at a glance | feed health before spend finds the fault |
| price.status | reads only | compares feed price against site price | a price mismatch gets a product refused; this names it first |
| product.update | changes or removes | fixes a listing once you approve | a broken listing fixed at the feed, with your approval on record |
| feed.resubmit | adds new | sends a corrected feed once you approve | the corrected feed goes back only when you say |
covers
83 of the 125 methods in the Merchant API v1 in full and 5 more as bounded surfaces: accounts, data sources, products, reports and issue resolution. Not covered: conversions, local and regional inventories, notifications, order tracking and promotions, which the work has not needed, and the local-feeds partner programme, deferred until that enrolment exists.
how it operates · alone, or with the rest of the fleet
alone
feed health with every rejection explained
01
you ask · “Why did the feed reject products this week?”
02
it picks · the feed-diagnostics read and the product-status read · reads only
03
comes back · which products fell out, and the reason Google gives for each
04
lands · a fix list in plain words · the catalog untouched
with Google Ads
A rejected product cannot be sold by any campaign. Read together, each rejection in the feed is tied to the shopping spend that was pointed at it, so the cost of a broken listing is named rather than guessed.
01
you ask · “What is a rejected product costing us in ad spend?”
02
it picks · the rejections read in Merchant Center and the shopping-campaign results read in Google Ads · reads only
03
comes back · each rejection with Google’s reason, beside the spend pointed at that product
04
lands · the cost of every broken listing, named · the fix list first, the campaign untouched
with GA4
Merchant Center shows what is listed. GA4 shows what was bought. Read together, listed products are set beside sold products, so a product that is live in the feed and never sells is found by name.
01
you ask · “Which listed products never sell?”
02
it picks · the products read in Merchant Center and the purchase read in GA4 · reads only
03
comes back · what is live in the feed, beside what the site actually sold
04
lands · products live and unsold, named · the catalogue and the feed untouched
