merchant-center-health
Merchant Center Health
Check the health of the Merchant Center account linked to one Search Console property and find the products that are not serving in free listings, ending with a verdict and a fix list. The user's request may contain a property, a Merchant Center account name or id, a language code for the issue text, or a focus hint (for example "only the feed" or "disapproved products"); honor the hint by going deeper there, but still run every step.
Workflow
-
Resolve the property. If the user's request or the conversation names a property, use it. Site URLs use GSC formats:
sc-domain:example.comorhttps://www.example.com/. Otherwise calllist_sitesand pick the obvious match. If several plausible properties exist, ask the user which one before continuing. -
Find the linked account. Call
list_gmc_accountswith the property'ssiteUrl(the argument is optional, but passing it addslinkedAccountId, the account this property is linked to). Theaccounts[]rows carryaccountId,accountName,accountEmail,isAdvancedandlinkedSiteUrls. Interpret the response before anything else:connected: falsewithreason: "no_scope"means the Merchant Center consent has not been granted in the GSC Wizard app;reason: "credentials_revoked"means it was granted but Google now rejects the saved connection, so the Google account has to be reconnected on the Account page. Relay thehintand stop the Merchant Center steps, since nothing below can answer.- Accounts listed but no
linkedAccountIdmeans the property is not linked yet. Linking happens in the GSC Wizard app, not through a tool: show the account table and tell the user which account to link. For a grantee without the Merchant Center opt-in the id is withheld with a note; say so. isAdvanced: truemarks a multi-client parent that cannot be reported on; one of its sub-accounts has to be linked instead.incomplete: truemeans the list is a floor: readgaps,unprobedAccountIdsanderrors, say what could not be read, and suggest a retry.
-
Account health. Call
get_gmc_account_healthwithsiteUrl, optionallylanguageCode(BCP-47, for example"nl", default en-US) for the issue text andlimit(default 200, max 500, most severe first). ReadoverallStatusfirst: it is the worst of the checks and the issues. Then read:issues[](title,detail,severity,affectsFreeListings,impactedDestinationswith thereportingContextand the regions each one hits,documentationUri) and theissueCountstotals.checks[](key,status,message), where status is one ofok,suggestion,warning,criticalorunknown. A setting this Google login may not read answersunknownandsectionssays why: report it as unverified, never as passed.programs[]for the free-listings programstate, itsactiveRegionCodesand anyunmetRequirements;homepage.claimedfor whether the website is claimed;countriesWithoutShippingServiceagainsttargetCountriesfor the markets without an account-level shipping service. Business info is reported as presence flags only (businessInfo), and shipping and returns set per product in the feed are not read, so those two checks can flag what the feed already covers.