Stefan RiemeyerGoogle Ads Freelancer

Google Shopping and Merchant Center: a guide for online retailers

How product data gets into your ads, what Google checks and what you have to check yourself, and which feed errors cost the most contribution margin.

Stefan Riemeyer/Updated 2 November 2026/10 min read

Affected items Contribution margin at risk Suspension 5,000 Price error 400 Long tail 300 Bestseller 1 €7,000 €1,050 €200 €150 Worked example with invented numbers

Merchant Center is the data model of your range

According to Google, Shopping ads are driven by the product data in Merchant Center, not by keywords. Campaign, budget and bid sit in Google Ads. Everything Google knows about your range sits in Merchant Center. According to Google, the same data also feeds free product listings and the AI-powered ad formats. If a field is missing or wrong, no campaign setting can make up for it.

My view: Merchant Center is the model from which Google understands your range. The issue list shows you what Google dislikes about that model. What costs you money is a different question, and you have to ask it yourself.

In practice the model has three layers that are treated very differently. The split is mine, not Google's.

Layer Fields, for example What it drives What happens if it is wrong
Identity Title, brand, GTIN, category Matching to the search query A wrong GTIN leads to disapproval; a GTIN that exists but is not submitted can limit visibility
Offer Price, sale price, availability Display and serving A mismatch with the product page can lead to a preemptive disapproval
Economics Cost of goods, custom labels Reporting, separation for bids and budget No message. Google simply treats the whole range the same

The third layer is optional, so nobody chases you for it. Yet that is where it is decided whether a euro of ad spend lands on the right item. What belongs in the individual fields is covered in the article on the feed as a model of your range.

From shop database to ad

A product passes through several stages, and any of them can stop it. To get started, Google requires business information, a verified website, shipping settings, product data and a linked Google Ads account with a payment method. After that, the same chain applies to every product:

  1. The shop sends product data to a data source in Merchant Center.
  2. Google checks it against the specification, the policies and the product page.
  3. A campaign in Google Ads draws on the approved products.
  4. When someone searches, Google uses the data to select matching products; bid and budget have their say in the auction.

In practice the fourth step matters most: there are no keywords to buy, so title, category and description take over their job. If you want to reach a search term, write it into the product data as a natural part of the title, not as a keyword list, and make sure shop and feed say the same thing. That argues for fixing the problem in the shop, not just in the export.

Two campaign types, one data set

You manage Shopping ads through Shopping or Performance Max campaigns. Both read the same product data but differ in how much you control yourself.

Shopping campaign Performance Max
Placements Shopping tab, Search, Images, optionally search partners Additionally YouTube, Display, Gmail, Demand Gen, Maps, text ads
Ad content From the feed From the feed and asset groups, automatically generated or optimised
Bidding Target ROAS, Maximise clicks, Maximise conversion value, manual CPC Maximise conversion value or conversions, optionally with a target
Extras Audience targeting New customer acquisition goal, audience signals, Final URL expansion

Which type you use for which part of the range is a separate decision: Performance Max or Standard Shopping by range and data. For Merchant Center, something else matters first: every campaign you create directly in Merchant Center is a Performance Max campaign, and by default it advertises all available products. You only enter a budget and a name there.

For a shop with similar margins across the range, that is a reasonable way in. If, say, clearance stock at 15% sits next to own brands at 50%, I would set the campaign up in Google Ads and choose the product scope deliberately. Otherwise the default also advertises goods on which nothing is left after ad spend.

In countries with the CSS programme, another party is involved: there you take part in Shopping ads through one or more Comparison Shopping Services.

Google checks consistency, you check correctness

Google's checks answer whether your data complies with the rules and matches the product page. They do not answer whether it makes commercial sense, and they offer no hints on optimising optional attributes either.

What is checked Who What it means
Format and required fields Google If a required attribute is missing, the product does not run
Price and availability against the product page Google Checks that they match, not that the price is intended
Online store issues such as broken links, placeholders, blocked crawlers Google Can lead to disapprovals
Whether the price is the intended one, whether a sale is still current Retailer If the same wrong price is in shop and feed, there is no mismatch error
Delivery time for pre-orders Retailer See below
Margin, stock pressure, return rate Retailer Google only knows them if you enter them
Ad content generated by Google Retailer Google can use content from the landing page, images and feed as well as AI-generated content, so read samples regularly

Two details from automatic item updates show the difference. When in doubt, Google aligns with the page: if the feed shows a higher price than the product page, the automatic update takes the price from the page. If the page is wrong, the error therefore wins. And for stock status, Google applies relaxed rules: preorder and backorder in the shop count as compatible with in_stock in the feed. For the check that is a match; for the buyer it is a delivery time they did not expect.

The issue list counts items, you lose contribution margin

Merchant Center has its own prioritisation: Priority fixes shows issues with a medium or high impact on performance and potential clicks, and the detail page of an issue states the clicks lost. That is a useful first filter. But Google counts clicks and you count contribution margin, and a click on a clearance item is not the same as a click on an own-brand product.

I would therefore assess every issue with the same formula:

Contribution margin at risk = contribution margin after ad spend per day × share of the affected items in it × outage duration in days

After ad spend, because when products stop running the click costs stop too. The result is an upper bound, calculated as a total outage: if a campaign is limited by budget, part of the money moves to other products.

A worked example with invented, round numbers. Suppose a shop with 5,000 items generates €100,000 in monthly revenue through Google, earns €30,000 on it before advertising and pays €15,000 for ads. That leaves €15,000 a month, or roughly €500 a day.

Issue Affected items Share of contribution margin Per day Assumed duration At risk
Account suspension 5,000 100% €500 14 days €7,000
Systematic price error in one category 400 30% €150 7 days €1,050
One disapproved bestseller 1 8% €40 5 days €200
Missing identifiers on long-tail variants 300 1% €5 30 days €150

By item count the bestseller would come last; by money it comes ahead of 300 variants. Per day it is even eight times as expensive, it just gets noticed sooner. Duration is the variable you can influence most, which is why a daily look at your highest-revenue items is part of routine maintenance.

The check itself takes little effort: download the list of affected items as a CSV, join it via item ID to the contribution margin of the last 30 days and sort by that. Once built as a template, you can reuse it at every review.

Which errors cost the most

The ranking is my assessment, calculated as above.

Account issues. Setup and policy issues affect all products. During the warning period everything still runs, possibly with limited performance. If unresolved, suspension follows, and according to Google in serious cases even without a warning. Reviews can take up to 7 business days, and the number of requests can be limited. The banner at the top of the account therefore comes before any product list. How to proceed once it has happened: suspension for misrepresentation.

Systematic price or availability mismatches. They hit whole categories, and a preemptive disapproval can only be resolved through a review. Automatic updates are no solution here: according to Google they are intended for sporadic mismatches on a small share of products, may not work with more than one change per day, and the product may then be disapproved rather than updated. Dynamic prices therefore need more frequent data updates. Finding the cause is covered in the article on disapprovals for incorrect prices.

Equal treatment without an error message. This is the only item no list shows, and it runs every day. As long as there is no margin in the data model, bidding only sees revenue. The calculation follows in the next section.

Bestsellers with a disapproval or warning. High damage per day, usually short duration if someone is watching. Warnings let the product keep running, possibly with limited performance, and can turn into disapprovals if unresolved.

Long-tail errors. They fill the list and can wait until a shared cause is fixed in the export. GTINs are an exception: never guess them, because a wrong GTIN leads to disapproval, while an empty field can limit visibility. When in doubt, Google itself advises leaving the field out.

Margin belongs in the data model, if it stays maintained

The same ROAS does not mean the same profit. Worked example: suppose two product groups each receive €1,000 in ad spend and each achieve ROAS 5, so €5,000 in revenue. Group A earns 40% before advertising, so it ends up at plus €1,000. Group B earns 20% and ends up at zero. In the campaign report both look the same.

A: 40% before ad spend +€1,000 Goods €3,000 Ad spend Left B: 20% before ad spend €0 Goods €4,000 Ad spend €5,000 revenue each, ROAS 5 each Worked example
Same ROAS, two outcomes: group A keeps €1,000 after ad spend, group B nothing.

The feed offers two fields for this with different jobs. Cost of goods sold (cost_of_goods_sold) gives insight into gross margin, according to Google; I treat that as a reporting metric. Only Google's Profit Optimisation Goal, currently in beta, uses it as a bidding signal, and I would not plan around it until it is available in your own account. For separating products there are up to five custom labels with 1,000 values each. Margin differences are a common reason to split products by label and bid differently. Which five are worth it is covered in the article on custom labels.

The catch is maintenance. A Dutch agency that promotes a partner's labelling tool as the solution reports that a Performance Max structure by margin was error-prone in their practice because margins in Merchant Center were not always updated automatically. A label nobody updates steers by last year's purchase price. I therefore recommend margin bands instead of percentages, filled automatically from the inventory management system. A band rarely changes, and a small price increase does not break the structure.

Labels, however, only sort products into groups. If you want margin directly in the bid, you have to write it into the conversion value, which is a separate project with its own risks.

For a small range, Google's list is enough

With a small range and similar margins, the formula changes little. Google's list is then close enough to the truth, and margin bands only add maintenance work.

With few conversions, splitting too finely does more harm than good, because each group has to make do with less data. Here I would create two bands at most, or only exclude the clearly unprofitable items.

Priority fixes is only available in accounts for which Google can estimate potential performance. If the Prioritized fixes toggle is on, low-impact issues may be hidden. Switch it off for a complete review, otherwise you will miss an item that Google rates as insignificant but you do not.

For new products and seasonal goods, the calculation based on the last 30 days does not work because there is no contribution margin yet. Use the expected value here, or treat the items as a given until they have data. With limited stock, too, the formula only partly applies: a disapproval shortly before selling out costs little if the goods are moving anyway.

Interfaces and labels in Merchant Center change frequently; the information here is as of November 2026.

Further questions

Should I leave automatic item updates switched on?

Usually yes, as a safety net for individual mismatches. However, Google advises against using automatic price updates when product pages show several strikethrough prices, because the system may not find the right one. In no case does it replace regular data updates.

Do I need to check issues separately for each country?

Yes, if you sell to several countries. According to Google, the same product can receive different warnings or disapprovals per target country, because policies differ between countries. A product that runs in Germany can therefore be disapproved in Switzerland. Calculate the damage with that country's contribution margin, and in CHF for Switzerland.

Sources

  1. Product data specification, Google Merchant Center Help
  2. About Shopping ads, Google Ads Help
  3. Advertise your products using Merchant Center, Google Merchant Center Help
  4. Issues in Merchant Center, Google Merchant Center Help
  5. Allow Merchant Center to update product information automatically, Google Merchant Center Help
  6. Mastering Custom Labels for Google Shopping, The Media Captain
  7. Google Shopping Campaigns: Analyzing the Impact of Product Feed Quality, Converteo
  8. Maximize the return on your Performance Max campaigns, Yellowgrape
  9. Request a review of your issues, Google Merchant Center Help
  10. Key tips to driving online sales, Google
Stefan Riemeyer

Stefan RiemeyerIndependent Google Ads specialist for e-commerce in the DACH region. I work on every account I manage myself.

Request a free audit

Read next