Google Merchant API Start Your Migration SOP: Sub-API Priority Order, ProductInput Write/Read Split & Preventing "Offer Stealing"
Actionable engineering handbook for Google’s "Start your migration" specification: why teams must migrate in strict Accounts -> DataSources -> Products -> Reports order, refactoring persistent ProductInput writes (?dataSource=...) vs. read-only Product views with embedded productStatus, backfilling local DB dataSource IDs to prevent destructive "Offer Stealing", and updating MCQL queries to snake_case.
Executive Summary & Research Scope
Actionable engineering handbook for Google’s "Start your migration" specification: why teams must migrate in strict Accounts -> DataSources -> Products -> Reports order, refactoring persistent ProductInput writes (?dataSource=...) vs. read-only Product views with embedded productStatus, backfilling local DB dataSource IDs to prevent destructive "Offer Stealing", and updating MCQL queries to snake_case.
Editorial Metadata: Published on 2026-11-11 by Google Merchant Center 开发者文档组 · evaoo 跨境电商与商品流工程实验室编译. This English Technical Edition distills the full empirical architecture, primary-source evidence, and operational SOPs for global cross-border growth and AI engineering teams.
1. Four-Stage Hybrid Coexistence Roadmap & Sub-API Priority Order
Merchant API v1 and Content API v2.1 can run simultaneously against the same production GMC account, allowing safe module-by-module rollout.
4-Part Series Navigation: Part 1: Overview & Sunset · Part 2: Start Your Migration (Current) · Part 3: GCP Auth & registerGcp · Part 4: Concurrent gRPC & Quotas
| Priority Order | Target Sub-API | Upstream Dependency Rationale |
|---|---|---|
1st(Foundation) | Accounts(developerRegistration) | Calling registerGcp is mandatory before any other Merchant API endpoint accepts credentials without returning 401 UNAUTHENTICATED. |
2nd(Pipelines) | Data sources(replaces datafeeds) | productInputs.insert requires an explicit ?dataSource=accounts/{A}/dataSources/{D} parameter; implicit API feed creation no longer exists. |
3rd(Core Catalog) | Products & Inventories | High-frequency SKU writes, partial price patch calls, regional/local inventory updates, and embedded status diagnostics. |
4th(Analytics) | Reports, Promotions & Notifications | Downstream read-only snake_case MCQL analytics (aligning with June 15 Product Reporting Expansion) and Pub/Sub alerts. |
Figure 1: Google Merchant API Start Your Migration SOP: Sub-API Priority Order, ProductInput Write/Read Split & Preventing "Offer Stealing" — Primary Source Visual Evidence & Architectural Diagram (1)
2. CQRS Product Refactoring: Persistent ProductInput Writes vs. Read-Only Product Views
Merchant API cleanly separates raw merchant submissions from Google-synthesized storefront entities:
- Write Path (
accounts.productInputs): Supportsinsert,patch, anddelete. Submissions are persistent, wrap catalog attributes insideproductAttributes: { ... }, support monotonicversionNumberguards against out-of-order overwrites, and must preserve identicalofferId,contentLanguage, andfeedLabelvalues to retain historical Google Ads Smart Bidding and Cart Data (CwCD) profit signals (verify frontend checkout parity via our Shopify GTM & Web Pixel Generator). - Read Path (
accounts.products): Strictly read-only (get/list). Google asynchronously combines primary data sources, supplemental sources, and UI attribute rules intoProduct. The standaloneproductstatusesservice is retired—approval states anditemLevelIssuesnow live directly insideProduct.productStatus(withlegacyLocalmarking historic local-only feeds).
3. Preventing "Offer Stealing" in DataSources & Updating MCQL Reports to snake_case
- How "Offer Stealing" Happens & How to Prevent It: Legacy Content API feeds already appear automatically in
datasources/v1dataSources.list. If you accidentally insert an existingen~US~offerIdspecifying a newly created PrimarydataSourceinstead of its originaldataSource, the new source steals ownership of that offer, detaching all UI attribute rules configured on the original feed! Always rundataSources.listandproducts.listfirst to backfill each SKU's authoritativedataSourcein your local database, or attach a Supplemental API Data Source alongside Shopify's primary feed. - MCQL Query Modernization (
reports/v1): Views shift fromPascalCase(MerchantPerformanceView) tosnake_case(product_performance_view), field prefixes (segments.,metrics.) are removed fromSELECT/WHEREclauses, andsegments.programis replaced bymarketing_method('ADS'vs.'ORGANIC').
Actionable Implementation Checklist & Strategic Takeaways
- Action Item #1: Never create a duplicate Primary API DataSource blindly—query dataSources.list and backfill existing dataSource IDs in your ERP database to prevent Offer Stealing.
- Action Item #2: Route all catalog mutations to productInputs (with ?dataSource=... and productAttributes) while reading asynchronously synthesized approval states from products.get/list.
- Action Item #3: Keep offerId case-identically matched across Content API, Merchant API, and Web Pixels so Shopping and PMax campaigns retain 100% historical learning.
Cross-Channel Growth & AI Citation Matrix
| Operational Dimension | Legacy Approach | 2026 Best-Practice Architecture | Expected Impact |
|---|---|---|---|
| Signal & Context Integrity | Fragmented client-side tags & ad-hoc prompts | Unified container governance, structured JSON-LD & deterministic harnesses | Higher attribution accuracy & zero runtime drift |
| Execution Velocity | Manual spreadsheet reconciliation & repetitive edits | Automated agent skills, visual tagging & programmatic SOPs | 50%–70% reduction in operational turnaround time |
| Discovery & ROI | Single-channel last-click optimization | Multi-touch Search + Creator + GEO citable content matrix | Compounding organic citations & resilient media ROI |
Found this actionable? Copy standard citation & summary
Formatted with canonical attribution link and executive summary—ready for Slack, Notion, or LLM context.
Put Into Practice: Companion Browser Workbenches
UTM Builder Pro Matrix Workspace
Reverse URL parser, GA4 channel group diagnostics, and dynamic ad macro batch CSV export.
Shopify GTM & GA4 Web Pixel Generator
Generate production-ready Shopify Customer Events Web Pixel code for GA4, Meta, and TikTok.