What a $0 test product taught me about Shopping feeds

What a $0 test product taught me about Shopping feeds

The most useful thing I have added to a Merchant Center feed in years cost nothing and was never meant to sell. It was a single product priced at zero, listed so that somebody could walk the entire path from impression to confirmed order without a card ever being charged.

The reason for it was narrow. A client’s conversion tracking disagreed with their order data, the gap was large enough to matter, and every attempt to diagnose it from reports had failed because reports only show what was recorded. A $0 item makes the whole pipeline walkable: click the ad, add to cart, check out, land on the confirmation page, and then compare what fired against what the shop actually wrote down. It is the difference between reading about a leak and pouring water through the pipe.

The tracking was fine

The tracking turned out to be almost correct. What was wrong sat one layer up, in the feed, and I would never have found it by looking at tracking at all.

Walking the path meant looking at the product exactly as a shopper sees it, which is something I had somehow avoided doing for years while optimising the campaigns above it. The listing was truncated mid-sentence. Google’s specification allows a title of up to 150 characters, and the store was generating titles that ran past it by concatenating attributes in an order that put the useful words last. Nothing was disapproved. Nothing was reported. The title simply stopped.

Google’s product data specification allows a description of up to 5000 characters. The feed I was auditing was using about eighty of them.

Silence is the default failure mode

That is the part worth generalising. A feed does not fail loudly. It underperforms quietly, and every diagnostic instinct built on campaign management points somewhere else, because campaign reports describe what happened to the impressions that were served rather than the ones that were never eligible.

Character limits most feeds never approach

Character limits most feeds never approachBar chart of Google product data specification character limits: description 5000, ads redirect 2000, product type 750.Description5,000Ads redirect URL2,000Product type750

The feed I audited was using about eighty of the five thousand characters available. Source: Google product data specification.

The same pattern showed up across the rest of the feed once I knew to look:

  • Images. The specification calls for at least 500 x 500 pixels, with enforcement starting January 31, 2027. Plenty of stores are still shipping smaller assets that work today and will stop working on a date nobody has diarised.
  • Additional images. Up to 10 are allowed per product. Most catalogues I see submit one, which means competing on a surface that is visual with a single frame.
  • Custom labels. Up to 5 per product, and they are the only mechanism for segmenting bidding by anything the business cares about, like margin or stock depth. Unused in most accounts I inherit.
  • Product highlights. Between 2 and 100 are permitted, and they render in places a description never reaches.

None of those are secrets. They are in the public specification, which anyone can read in an afternoon. They stay unfixed because feed work is nobody’s job: it sits between the developer who owns the store, the agency that owns the campaigns, and the person who owns the product data, and all three assume one of the others is handling it.

Per-product slots that sit empty

Per-product slots that sit emptyBar chart showing Google allows up to 100 product details, 10 additional images and 5 custom labels per product.Product details100Additional images10Custom labels5

Every one of these is free to use and unused in most catalogues I inherit. Source: Google product data specification.

How to run it without breaking anything

The mechanics matter, because a free product in a live catalogue can cause real damage if it is set up carelessly. What has worked for me: give it a title that is obviously internal so no shopper mistakes it for an offer, set stock to a single unit so it cannot be ordered repeatedly, exclude it from every campaign with a custom label before it goes live rather than after, and put a calendar reminder to delete it. Then buy it, at full price of zero, on a phone, on mobile data rather than office wifi, because that is the path most people actually take and it is the one least likely to be cached or pre-warmed by anything. Mobile runs at 52.57% of worldwide traffic against 45.93% for desktop, so walking it on a phone covers the majority case rather than an edge case, and a title that truncates does its worst damage on the narrower screen.

The order that comes through is the artefact. Compare it line by line against what the analytics property recorded, what the ad platform recorded, and what the shop’s own admin shows. Three numbers that should be identical, and any disagreement between them is a real defect rather than a rounding difference.

What I got wrong for a long time

I spent years treating the feed as plumbing and the campaign as the craft. That is backwards for Shopping. Bidding decides how much to pay for a query. The feed decides which queries an item can appear for at all, and what it looks like when it does. Optimising the bid on inventory that cannot be matched properly is expensive precision applied to the wrong question.

The honest reason I got it wrong is that campaign work is more satisfying. It has dashboards, immediate feedback, and a sense of skill being exercised. Rewriting 4,000 product titles has none of that, and there is no moment where it feels clever.

The part I am still unsure about

I do not know how far this generalises. On one e-commerce catalogue with a few thousand items, feed quality dominated everything I could do above it. On a very small catalogue, where every product is hand-written anyway, the ceiling is probably somewhere else entirely, and someone selling twelve products does not have a feed problem.

I am also aware the $0 item is not free of risk. It sits in a live catalogue, it can be found, and it needs removing afterwards or it becomes the strangest thing in the shop. It has to be excluded from campaigns, or a bidding algorithm will notice a product with an infinite conversion rate and behave accordingly. That second failure would be entirely self-inflicted and would look, in the reports, like a wild success.

What I keep from it is a habit rather than a technique. Before touching a bid, walk the path a buyer walks, all the way to the confirmation page, looking at what they see rather than at what was recorded. Every time I have done that since, the interesting problem was somewhere I was not measuring, and it was usually visible in plain sight to anyone who had bothered to look at the product instead of the chart.

Sources

  1. Google Merchant Center product data specification
  2. StatCounter Global Stats