Introduction
A product feed isn't about listing as much as possible. If products that shouldn't be listed slip in, or products with missing required information sneak through, Google Merchant Center (GMC) will disapprove them.
As disapprovals accumulate, the number of listed products slowly shrinks and, before you notice, your ad exposure thins out. That's exactly why a feed needs quality management: deciding "what to list, and what not to."
This article covers exclusion control for products that shouldn't be listed, and data validation to reduce disapprovals.
Excluding products that shouldn't be listed
Reliably remove drafts and unpublished products
An EC product master contains draft products not yet published and products deliberately kept private. If these accidentally end up in the feed, Google may hit a product page that shouldn't exist and get an error.
So we look at the product status and firmly reject any product that isn't published at the feed generation stage. The only things included in the feed should be "published products that can actually be bought right now" — enforcing that is the first step of quality management.
Switching exclusion behavior with environment-variable flags
Exclusion rules sometimes need to change by site or situation. For example, you might want to include test products in staging but exclude them strictly in production.
Switch exclusion rules with settings
Hard-coding exclusion conditions means a deploy every time you change them. Making the behavior switchable via an environment-variable flag makes per-site and per-environment adjustments safe and easy.
With this in place, you can handle operational requests like "list out-of-stock items on this site only" or "let drafts through in this environment" without touching code.
Finer control by inventory and tags
Beyond published vs. unpublished, finer exclusions are needed too. Products that have been out of stock for a while, products slated for discontinuation, products with a certain tag — there are plenty of cases where you want to drop these from the feed.
This flexibility is exactly the strength of self-hosting. You can freely build exclusion logic aligned with business judgment by looking at product tags and stock status. Fine-grained control that an app's settings screen can't reach is yours to command with code.
Data validation to reduce disapprovals
Catch missing required attributes before you ship
A major cause of disapproval is missing required attributes — an empty price, an image URL that didn't resolve, a GTIN with the wrong digit count. Such products are rejected the moment you hand them to GMC.
What matters is catching this before you ship the feed, rather than finding out after GMC disapproves. If you spot products with gaps at the generation stage, you can fix them proactively.
Use "exclude" and "notify" for validation results
When a gap is found, there are two responses. One is to exclude that product from the feed and list only healthy products. The other is to notify the person in charge of the gap so they fix the source data.
At feed generation, confirm each product's attributes are complete
Drop products with gaps from the feed to head off disapprovals
Record and notify which product is missing what, prompting source-data fixes
Excluding alone means the source data never gets fixed and you keep losing listing opportunities. The trick is to run both wheels: "exclude for now, but get it fixed."
Keeping an eye on policy violations
Even with attributes complete, touching GMC policy leads to disapproval. Products in prohibited or restricted categories, or titles with exaggerated claims, are typical examples.
These can't be fully caught by mechanical validation alone, but by regularly checking the disapproval report in the GMC admin and folding frequent reasons back into the feed generation rules, you can gradually reduce disapprovals. It feels like growing quality as you operate.
Conclusion
Feed quality management stands on two sides: "control what not to list" and "validate before listing."
- Exclusion control: reliably remove drafts and unpublished products, and finely control by inventory and tags
- Switch exclusion behavior per site and environment with environment-variable flags
- Run required-attribute validation at feed generation to head off disapprovals
- With both exclusion and notification, protect the listing while prompting source-data fixes
A high-quality feed comes into its own only when converted correctly in mapping design and delivered stably through caching and health checks. For the big picture, see the automated product feed hub article.