QuickAds / Enriched Catalog
Google Shopping feed · apparel disapprovals and thin listings

Your Google Shopping feed is a content problem wearing a plumbing costume.

Feed tools are good at moving data. What gets a listing disapproved, or quietly outranked, is usually what is inside the feed: a title that reads like a warehouse label, an attribute that is blank, and one flat product photo doing the work of six. That is a catalog problem, and it is fixable per SKU.

Fields + imagery built together, per SKU
100+ creatives a month
5 to 7 days to delivery
A failed item is not charged

What a Google Shopping feed is, and where it breaks

A Google Shopping feed is a structured file of your products, one row per item, that Google reads to build Shopping listings and Performance Max inventory. The required attributes are dull and unforgiving: id, title, description, link, image_link, availability, price, brand, and for apparel also color, size, age_group and gender.

Apparel breaks in a handful of predictable places:

  • Variants collapse. Ten colorways share one image, so nine listings show the wrong color.
  • image_link points at a lifestyle crop. Google wants the product, filling most of the frame, no promotional text and no watermark.
  • Apparel-specific attributes are blank. Color, size and gender are required for the apparel category, and a blank one is a disapproval, not a warning.
  • Titles are internal names. SKU codes and season references, not the words a shopper types.
  • One image per item. additional_image_link accepts more, and almost nobody fills it.

The first four are field problems. The last two are why the feed underperforms even when it is approved, and they are the ones a feed tool cannot solve, because it has no new content to put in the row.

Enriching the feed, per SKU

We build the fields and the imagery together. Titles and attributes get written per row against the category requirements, and each item gets more than one image: on-model, on-form or flat, from one photograph of the garment you already have. Colorways become variants in the next batch rather than a return trip to a studio, which is what makes filling image_link per variant realistic instead of theoretical.

Every generated frame carries its numbers. Color is measured against your original photograph, so when a listing shows the blue and someone asks whether that is the real blue, the answer is attached to the file. On the documented run, one file moved from ΔE00 9.03 as returned by the engine to 1.29 as delivered. Across the 240 delivered frames of the 2026-08-18 run, the 220 that carried a measurement had a median of 2.87 returned and 0.68 delivered; the rest were withheld rather than guessed.

What this looks like on a real catalog

Up to 60 items by 8 model or form selections in a single job, 100+ creatives a month, 5 to 7 day turnaround with first output usually on day five. A failed item is not charged and a retry bills only the item retried, which matters on a catalog run where the tail is where the failures live.

The feed is one link

A clean feed is not the point. It is the input to Shopping, to catalog ads, and to whatever Performance Max decides to assemble. We cover the chain: creative intelligence reading what is working across 32M+ ads of training data, creative strategy deciding what to make next, production making it, and campaign management running it. Feed tools cover the plumbing. Photography tools cover the frame. Neither covers the other.

Why is my Google Shopping feed disapproved?

Most apparel disapprovals come from four things: a missing required attribute (color, size, age_group or gender are mandatory for apparel), an image_link with promotional text or a watermark, a price or availability mismatch against the landing page, or a variant sharing the wrong image.

How do I optimize a Google Shopping feed for clothing?

Fill the apparel attributes on every variant, write titles the way shoppers search rather than how your PIM names things, give each colorway its own correct image, and use additional_image_link so a listing has more than one view. Field accuracy stops disapprovals. Imagery is what changes performance.

Common questions

What is a Google Shopping feed?
A structured file of your products, one row per item, that Google reads to build Shopping listings. It carries required attributes like id, title, price, availability and image_link, plus apparel-specific ones like color, size and gender.
Do I need a separate feed for Google and Meta?
The formats differ but the source catalog does not. The same enriched fields and images serve Google Shopping and Meta catalog ads.
Can you fix my existing feed or do you rebuild it?
Either. The fields and the imagery are built per SKU against the destination's requirements, so it works as a repair pass on a live feed or as a first build.
How many images can one listing have?
One image_link plus up to ten additional_image_link entries. Most apparel feeds fill one of the eleven.
How long does an enrichment run take?
5 to 7 days to delivery, first output usually day five, up to 60 items in one job. 100+ creatives a month on an ongoing plan.
What does it cost?
From $299 a month self-serve and from $5,000 a month managed. There is also a plan priced at 5% of ad spend with a $5,000 a month minimum on a 6-month term.
The ask

Send the feed that keeps getting flagged.

We will tell you which rows fail on fields, which fail on imagery, and what an enrichment pass on five SKUs looks like on your own product.

Start with five SKUs → Plans start at $299 a month self-serve, $5,000 managed