In short
- The feed is the targeting. Shopping and Performance Max campaigns do not use keyword lists the way Search does. Google matches a query to a product using the text and attributes you submit, so a vague title narrows the queries you can win.
- Titles carry most of the weight. A structured title that front-loads brand, product type and the one or two attributes shoppers actually type will usually beat a longer, prettier marketing title.
- Missing attributes silently cap eligibility. Omitting size, color, material, gender or age group does not just hurt relevance: for apparel and several other categories it can block variant grouping and some ad formats entirely.
- Identifiers decide whether you are in the auction at all. GTIN, brand and MPN tie your offer to a known product. According to Google’s Merchant Center documentation, products that carry a manufacturer-assigned GTIN are expected to submit it, and omissions are a common disapproval cause.
- Feed health is a weekly job, not a launch task. Prices drift, stock changes, images break and policy checks re-run. A fixed weekly routine catches the slow leaks that account reports tend to average away.
How the feed drives matching and bidding
Most retailers meet Shopping ads through the campaign interface, so they assume the campaign is where performance is decided. It is not. The campaign controls budget, bid strategy, geography and which products are in scope. Everything about which queries your product can appear for comes from the product data you submit to Merchant Center.
That is a structural difference from Search campaigns, and it changes where optimization effort pays off. In a Search campaign you add a keyword and you are in that auction. In Shopping you cannot add a keyword at all. You can only make your product data describe the product more completely and more literally, then watch which queries Google decides you are a plausible answer for.
Matching happens on your text, not your intentions
Google’s systems read the title, description, product type, Google product category and the structured attributes, then infer the queries where the offer is relevant. If your title reads “Classic Everyday Comfort Tee”, the system has to guess at product type, material, fit, color and size from fields that may be empty. If it reads “Patagonia Capilene Cool Daily Shirt, Men’s Short Sleeve, Navy, Large”, the mapping to real queries is obvious.
This is why feed work often produces larger swings than bid work on the same account. Bidding changes how aggressively you compete for auctions you already enter. Feed changes alter the set of auctions you enter in the first place. The second effect compounds, because impressions on new query clusters generate the performance data that automated bidding then learns from.
Why Performance Max raises the stakes
Performance Max removed most of the manual levers advertisers used to pull. There are no keywords, limited placement control and heavy reliance on automation. What remains under direct control is the asset group and the product feed. If you run Performance Max for retail, the feed is close to the only precise instrument you still hold, which is a point worth reading alongside the broader picture of paid ads for retailers in 2026 and what still works there.
The same logic now extends past Google. Marketplaces, AI shopping assistants and social commerce surfaces all ingest structured product data, and they all reward specificity for the same reason. Treating the feed as a shared asset rather than a Google-only chore is one of the practical threads running through retail marketing in the age of AI search and social commerce, where machine-readable product detail has become the input that every downstream surface depends on.
The three layers of a working feed
It helps to separate feed work into three layers rather than treating it as one task. The first layer is validity: does the item pass Merchant Center checks and stay approved. The second is completeness: are the attributes that affect eligibility and relevance actually populated. The third is competitiveness: are titles, images and prices strong enough to win the click once you are in the auction.
Teams usually get the first layer right and stop. The approval dashboard turns green, so the feed is declared done. The second and third layers are where most of the unrealized revenue sits, and neither of them generates an error message. If you are still building the foundations, the mechanics in Google Shopping ads explained for retail beginners cover how the campaign side fits around the data side.
Title formulas by category, with examples
The title is the single highest-leverage field in the feed. It is heavily weighted for matching and it is the text shoppers read in the listing. Per Google’s Merchant Center specification, the title field accepts up to 150 characters, though only a much shorter portion is displayed depending on the surface and device.
That gap between what is indexed and what is shown drives the standard approach: front-load the elements that decide the click in roughly the first 60 to 70 characters, then use the remaining space for the qualifying attributes that help matching even when truncated away.
The general pattern
Across categories, the reliable order is brand, then product type, then the distinguishing attributes, then any model or capacity identifier. Shoppers search in that order far more often than they search by marketing name. “Bosch cordless drill 18V” is a real query shape. “PowerFlex Pro Series” is not, unless the brand is strong enough that people search the line by name.
Two rules save the most trouble. First, do not put promotional language in the title: terms like “free shipping”, “best price” or “sale” are disallowed in the title field under Merchant Center policy and are a recurring disapproval cause. Second, do not stuff. Repeating a keyword three times does not improve matching and makes the listing look like spam to the only audience that matters, which is the shopper deciding whether to click.
Category-specific structures
Different categories have different query shapes, so the attribute order should shift to match how people actually search in that vertical. The table below shows the structures that hold up best in practice.
| Category | Title structure | Worked example |
|---|---|---|
| Apparel | Brand + gender + product type + attribute (color, material) + size | Levi’s Men’s 511 Slim Jeans, Stretch Denim, Dark Indigo, 32×32 |
| Consumer electronics | Brand + model number + product type + key spec + color | Sony WH-1000XM5 Wireless Headphones, Noise Cancelling, Black |
| Hardware and tools | Brand + product type + key spec + kit contents | DeWalt Cordless Drill 20V MAX, Brushless, 2 Batteries and Charger |
| Home and furniture | Brand + product type + material + dimensions + color | Ikea Malm Bed Frame, Oak Veneer, Queen 160×200 cm, White Stain |
| Beauty and personal care | Brand + product line + product type + size or volume + variant | CeraVe Hydrating Facial Cleanser, 473 ml, Normal to Dry Skin |
| Consumables and grocery | Brand + product type + flavor or variant + unit count + unit size | Nespresso Vertuo Coffee Capsules, Stormio, 30 Pods, Intensity 8 |
| Auto parts | Brand + part type + part number + fitment (make, model, years) | Bosch Oil Filter 3330, Fits Toyota Camry 2018–2024, 2.5L |
Testing titles without guessing
Title structure is testable. The practical method is to take one coherent product group, rewrite titles to a single new pattern, hold everything else constant and compare impression volume and click-through over a period long enough to clear the learning noise. Impressions move first, because the matching change is immediate. Conversion signal arrives later and with far more variance.
Two cautions. Keep the test group large enough that the result is not a single hero product moving the average, and avoid rewriting titles across the whole catalog on the same day, because you lose the ability to attribute anything. Staged rollouts by product group give you both the lift and the evidence.
What to do with long marketing names
Brands with established product names face a genuine tension: the marketing name builds recognition, the descriptive title wins matching. The usual resolution is to keep the marketing name but demote it. Put brand first, product type second, then the marketing name, then attributes. “Nike Running Shoes Pegasus 41, Men’s, Black, Size 10” keeps the equity and still reads as a running shoe to a system parsing the string.
Attributes that change eligibility and price
Beyond the title, a set of structured attributes decides whether a product is eligible for certain formats, whether variants group correctly and whether your price is read accurately. These are the fields that produce no visible error when left blank, which is exactly why they get skipped.
The eligibility-critical set
For apparel and accessories, Google’s product data specification treats color, size, gender and age_group as required in most target markets, and material or pattern as recommended. Submitting them is not only about relevance. Without them, variants of the same garment may fail to group, so your listings compete against each other instead of presenting as one product with options.
Across all categories, availability, price, condition and shipping carry direct commercial consequences. An availability value that lags real stock produces clicks on products you cannot sell, which wastes budget and invites a landing-page mismatch flag. Shipping configured at the account level rather than the item level is fine for flat rates but misreports landed cost the moment you sell anything heavy or oversized.
| Attribute | What it actually controls | Cost of leaving it blank |
|---|---|---|
gtin |
Links your offer to the known product record | Common disapproval cause; weaker matching on branded queries |
brand |
Branded query matching and listing trust | Loses most brand-name search demand |
google_product_category |
Taxonomy placement and some format eligibility | System guesses; miscategorization suppresses impressions |
product_type |
Your own taxonomy for campaign segmentation | No bidding or reporting granularity by category |
color, size |
Variant grouping and attribute-level queries | Apparel disapprovals; self-competing duplicate listings |
item_group_id |
Groups variants under one parent product | Variants shown as unrelated items, splitting signal |
sale_price, sale_price_effective_date |
Strikethrough price display and promotion windows | Discount never shows as a discount in the listing |
shipping_weight, shipping |
Accurate landed cost in the listing | Under or overstated delivery cost; post-click abandonment |
availability_date |
Preorder and backorder handling | Preorders read as in-stock, triggering mismatch flags |
custom_label_0 to 4 |
Margin, seasonality and velocity segmentation | No way to bid differently on high-margin inventory |
Custom labels are a bidding tool, not a nice-to-have
The five custom label fields have no effect on matching whatsoever. They exist so you can segment the catalog along dimensions Google cannot see: gross margin band, stock age, seasonality, bestseller status, clearance flag. That segmentation is what lets you treat a 45 percent margin product differently from a 6 percent margin product inside the same campaign.
A workable default is to use label 0 for margin band, label 1 for seasonality, label 2 for stock velocity, label 3 for clearance status and label 4 for whatever the current test needs. Populate them from the same nightly export that builds the feed, so they stay current without manual work.
Google product category versus your product type
These two fields get confused constantly. google_product_category is Google’s own taxonomy and it influences how the system understands the item. product_type is a free-text field holding your internal hierarchy, and its value is operational: it is the cleanest way to subdivide campaigns and read reports by category.
The practical advice is to populate both, map the Google category to the deepest level that is genuinely accurate rather than guessing at precision, and keep product_type consistent with the site’s own navigation so that reporting lines up with how the merchandising team already thinks.
GTIN, MPN and brand: getting identifiers right
Unique product identifiers are the plumbing that connects your listing to a product the wider system already knows about. When they are correct, Google can associate your offer with reviews, specifications and competing offers for the same item. When they are wrong, you get disapprovals that are tedious to trace.
What each identifier is for
A GTIN is the globally unique number assigned by the manufacturer through GS1, the standards body that administers the system. In practice it is the UPC in North America, the EAN in Europe and the JAN in Japan, all of which are GTIN formats. The authoritative reference is GS1’s own GTIN documentation, which is the place to confirm format and check-digit rules rather than relying on a vendor spreadsheet.
The MPN is the manufacturer’s part number and is used where no GTIN exists. Brand is the recognized brand name, not your store name. The combination rule, as documented by Google, is that products with an assigned GTIN should submit it, products from a brand without GTINs should submit brand and MPN, and genuinely unbranded or custom items may be exempt.
The failure modes that actually occur
Four problems cover most identifier disapprovals. The first is a GTIN that fails its check digit, usually because a spreadsheet stripped a leading zero or converted the number to scientific notation. The second is a reused GTIN applied across a whole variant family, when GTINs are per-variant. The third is the store name submitted in the brand field for products the store does not manufacture. The fourth is a supplier-provided GTIN that belongs to a different but similar product, which is common in distribution catalogs.
Handling exemptions honestly
There is a legitimate path for products with no manufacturer identifier: handmade goods, custom-configured items, store-exclusive bundles and some private-label products. The identifier_exists attribute exists for exactly this. The failure here is overuse. Setting the exemption across the catalog to clear disapprovals works for a while and then degrades matching on precisely the branded queries that convert best, because nothing ties the offer to a known product.
Images, promotions and supplemental feeds
Once a product is eligible and well described, the listing competes visually and on price. Image quality and promotion data decide a meaningful share of click-through, and supplemental feeds are the mechanism for improving data you do not fully control.
Image rules and the common breakages
Google’s image requirements are technical and specific, and they change, so the specification in Merchant Center Help is the figure of record rather than any summary including this one. As of October 2026 the documented requirements include a minimum resolution that is higher for apparel than for other categories, a prohibition on promotional overlays, watermarks and borders, and a requirement that the image show the actual product rather than a placeholder or illustration.
The operational failures are more mundane than the policy ones. Images hosted behind a CDN rule that blocks non-browser user agents cannot be crawled. Images served over HTTP when the feed declares HTTPS fail. Images that return a 200 status with a “coming soon” graphic pass the crawl and fail the policy check. Each of these produces a different error, and all three are invisible on your own site because your browser is allowed through.
Additional images earn their place
The additional_image_link attribute accepts multiple supporting images, and populating it is one of the lower-effort improvements available. Different surfaces draw on different images, and in categories where fit, scale or texture matter, a second and third angle changes the click decision. The cost is close to zero if the images already exist in the product information system.
Promotions and sale price mechanics
A discount that lives only on the landing page is invisible in the ad. To show a strikethrough price, the feed needs price at the regular value and sale_price at the discounted value, with sale_price_effective_date bounding the window. Google also applies its own conditions before showing a strikethrough, including a documented requirement that the regular price was genuinely charged for a qualifying period, so a permanent “sale” will not display as one.
Promotion feeds are a separate mechanism for coupon-style offers and they have their own eligibility rules by country. The regulatory layer around how retailers present prices and listings is also shifting in some markets, which is a live example of why price and listing data should be treated as a compliance surface as well as a marketing one. The European case covered in Google dropping free product listings in Europe under the DMA deadline shows how quickly the rules governing a shopping surface can move.
Supplemental feeds solve the data you cannot fix upstream
A supplemental feed overrides or adds fields to items in the primary feed, matched on item ID. It is the right tool in three situations: your ecommerce platform cannot output a field, the upstream data is owned by a team or supplier on a slow change cycle, or you want to test a title pattern without touching the production feed.
Two practices keep supplemental feeds from becoming technical debt. Document what each one overrides, because a field silently overwritten by a forgotten supplemental feed is a genuinely difficult bug to find. And treat supplemental feeds that persist beyond a quarter as a signal that the fix belongs in the primary data source instead.
Diagnosing disapprovals and suspensions
Disapprovals exist on a spectrum from trivial to account-threatening, and the diagnostic approach differs sharply along it. The mistake most teams make is treating the Merchant Center diagnostics page as a to-do list sorted by position rather than by revenue exposure.
Triage by impact, not by error count
An error affecting 4,000 low-margin accessories matters less than an error affecting 40 products that generate a third of your Shopping revenue. Before fixing anything, join the disapproval export against product-level revenue from the last 90 days and sort by exposure. This usually reverses the order the dashboard suggests.
The second triage dimension is whether the error is systemic or per-item. A systemic error (a mapping bug, a missing field across a whole category, a broken image path pattern) is one fix for thousands of items. A per-item error (a wrong GTIN on a single SKU) is a data-entry correction. Mixing the two in one work queue is how feed cleanups stall.
| Symptom | Likely cause | First check |
|---|---|---|
| Price mismatch | Feed price differs from landing page or currency differs | Load the landing page in a fresh session with no stored discounts applied |
| Availability mismatch | Feed refresh slower than real stock movement | Feed fetch frequency and the timestamp of the last successful fetch |
| Image cannot be crawled | CDN blocking the crawler or HTTP against an HTTPS feed | Request the image URL with a non-browser user agent |
| Invalid GTIN | Check digit failure, usually a stripped leading zero | Validate the GTIN column format at the point of export |
| Missing required attribute | Apparel fields absent in a target market | Whether the gap follows a category or a supplier |
| Promotional text in title | Marketing copy injected into the title field | Scan titles for disallowed terms before upload, not after |
| Landing page not working | Soft 404, geo-redirect or interstitial on the product URL | Fetch the URL from the target country without following redirects |
| Misrepresentation warning | Unclear returns, contact or pricing information on site | Policy pages against the documented requirements, urgently |
Soft 404s and geo-redirects are the stealth category
A landing page that returns HTTP 200 while displaying “product not found” is the single most under-detected feed problem, because every automated status check passes. The same applies to geo-redirects: a US shopper clicking an ad may be bounced to a regional storefront where the product does not exist. Both require fetching the URL the way the crawler does, from the target country, and inspecting the body rather than the status code.
Account-level suspension is a different problem
Item-level disapprovals remove products. Account-level suspension removes everything, and the most common trigger is the misrepresentation policy rather than any product data error. Google’s documentation points at returns and refund policy clarity, business contact information, pricing transparency and consistency between the site and the submitted data.
If a misrepresentation warning appears, the correct response is to treat it as the highest-priority item in the account regardless of how few products it names. Warnings of this type typically carry a grace period before enforcement, and the fix is almost always on the website rather than in the feed.
Appeals: evidence, not explanation
When an appeal is warranted, the determining factor is whether the underlying condition is verifiably fixed at the moment of review, not how the situation is described. Make the change, confirm it is live from an external vantage point, let the crawler re-fetch, then appeal. Appealing before the fix propagates produces a second rejection and burns time.
A weekly feed health routine
Feeds decay. Prices change, suppliers rename products, images get reorganized, policies update and a plugin release quietly alters an export. A fixed routine turns feed work from firefighting into maintenance, and it takes well under an hour a week for a mid-sized catalog.
The weekly pass
- Confirm the fetch succeeded. Check the last successful fetch timestamp and the item count against the previous week. A silent fetch failure is the most expensive single event in feed operations, and a sudden item-count drop names the cause.
- Read the delta, not the total. Compare this week’s disapproval count by error type against last week’s. New error types matter far more than persistent ones, because they point at something that just changed.
- Spot-check five landing pages. Pick the five highest-revenue products and load each one as an outside visitor. This is the cheapest available defense against soft 404s and price mismatches.
- Verify price and stock parity. Sample 20 items and compare feed values against the live site. Discrepancy rates above a few percent indicate a sync timing problem rather than bad data.
- Review the zero-impression segment. Products that are approved and getting no impressions at all are the clearest signal of a data problem that generates no error, usually a title or category issue.
The monthly pass
Once a month, go a layer deeper. Audit identifier coverage as a percentage of the catalog and check whether identifier_exists usage has crept upward. Review the top 50 titles against the structure you intended, because title discipline erodes as new products are added by people who never saw the convention. Re-check Google product category mappings for any category where the product mix has shifted.
Ownership is the part that usually fails
Feed quality sits between merchandising, which owns product data, engineering, which owns the export, and marketing, which feels the consequences. Without a named owner the routine lapses within two months. The practical fix is to assign the weekly pass to one person with authority to file tickets against both the catalog and the export, and to put the five numbers from that pass into whatever report leadership already reads.
That reporting discipline is the same habit that makes any paid channel measurable. The attribution challenges described in the Meta retail ads playbook for the post-iOS privacy shift apply here too: when the underlying data is incomplete, the channel looks worse than it is, and the diagnosis lands on bids instead of inputs. For the wider strategic frame, the retail marketing guide sets out how feed quality now feeds every discovery surface rather than one ad product.
What this article is and is not
This is general information about how product feeds work, written as of October 2026. Platform specifications, policy rules, character limits, image requirements and attribute requirements by country are set by Google and change without notice, and the figures described here are summaries rather than the authoritative text.
Before making a change that affects a live account, confirm the current requirement in Google’s own Merchant Center Help documentation, which is the figure of record for every specification mentioned above. Where a question touches advertising law, consumer pricing rules or regulatory obligations in a specific market, that is a matter for qualified professional advice in that jurisdiction rather than a marketing article.
FAQ on product feeds
How long does a feed change take to show up in ads?
The item data updates when Google next fetches and processes the feed, which for a scheduled daily fetch means within about a day. Performance effects take longer to read, because automated bidding needs new impression and conversion data before the change shows up in results. Allow one to two weeks before judging a title or attribute test.
Is a longer title always better for matching?
No. Length helps only if the added words are attributes shoppers actually search for. Padding a title with synonyms or repeated terms does not expand matching and reduces readability in the listing. The useful test is whether each element in the title appears in real queries for that category.
What should I do when a supplier cannot provide GTINs?
Submit brand and MPN, which Google documents as the alternative for products from a brand that does not assign GTINs. Use the identifier_exists exemption only for genuinely unidentified products such as handmade or custom items. Applying the exemption broadly to clear disapprovals weakens matching on branded queries over time.
Why are approved products getting zero impressions?
Approval only means the item passed policy checks. Zero impressions on an approved item usually points to a title that gives the system nothing to match, a wrong Google product category, a price far outside the competitive range, or a campaign-side exclusion. Check the data first, because it costs nothing to inspect.
Do I need separate feeds for each country?
Not necessarily. A single primary feed can target multiple countries where currency, language and attribute requirements align, and country-specific overrides can be handled through supplemental feeds or feed rules. Separate feeds become worthwhile when pricing, availability or required attributes diverge substantially by market.
How often should the feed be fetched?
Match the fetch frequency to how fast your prices and stock move. Daily is adequate for stable catalogs. Retailers with frequent repricing or tight inventory should use a content API or scheduled fetches multiple times a day, because availability and price mismatches are among the fastest-accumulating error types.
Does the product description affect matching?
It carries some weight, well below the title, and it is worth writing properly rather than leaving the field to a truncated marketing blurb. Describe the product factually, include attributes that did not fit in the title, and avoid promotional language, which is restricted in this field as it is in the title.
Should variants be separate items or grouped?
Submit each variant as its own item with its own GTIN and its own size and color values, then tie them together with a shared item_group_id. That combination lets each variant match specific queries while presenting to the shopper as one product with options, rather than as several listings competing with each other.
What is the fastest way to find a systemic feed problem?
Export the disapproval list, then group it by category, supplier and error type. A systemic problem shows up as a concentration in one of those groupings, which turns thousands of item errors into a single mapping or export fix. Per-item errors scatter across groups and belong in a separate, lower-priority queue.