Soku AI
All blog posts

We Tested Agent-Ready Product Feeds for Ad Automation — Here's What Actually Works

July 17, 2026 · 12 min read

Soku Team

Soku Team

We Tested Agent-Ready Product Feeds for Ad Automation — Here's What Actually Works

Most writing on agent-ready product feeds is a checklist. Checklists are easy to write and hard to trust, because they never tell you which items actually move the needle and which are theater. So we stopped theorizing and ran the pipeline: we took a representative mid-size catalog, made it agent-ready in stages, pointed ad automation at it, and watched what happened — including the parts that broke.

This is the write-up. What we ran, what actually improved AI-surfaced visibility and catalog-ad performance, and the three failures that cost us placement. It is the first-hand companion to the pillar — for the framework behind it, see Agent-Ready Product Feeds: The 2026 Playbook for Selling to AI Buyers, and for the step-by-step, the hands-on setup guide.

The test setup

We wanted the test to resemble a real store, not a clean-room demo:

  • Catalog: ~2,000 SKUs across apparel, accessories, and home goods — the kind of mixed catalog where identifier hygiene and variant structure actually matter.
  • Starting state: a typical "we have a Google feed" baseline — connectors live, but ~40% of SKUs missing GTINs, thin marketing-copy descriptions, no consistent variant grouping, and a nightly (not real-time) inventory sync.
  • Channels: Google Merchant Center (paid Shopping/PMax + Gemini/AI Mode surfacing), Meta Advantage+, and the OpenAI Merchant Program feed for ChatGPT Shopping.
  • Automation: an AI ad agent running the audit-fix-syndicate-monitor loop and buying the catalog media off the resulting feed.
  • Method: we applied the fixes in stages — identifiers, then fill rate and semantic density, then variant architecture, then real-time freshness — and recorded channel eligibility and early performance after each stage, rather than changing everything at once.
Concept diagram of the test setup: a 2,000-SKU baseline catalog with 40 percent missing GTINs and thin descriptions enters an audit-fix-syndicate-monitor loop run by an AI ad agent, which applies four staged fixes — identifiers, fill and density, variants, freshness — and outputs to three channels: Google Merchant Center feeding paid and AI surfaces, Meta Advantage+, and the OpenAI Merchant Program for ChatGPT Shopping
Concept diagram of the test setup: a 2,000-SKU baseline catalog with 40 percent missing GTINs and thin descriptions enters an audit-fix-syndicate-monitor loop run by an AI ad agent, which applies four staged fixes — identifiers, fill and density, variants, freshness — and outputs to three channels: Google Merchant Center feeding paid and AI surfaces, Meta Advantage+, and the OpenAI Merchant Program for ChatGPT Shopping

What actually worked

Fixing identifiers was the single biggest unlock

Nothing else came close. Bringing GTIN coverage from ~60% to ~96% (and setting identifier_exists: false correctly on the legitimately code-less handmade items) moved roughly a third of the catalog out of the "excluded from trust layers" bucket and into eligibility for Performance Max and Gemini recommendations in one stage. This matches the platform guidance — no GTIN, no trust-layer placement — but seeing a third of the catalog light up from one fix reframed our priorities. If you do one thing, do this one.

Semantic density changed what we ranked for, not just whether we ranked

Rewriting descriptions from marketing prose to fact-dense copy (five-plus machine-parseable facts, units, materials, use cases) did something subtler than lift a single rank: it widened the set of queries we matched. A backpack described as "premium and versatile" matched almost nothing; the same SKU rewritten as "45L, padded 15-inch laptop sleeve, hydration-compatible, 1,200D ripstop" started appearing for specific long-tail shopping intents. The lesson: density is not about ranking higher for your head term, it is about becoming eligible for the hundred specific questions agents actually get asked.

Variant architecture fixed the "which one?" failure

Before we grouped variants under parent records with a consistent item_group_id, agents handled a query like "that jacket in navy, medium" poorly — they either surfaced the wrong variant or dropped the product. After grouping, the single-hop variant resolution worked. This is invisible in a feed-error count but very visible in whether an agent can actually complete the shopper's request.

Sharing one clean feed across paid and AI surfaces compounded

The payoff we did not fully expect: because the paid catalog campaigns and the AI surfaces read the same catalog, every fix paid twice. The identifier cleanup that unlocked Gemini placement also lifted Performance Max eligibility; the density rewrite that widened AI query matching also improved Shopping ad relevance. Running the feed and the campaigns as one loop — rather than a feed tool feeding a separate campaign tool — is what made the fixes compound instead of stack.

Data visualization: a grouped bar chart titled Staged fixes and outcomes, showing three metrics improving across the four fix stages — share of catalog eligible for AI and paid placement rising from 31 to 95 percent, long-tail query matches indexed to a 3.4x increase, and variant-resolution success rising from partial to reliable — on a light background with indigo bars
Data visualization: a grouped bar chart titled Staged fixes and outcomes, showing three metrics improving across the four fix stages — share of catalog eligible for AI and paid placement rising from 31 to 95 percent, long-tail query matches indexed to a 3.4x increase, and variant-resolution success rising from partial to reliable — on a light background with indigo bars

What broke

Honesty is the point of a first-hand test, so here are the three failures.

1. A stale nightly sync poisoned trust before we fixed freshness

In the window before we moved to real-time inventory, a batch of SKUs sold out mid-day and kept getting recommended by agents against a nightly-stale feed. Shoppers hit out-of-stock at the worst possible moment — after the agent had already recommended us. The platform reliability signal reacted exactly as the docs warn: those SKUs stayed down-ranked for a stretch even after we restocked and moved to a 15-minute sync. The freshness penalty is real and it is sticky. If we ran the test again, we would wire real-time sync first, not last.

2. Feed "warnings" we ignored were quietly costing eligibility

We initially triaged only hard errors in Merchant Center Diagnostics and left warnings for later. That was a mistake — several warning-level issues (missing recommended attributes, soft policy flags) were suppressing SKUs from the richer AI-surfaced placements even though they technically "passed." Warnings are not optional polish; treat them as down-rank signals and clear them.

3. One-size feed submission underperformed per-channel tuning

Our first pass pushed a single generic feed everywhere. ChatGPT Shopping, which leans on conversational descriptions, FAQ-style data, and review signals, visibly underperformed until we tailored the feed to what that surface rewards. A generic submission is a real placement tax versus a lightly tailored one — the same clean catalog, tuned per channel, not rebuilt.

Reading the reliability signal in practice

The reliability penalty is the least-understood part of agentic commerce, so it is worth being concrete about how it shows up. You do not get a dashboard labeled "your trust score." What you see are second-order symptoms:

  • A restocked SKU that stays quiet. After the sold-out episode, several SKUs we restocked did not immediately return to the AI-surfaced placements they'd held before. Impressions on those items stayed suppressed for days after the data was correct — the tell that a reliability penalty was still working through.
  • Eligibility that passes but placement that doesn't materialize. A SKU can clear Diagnostics (no errors) and still not surface, because "eligible" and "trusted enough to recommend" are different thresholds. That gap is the reliability signal talking.
  • Recovery that tracks consistency, not a single fix. The SKUs recovered as we demonstrated sustained accurate availability, not the moment we flipped one setting. Consistency over time is what the platforms reward.

The practical implication: instrument for it. We watched restored-SKU impression recovery and out-of-stock recommendation rate as leading indicators, alongside GA4 referral segments for chatgpt.com and perplexity.ai, rather than waiting for revenue to tell us something was wrong. If you cannot see the penalty forming, you cannot sequence around it — which is the whole argument for wiring freshness first.

What we would tell a team starting today

  • Sequence for the trust penalty. Do identifiers and real-time freshness early. They are the two fixes whose absence carries a lasting cost, not just a missed impression.
  • Clear warnings, not just errors. The Diagnostics warnings are eligibility signals in disguise.
  • Rewrite for facts, per surface. Density widens your query surface; light per-channel tuning captures the placements a generic feed leaves on the table.
  • Run it as one loop. The biggest structural win was the feed and the campaigns sharing one source of truth, so fixes compounded across paid and AI channels. This is exactly the loop an AI ad agent runs — and why it beat the tool-assembly approaches in our ranking.

The headline for an ad team: agent-ready is not a content project you finish, it is an operating loop you run. The catalog changes every day, and every channel keeps score. The teams that treat it as continuous automation — audit, fix, syndicate, monitor, repeat — are the ones whose products keep showing up when an agent goes shopping.

Where to go next

FAQ

Are these results guaranteed on my catalog?

No — they are from our staged test on a ~2,000-SKU mixed catalog and are directional. Your starting hygiene, category, and channel mix will change the magnitude. The sequence of what mattered (identifiers and freshness first) is the transferable lesson.

What was the highest-ROI fix?

Identifiers, decisively — bringing GTIN coverage to ~96% moved roughly a third of the catalog into trust-layer eligibility from a single stage.

Why did freshness break things if we fixed it eventually?

Because the platform reliability penalty for out-of-stock mismatches persists after you fix the data. Wiring real-time sync early avoids incurring a penalty you then have to wait out.

Do I need an AI agent to get these results?

No, but the compounding effect — fixes paying off across both paid and AI surfaces at once — came from running the feed and campaigns as one loop. Doing that by hand across three channels at 2,000 SKUs is where most teams stall.

Related Tools

Related Use Cases

Relevant Reads

Run This Pipeline on Your Own Catalog

Soku's AI ads agent does the audit, the fixes, and the campaigns end-to-end. Connect your store and watch the same loop we tested run on your feed.

Get Started for Free