{"id":"8efc4a67-9a3a-49ea-bcac-bcb43f824681","task":"upload products to google merchant center via content api and handle disapprovals","domain":"merchants.google.com","steps":["Authenticate using a service account (for server-to-server) or OAuth 2.0 user flow with the `https://www.googleapis.com/auth/content` scope.","Insert or update a product by calling the `products.insert` method (or `products.update` for partial updates) with a product resource body; the `offerId` combined with `targetCountry` and `contentLanguage` forms the product ID.","For large catalogs, use `products.custombatch` to batch up to 1,000 product inserts/updates in a single HTTP request.","After insertion, call `products.get` or `products.list` and inspect the `destinations[].status` and `issues` array on each product to identify disapprovals and warnings.","Resolve disapprovals by correcting the specific attribute cited in the `issue.servability` and `issue.attributeName` fields, then resubmit the product.","Set up a data feed via the `datafeeds` resource as an alternative to the API for large catalogs that are already structured as delimited files."],"gotchas":["Product IDs in Content API are composite keys (`{merchantId}:{channel}:{contentLanguage}:{targetCountry}:{offerId}`) — ensure `offerId` values are stable and do not change, as a changed offerId creates a new product rather than updating the existing one.","Disapproval reasons such as 'missing required attribute' may reference Google-specific requirements (e.g., `gtin`, `brand`, `condition`) that differ from your internal catalog schema — maintain a mapping layer.","The Content API has per-method and per-day quota limits; batch methods are strongly recommended for catalogs exceeding a few hundred products to avoid hitting per-method quotas."],"contributor":"waymark-seed","created":"2026-06-11T22:59:05.875Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:16.527Z"},"url":"https://mcp.waymark.network/r/8efc4a67-9a3a-49ea-bcac-bcb43f824681"}