guide · 4 min read
What makes a product catalog crawlable enough for a feed campaign?
A documentation-derived readiness guide for product data, image hosts, landing pages, robots, WAF/CDN, authentication, rate limits, and feed reporting.
Published · Updated
A product feed is only as ready as the least reachable URL in it.
That sounds obvious. It is not how most feed launches fail.
The product data can be correct while the image host returns a 403. The landing page can work in Chrome while OAI-AdsBot hits a JavaScript challenge. The robots file can allow the path while the WAF blocks the request. OpenAI’s current advertiser guidance treats these as separate layers.
This is a documentation-derived guide. I did not upload a feed, spend money, or test a live catalog.
The readiness decision
Before a feed campaign, answer two different questions:
- Can OpenAI process the product data and images?
- Can OpenAI validate the destination a buyer will reach?
If either answer is unclear, the campaign is not ready for a confident launch decision.
OpenAI says OAI-AdsBot is required for ChatGPT Ads landing-page validation. It recommends allowing OAI-SearchBot too. For product feeds, it specifically says OAI-SearchBot must be able to crawl product image URLs. That means the image CDN is part of ad readiness, even if the product page itself loads perfectly.
Check the layers in this order
| Layer | What to check | Evidence to keep |
|---|---|---|
| Product record | Product identity, price, availability, variant, and destination match | Feed row plus current product page |
| Image host | Image URL returns successfully to OAI-SearchBot | Response status and image-host log |
| robots.txt | The relevant paths are not disallowed | Dated robots response |
| WAF/CDN | Bot mitigation does not turn the request into a 403 | Security or edge log from your own team |
| Anti-bot logic | No CAPTCHA, JavaScript challenge, or human session requirement blocks review | Response path and page behavior |
| Authentication and geo | The destination works without a buyer login or unsupported region gate | Redirect and status evidence |
| Rate limiting | Batch uploads and crawler visits do not trigger 429s | Request and rate-limit logs |
| Feed reporting | Product count is confirmed during ad-group setup | Ads Manager setup record |
Do not “solve” a blocked crawler by weakening the whole site. The right fix is a scoped allow rule or a reachable public destination, owned by the team that controls that layer. Do not bypass a security control you do not own.
Product data is not enough
The product page and feed need to agree on the facts a buyer would use.
At minimum, check:
- the product or variant identity;
- current price and currency;
- availability;
- image URL;
- destination URL;
- shipping or return information where relevant; and
- the page a buyer actually receives after redirects.
A feed that says “in stock” while the landing page says “unavailable” is not a small copy mismatch. It makes the campaign harder to interpret and the product harder to trust.
For a catalog with frequent changes, save a dated sample of feed rows and their pages. You do not need to retain customer data. You do need enough product-state evidence to tell whether a later review problem came from the feed, the page, or the edge layer.
The Products tab is not your inventory system
OpenAI’s current Measure Results documentation says the Products tab for product-feed campaigns is an insights-backed reporting view, not a complete feed inventory. Products appear after an active campaign delivers and generates reporting data. The documentation points advertisers to the product count during ad-group setup to confirm feed readiness and eligibility.
That gives you two separate checkpoints:
- Before delivery: use the ad-group setup count to confirm that the feed was accepted as eligible.
- After delivery: use Products reporting to inspect what generated campaign data.
Do not treat an empty or partial Products tab as proof that the source feed contained no products. And do not treat a feed count as proof that every product page is crawlable, current, or converting.
What to do when review fails
Start with the response path, not the creative.
Ask engineering or security to check:
- Did OAI-AdsBot receive a successful HTTP response?
- Did robots.txt allow the landing path?
- Did the WAF, CDN, CAPTCHA, auth, geo rule, or rate limiter intervene?
- Can OAI-SearchBot reach every product image host?
- Does the destination expose enough public product content?
- After the fix, does the ad or feed need to be re-uploaded or resubmitted?
OpenAI says not to rely on a manual support bypass. Fix the access problem and resubmit when needed. For bulk uploads, smaller batches can help you identify rate-limit problems without changing the entire catalog at once.
The founder conclusion
A feed campaign fits a catalog with public, stable product pages; reachable images; consistent price and availability; and a team willing to inspect the edge path.
It is a poor first move when the catalog depends on login, app-only destinations, regional redirects, or rapidly changing facts that nobody owns.
The practical launch gate is not “the CSV exported.” It is “the product, image, crawler, destination, and reporting layers agree.”
