At 3 a.m. a cron job on a retailer’s server writes an XML file. Forty-odd columns, twelve thousand rows, one row per sellable variant. It gets fetched, parsed, validated, and matched against a catalog, and by breakfast it decides whether a Performance Max campaign with a seven-figure annual budget has anything to bid on. Nobody in the marketing org has opened it. There is no dashboard for it. When it breaks, the symptom is a revenue chart, not an error message. This file is the most consequential integration surface in retail advertising, and it does not look like an API, because it is a spreadsheet.
Froogle, Then a Vertical That Started Charging
Google’s shopping product has been renamed roughly once every five years and has changed its commercial model once, decisively. It began as Froogle in December 2002, a free vertical search engine over product listings, algorithmically ranked like the rest of Google’s index. In 2007 it was renamed Google Product Search. In 2009 Merchant Center appeared as the successor to Google Base, the general-purpose structured-data submission tool, and became the place merchants uploaded their catalogs (Google Shopping history).
On May 31, 2012, the model changed. Google announced that Product Search would be renamed Google Shopping and would move to a pay-to-play model in which merchants paid to be listed and bids influenced placement alongside relevance (Search Engine Land, 2012). Google’s stated rationale was that shopping data is one of the areas where it cannot simply crawl and rank public content but has to form commercial relationships to get the data. The transition completed in the United States on October 17, 2012, after which every result in the Shopping vertical carried a bid (TechCrunch, 2012). A free algorithmic vertical had become an auction.
That lasted eight years. On April 21, 2020, Bill Ready, then Google’s president of commerce, published a post titled “It’s now free to sell on Google,” announcing that the Shopping tab would primarily feature free organic listings, with paid ads alongside (Google blog, 2020). The framing was COVID relief for small retailers, and the timing during a retail collapse was real. It was also shaped by the European Commission’s June 27, 2017 decision fining Google €2.42 billion for self-preferencing its own comparison shopping service in Search results, a decision that required Google to give rival services equal treatment (European Commission, 2017). Free listings answered a competition problem as much as a pandemic one.
Through every one of those renames and reversals, the file stayed the same shape.
The Contract Itself
The product data specification is the closest thing Google’s advertising stack has to a public schema, and it reads like one: required attributes, optional attributes, allowed values, formats (Google Merchant Center Help). The core required set is small. An id that must be stable across submissions, because it is the join key for everything downstream. A title and description, which are the primary relevance signal because there are no keywords to bid on in Shopping. A link and image_link. A price, which must match the price on the landing page. An availability value. A condition. And a unique product identifier, gtin or mpn plus brand, which is how Google clusters your listing with every other merchant selling the same physical thing.
Two attribute groups do disproportionate strategic work. gtin determines whether your product joins a product cluster, which determines whether shoppers see a price comparison next to your listing, which determines whether being three percent more expensive than a competitor is visible at the moment of decision. And custom_label_0 through custom_label_4 are five free-text fields Google does nothing with, which makes them the only mechanism for pushing business logic into campaign structure. Margin band, seasonality, stock cover, bestseller flag, clearance status: whatever segmentation the bidding strategy needs has to arrive as a custom label, because Merchant Center knows nothing about your P&L.
Feeds come in two kinds. A primary feed creates and deletes products. Supplemental feeds can only modify products the primary feed already created, joined on id. That distinction is what lets a merchandising team own custom labels in a Google Sheet while the engineering team owns the primary feed from the product database, without either overwriting the other. It is also the most common source of confusion when a value silently fails to apply, because a supplemental feed row whose id does not match anything is not an error, it is a no-op.
The other thing to internalize is fan-out. One feed, submitted once, populates Shopping ads, free listings, Performance Max, and Demand Gen, and surfaces across the Shopping tab, Search, Images, Lens, YouTube, Maps, Business Profile, and Gemini. There is no per-channel catalog. Fix a truncated title and it improves in eight places. Ship a wrong price and it is wrong in eight places. The Google Ads side of that dependency, and why Performance Max in particular cannot function without a healthy feed, is covered in The Auction That Ate Advertising.
How the file gets there matters more than it should. A merchant can let Google fetch a URL on a schedule, push an upload over SFTP, submit a Google Sheet, use the API, or delegate the whole thing to an ecommerce platform app or a feed management vendor. Scheduled fetch is the most common and the most quietly fragile, because its failure mode is not an error page, it is Google continuing to serve the last successful version of your catalog. Fetch frequency is capped, which means a retailer running intraday repricing or flash sales has a structural window in which the advertised price and the checkout price disagree. The API path exists precisely to close that window for price and availability, and almost nobody on a mid-market catalog uses it, because the feed is a marketing artifact and the API is an engineering project.
One more piece of the structure is invisible from inside the interface. In Europe, Shopping campaigns run through a comparison shopping service, and Google Shopping is only one of the available CSSs. That arrangement exists because of the 2017 European Commission decision, and the practical consequence for a European retailer is that the same feed, the same products, and the same bids can be submitted through a third-party CSS partner rather than through Google’s own, sometimes at a different effective cost. The catalog contract does not change. Only the intermediary does.
Feed Rules Are a Declarative ETL Layer
The part of Merchant Center that practitioners underuse is the transformation layer that runs between the file you submit and the catalog Google stores. Feed rules apply at ingest, in order, and they do the work of a small ETL pipeline expressed as configuration rather than code.
The primitives are ordinary: set an attribute to a fixed value, take a value from a different attribute, extract with a search-and-replace, prepend or append text, map values through a lookup table, apply conditionally on another attribute’s value. Put together, they cover most of what merchants otherwise ask engineering for:
- Prepend brand to
titlefor every product wheretitledoes not already contain it. - Map an internal availability code of
WH-2toin_stockandWH-0toout_of_stock. - Set
custom_label_2toclearancewheresale_priceis below sixty percent ofprice. - Strip a marketing suffix from every title so the product name matches how people search.
- Default
conditiontonewwhere the source system omits it.
The architectural significance is that these rules move the transformation from the retailer’s codebase into Merchant Center, which changes who can make the change and how fast. Renaming a title pattern across a catalog stops being a data engineering ticket and becomes a config edit that takes effect on the next fetch. That is the same authority shift Google Tag Manager made for tags, arriving at the product-data layer instead of the collection layer, and it comes with the same governance problem: the version of your catalog that Google bids on is no longer identical to the version in your database, and only one of the two is under source control.
Merchant Center Next Moved the Layer Behind a Door
Google announced Merchant Center Next at Google Marketing Live on May 23, 2023, and completed migrating all retailers off the classic interface by September 2024 (Merchant Center Help). The catalog engine underneath did not change. The interface, the terminology, and the defaults did. “Feeds” became “data sources.” “Destinations” became “marketing methods.” The “Diagnostics” tab became “Needs attention.”
Feed rules became “attribute rules,” and two things about them changed in a way that matters more than the rename. They are off by default, and they are hard to find, tucked away rather than presented as a first-class part of data source configuration (ZATO Marketing). A retailer who migrated in 2024 and did not go looking for them has an entire transformation layer available, unused, and unmentioned by the interface.
Next also introduced automatic product import via website crawling, intended to onboard merchants who have no feed at all. For a merchant with a real feed this is a hazard rather than a feature, because a crawler’s idea of your price and availability competes with the file you carefully generate at 3 a.m. Combine that with feed processing throughput limits on large catalogs and you get the failure that generates support threads: a price changes on the site, the feed reflects it, the catalog lags, and the ad shows a price the landing page does not honor. Which leads directly to the enforcement mechanism.
Suspension Upon Detection
Most Merchant Center policy violations follow a predictable escalation. Google flags the issue, issues a warning, and gives at least seven days before any account-level suspension, which is enough time to fix a feed and resubmit (Merchant Center Help).
Misrepresentation does not work that way. Google’s policy page for “misrepresentation of self or product” states that accounts found in violation are suspended upon detection and without prior warning, and that the merchant will not be allowed to promote with Google Shopping again (Merchant Center Help). There is an appeal path. Reinstatement is discretionary and, by every practitioner account, rare.
| Policy area | Warning first | Time to fix | Practical severity |
|---|---|---|---|
| Missing required attribute | yes, item-level disapproval | until you fix it | one product offline |
| Image quality, promotional overlay | yes | item disapproval, no account risk | low |
| Landing page price mismatch | yes, typically | 7 days before account action | moderate, fixable |
| Prohibited product category | yes, usually | 7 days | moderate |
| Misrepresentation of self or product | no | none, suspension on detection | account-level, reinstatement rare |
The asymmetry is deliberate. Misrepresentation is Google’s fraud tripwire, and it covers deception about the product, the price, the seller, or the transaction, which is a wide surface. It catches genuine bad actors. It also catches merchants whose real offense is a missing returns policy page, a contact page without a phone number, a business address that does not match the domain registration, or a price mismatch severe enough to read as bait and switch. The mechanism cannot distinguish sloppiness from intent at detection time, and the enforcement is the same either way.
Google widened the surface again in 2025. Effective October 28, 2025, an update to the misrepresentation policy explicitly targeted dishonest pricing practices: hidden fees added at checkout, prices shown in ads that do not match the price at purchase, and undisclosed subscription billing (Search Engine Land, 2025). Pricing accuracy moved from an operational hygiene problem into the policy area whose stated enforcement is suspension without warning.
Put that next to the feed throttling described above and the risk profile becomes clear. The thing most likely to get a legitimate retailer suspended is not a policy decision. It is a stale row in a file that a cron job wrote at 3 a.m., in a system where nobody owns the file and the only monitoring is a revenue chart. Build the alerting for feed freshness and price parity before you build the next campaign, because the downside is not lower performance, it is zero.
The final chapter of this part turns from the data contract to the reporting layer on top of it, and to what a decade of renaming that layer says about whether any of this was designed: Naming as Strategy Failure.
Key Sources
| Source | Author/Org | Year | Link | Why it matters |
|---|---|---|---|---|
| Google Shopping (product history) | Wikipedia | 2002 onward | entry | Traces the Froogle to Product Search to Merchant Center lineage and dates |
| Google Product Search To Become Google Shopping, Use Pay-To-Play Model | Search Engine Land | 2012 | article | The May 31, 2012 announcement that turned a free vertical into an auction |
| Google Shopping’s Transition To Pay-For-Play Completes On Oct. 17 | TechCrunch | 2012 | article | Dates the completion of the US transition |
| Commission fines Google €2.42 billion for abusing dominance as search engine | European Commission | 2017 | press release | The self-preferencing decision that shaped the later free-listings reversal |
| It’s now free to sell on Google | Bill Ready, Google | 2020 | blog | The April 21, 2020 reintroduction of free product listings |
| Product data specification | Google Merchant Center Help | current | help doc | The actual schema: required attributes, formats, and allowed values |
| Merchant Center Next: Upgrading all retailers by September | Google Merchant Center Help | 2024 | help doc | Confirms the forced migration and the terminology changes |
| How to Set Up Attribute Rules in Google Merchant Center Next | ZATO PPC Marketing | 2024 | article | Documents that the transformation layer is off by default and non-obvious to find |
| Misrepresentation | Google Merchant Center Help | current | help doc | States suspension upon detection with no prior warning |
| Fixing Merchant Center warnings and account suspensions for policy violations | Google Merchant Center Help | current | help doc | The normal warning-then-suspension escalation that misrepresentation bypasses |
| Google Ads updated policies to target dishonest pricing practices | Search Engine Land | 2025 | article | The October 28, 2025 pricing update folded into the misrepresentation policy |
PM Lens
Papers referenced
- Google Product Search To Become Google Shopping, Use Pay-To-Play Model Search Engine Land · 2012
- Google Shopping's Transition To Pay-For-Play Completes On Oct. 17 TechCrunch · 2012
- Commission fines Google €2.42 billion for abusing dominance as search engine European Commission · 2017
- It's now free to sell on Google Bill Ready, Google · 2020
- Google Shopping (product history) Wikipedia · 2024
- Product data specification Google Merchant Center Help · 2024
- Merchant Center Next: Upgrading all retailers by September Google Merchant Center Help · 2024
- How to Set Up Attribute Rules in Google Merchant Center Next ZATO PPC Marketing · 2024
- Misrepresentation Google Merchant Center Help · 2025
- Fixing Merchant Center warnings and account suspensions for policy violations Google Merchant Center Help · 2025
- Google Ads updated policies to target dishonest pricing practices Search Engine Land · 2025