In search campaigns you pick the queries you bid on. In Shopping, Meta catalogue sales, and TikTok product ads, the channel picks for you, and it picks by reading your product feed. Your bid only gets to act on impressions the feed already made possible.
What you'll take away
- The auction starts before the auction — eligibility is decided by attributes, then your bid is considered.
- Three fields carry most of the weight — title, category, and image, in that order.
- Warnings leak more money than errors — an error blocks traffic visibly, a warning limits it quietly.
- Judge feed work on eligibility first — approved items and cleared warnings move before revenue does, with fewer confounds.
The auction starts before the auction
Shopping ads have no keywords. The channel reads each item's attributes, builds a picture of what the item is, and decides which queries it plausibly answers. That decision runs before your bid is considered at all.
The chain from an attribute to a conversion
You cannot bid your way into an auction your feed didn't qualify you for.
Each link depends on the one before it. A gap in completeness shows up as missing impressions, which shows up as shallow CTR on the queries you do serve, which lands in the ROAS column looking like a bidding problem. Performance teams usually enter the story at that last step, one stage too late.
Why completeness comes before everything
Validity and completeness are different tests, and most merchants only run the first one. Validity asks whether the feed parses and passes policy. It is binary, and it is where checking usually stops. Completeness asks how many matching paths each product exposes, and a catalogue can pass every error check while half its attributes sit defaulted or absent.
Errors block, warnings limit
Merchant Center diagnostics and Meta's catalogue quality tools both publish warnings alongside errors. Warnings are where performance leaks: the item still serves, in fewer placements or for fewer queries, so nothing looks broken in a revenue report. Nobody investigates an impression that never happened.
Variant feeds make the cost concrete. Without item_group_id, colour, and size, a channel may see one product where twenty exist, or twenty near-duplicates it cannot tell apart. You pay for that ambiguity in match rate, and no bid strategy pays it back.
The three fields that carry the weight
| Field | What it decides | The common failure |
|---|---|---|
| title | Query matching and the headline a shopper reads | Export defaults with SKU-flavoured names, identical across variants |
| google_product_category | Which query and placement pools you compete in | Parked on a broad branch instead of the correct leaf |
| product_type | How finely campaigns can subdivide your catalogue | One thin value, so one target ROAS governs everything |
| image_link | Whether anyone looks, before a word is read | Expired URLs, cached old photos, files too small to survive zoom |
title does two jobs at once
Title is the densest text surface the matcher reads, and it renders as the headline once you have matched. Nothing else in the feed does matching work and creative work at the same time. Google's product data specification allows 150 characters and recommends putting the distinguishing details first, because placements truncate.
# platform export default
Classic Tee, SKU 8841
# brand, product type, variant, differentiator
Arbor Cotton T-Shirt, Unisex, Heather Gray, XL
Stuffing is a separate mistake. The matcher does not need a token twice, and repetition degrades the rendered title for the person reading it.
Category errors are quiet
An item parked in a broad branch instead of the correct leaf competes in the wrong neighbourhood. Matching gets muddier, and category-driven requirements get missed. Apparel is the standard example, because those branches require colour, gender, and age group. Miscategorise an item out of apparel and it fails checks that never visibly applied to it.
product_type is yours to define, and it is the underused one. It accepts full paths like Clothing > Men > Outerwear, which gives campaigns levels to cut on. Feed structure becomes campaign structure, which becomes bidding granularity. Without it, one target ROAS governs hero products and clearance stock with equal authority, and that constraint was set at import time rather than in the campaign.
image_link is the creative nobody briefed
Google's specification calls for images of at least 500 by 500 pixels, with that minimum enforced from 31 January 2027. Clearing the minimum is not the same as being legible: an image that validates can still be unreadable at thumbnail size on a phone, which is the size that decides the click.
The image failures are mechanical before they are aesthetic
- Crawlability — a robots.txt block, an expiring signed URL, or a lapsed CDN token drops the image on items nobody re-checked.
- Caching — channels cache hard, and overwriting a file at the same URL does not force a refresh. Version the filename when you swap a photo.
- Disagreement — a feed image that doesn't match the landing page turns the click into a bounce you paid for.

A first audit pass, ordered by leverage
Work from the diagnostics each channel already publishes, in a fixed order. Errors first because they block traffic outright, then warnings because they limit it, then coverage of the fields above.
- Count items missing google_product_category or parked above a leaf node. Watch apparel especially.
- Pull your hundred best sellers and read their titles against the queries you want. Note the tokens with no home.
- Request every image_link with a plain HTTP client and log anything that is not a 200 with a usable image behind it.
- Group disapprovals by attribute rather than by item. Clusters point at a mechanism, lone rows point at typos.
- Ask how many buckets your product_type paths can actually divide the catalogue into. If the answer is one, bidding granularity was decided upstream of the campaign.
Does feed work guarantee better ROAS?
No, and anyone promising a specific return from feed changes alone is selling certainty the channel does not offer. Feed work widens the top of the chain. It cannot rescue absent demand, uncompetitive pricing, or a landing page that leaks.
ROAS also moves for reasons that have nothing to do with the feed: seasonality, competitor spend, a bid change elsewhere in the account. Leading indicators attribute more cleanly. Approved item count, cleared warnings, and CTR on comparable placements all move before revenue does and answer to fewer confounds.
Common questions
Does product feed quality affect ROAS?
It sets the ceiling that bidding works underneath. Attribute completeness decides which queries an item can match, matching decides impression eligibility, and the feed's title and image decide click-through. Bid strategy allocates within that set. It cannot create eligibility the feed never granted.
Which feed fields have the biggest impact on performance?
Title, google_product_category, product_type, and image_link. Title carries query matching and the visible headline, category decides which auctions you compete in, product_type decides how finely campaigns can subdivide, and the image decides whether anyone clicks.
Should I fix feed warnings or only errors?
Both, starting with errors. Errors block traffic outright and warnings limit it quietly, which makes warnings the more expensive category over time. An item that serves in fewer placements never appears in a revenue report as a problem.
How do I know feed changes worked before revenue moves?
Watch approved item count, warning counts by attribute, and CTR on comparable placements. These respond within a fetch cycle or two and carry far less noise than ROAS, which moves with seasonality, competitor spend, and every other change in the account.
Free tool
Not sure if your feed has errors?
Run your Google Shopping, Meta, or TikTok product feed through our free validator and get a prioritized error report before channels reject your products.
Editorial note
Written by Muhammad Norafif
This article was published on August 27, 2026 and last updated on August 27, 2026. NextFeed builds product feed management software for Shopify, Google Shopping, Meta, and other commerce channels.