Blocking AI Crawlers Can Get Your ChatGPT Ads Rejected

By The InPromptAds Team 11 min read

Summarise with

Prompt copied

A small crawler robot stopped in front of a padlocked and chained turnstile, representing OAI-AdsBot blocked from a landing page

Last verified 2 August 2026. Version 1.0. Next scheduled review 1 September 2026.

Short answer. Yes, it can. OpenAI lists landing pages that block its user agents or IP addresses as a common cause of ad rejection. The crawler you have to allow is OAI-AdsBot. GPTBot is a different bot with a different job, and blocking GPTBot does not affect your ads at all. Most sites made those two decisions as if they were one decision. They are not.

If you are already staring at a rejection notice, skip ahead to the five layers, or go straight to the full ChatGPT Ads troubleshooting reference for the other eight documented failure modes. If you are earlier than that and still working out what the format is, start with what ChatGPT ads actually are and our ChatGPT Ads overview.

Through 2025 and into 2026 a lot of companies turned on AI scraper blocking. Usually one line in robots.txt, sometimes a managed rule in Cloudflare, occasionally both. The reasoning was reasonable: if a model is going to train on our content, we would rather it did not.

Then some of those same companies started buying ads in ChatGPT. Different team, different quarter, different meeting. Nobody joined the two decisions up, because until recently there was no reason to think they touched each other.

They touch each other. Here is the exact mechanism, from OpenAI's own documentation, and here is the part most of the coverage got wrong.


What OpenAI actually says

Two documents matter. The first is the troubleshooting guide for Ads Manager Beta. Under the heading "My ad was rejected", it says:

Common causes include ad copy or landing pages that do not align with our Ad Policies, or landing pages that block OpenAI user agents or IP addresses.

Those are the Ad policies, which sit alongside the Advertising Terms and the general Usage Policies. This page is about the second half of that sentence.

The second is a help article published for advertisers specifically, called Advertiser Guidance for Allowing OpenAI Web Crawlers. It opens by explaining why the crawl happens at all:

We use crawlers to validate the safety of web pages submitted as ads on ChatGPT. When you submit an ad, OpenAI may visit the landing page to ensure it complies with our policies. We may also use content from the landing page to determine when it's most relevant to show the ad to users.

Read that second sentence again. The crawl is not only a compliance gate. Content from your landing page also feeds the relevance decision that determines when your ad gets shown. A page that returns a 403 to the crawler is not just at risk of rejection. It is also handing the matching system nothing to work with.

That is the same argument we make about landing continuity for human readers, arriving from the other direction: the page has to say what the ad promised, in text, to the machine as well as the person. It is also why prompt-aligned ad copy and the page it lands on cannot be written by two teams who never speak.

On which bot to allow, the article is short and unambiguous: you must allow OAI-AdsBot, and allowing OAI-SearchBot as well is recommended.


Four bots, three separate decisions

OpenAI runs four documented crawlers. They do different jobs and they are controlled independently. This is the table most people needed a year ago.

Agent What it does What blocking it costs you
OAI-AdsBot Visits pages submitted as ad landing pages, to check policy compliance and inform ad relevance. Visits nothing else. Its data is explicitly not used to train foundation models. Your ads. This is the one that gets them rejected.
OAI-SearchBot Crawls the web so pages can appear in ChatGPT's search answers. Organic visibility inside ChatGPT. Opted-out sites are not shown in search answers, though they can still appear as navigational links.
GPTBot Crawls content that may be used to train OpenAI's generative foundation models. Nothing on the ads side. Nothing on the search side either. This is the training decision, and it stands alone.
ChatGPT-User Fetches a page when a user asks ChatGPT to go and look at it. Not an automatic crawler, so robots.txt rules may not apply. On-demand fetches initiated by real users.

The practical consequence is the thing worth taking away. If your position is that you do not want your content training a model, you can hold that position, disallow GPTBot, and still run ChatGPT ads without friction. Refusing training data and refusing ad validation are two different refusals. A single blanket AI-bot block treats them as one, and the cost of that conflation is your ad spend.


The five layers a crawler has to get through

OpenAI's guidance lays out the layers of protection a request has to survive. Most teams check the first one, find it clean, and stop. The blocks that actually bite are usually further down.

  1. robots.txt. OpenAI states its crawlers respect these rules and that if access is disallowed there, crawling stops immediately. Cheapest layer to check, least likely to be the real problem.
  2. Web protection and bot mitigation. Cloudflare, Akamai and similar services. OpenAI notes these systems can mistakenly block legitimate crawlers, typically returning 403 Forbidden, because crawler traffic resembles the automated traffic they exist to stop. This is the layer that catches people, because the rule usually lives in a dashboard nobody on the marketing side can see, and it is evaluated before your repository's robots.txt is ever consulted.
  3. Human verification and anti-bot logic. CAPTCHAs, JavaScript challenges, behavioural analysis, session validation. A crawler is by definition automated, so it fails all of these by design unless it is exempted.
  4. Rate limiting. Large batch uploads can trigger throttling. The signal to look for in your logs is 429 Too Many Requests. OpenAI's suggested workaround is uploading ads in smaller batches over a longer period.
  5. The landing page itself. App store links, deep links, documents, and anything requiring a login, an app, or region-specific access may not give the crawler enough content to validate. Use a directly reachable web page.

One more line from the guidance is worth quoting, because it closes off the shortcut people will reach for:

Do not rely on a manual bypass. Make the landing page crawlable for OAI-AdsBot by fixing robots.txt, WAF, CDN, bot mitigation, authentication, and rate-limiting blocks.


The robots.txt block

This is the minimum. It is taken from the form OpenAI gives in its own guidance.

User-agent: OAI-AdsBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

If you have also decided you want to allow training, add GPTBot. If you have decided you do not, leave it out or disallow it explicitly, and note that this decision is now genuinely separate from the two lines above. Explicit beats silent either way, because a named rule survives the next person who inherits the file.


IP ranges, and a correction

Some security systems will not allowlist by user agent alone, because user agent strings can be forged. For those, OpenAI publishes IP ranges.

This is where the existing coverage has gone stale. Search Engine Journal's article on OAI-AdsBot, published 23 April 2026, states that no equivalent adsbot.json file appears in OpenAI's documentation, and that without one the cross-check available for OpenAI's other three bots is not available for this one. TechWyse repeats the same claim.

That is no longer true. As of today, https://openai.com/adsbot.json resolves. Its creation timestamp is 12 May 2026, roughly three weeks after that article was published, and OpenAI's own advertiser guidance now links to it directly. The file currently contains two IPv4 prefixes:

130.131.229.128/25
20.168.90.128/25

That is 256 addresses in total, which is small enough to allowlist by hand if your firewall requires it. You can check the file yourself at openai.com/adsbot.json in about ten seconds, which is the point. OpenAI's guidance cautions against relying on IP observation alone, since crawler infrastructure changes, and recommends combining user-agent identification, firewall allowlists, robots.txt behaviour and provider-level bot verification. Sensible advice. But the file exists, and any page telling you it does not is out of date.

Two smaller corrections from the same article, both minor, both checkable. It reports OAI-SearchBot and GPTBot at version 1.3; OpenAI's crawler docs currently show 1.4 for both. And it notes that the OAI-AdsBot entry does not say how the bot treats robots.txt. The advertiser guidance published since then answers that directly: the crawlers respect robots.txt, and a disallow stops the crawl immediately.


Cloudflare

Search Engine Journal flagged in April that aggressive bot protection through Cloudflare or Akamai might block OAI-AdsBot and create validation friction. Reasonable prediction at the time. What actually happened is that OpenAI's guidance now states OAI-AdsBot is officially verified and allowlisted by Cloudflare, which maintains a public list of verified bots.

Do not read that as permission to stop checking. Verified bot status is a default, and a default is exactly the kind of thing an aggressive custom rule overrides without telling anyone. It is worth knowing that a Cloudflare site running stock configuration should be fine. It is also worth knowing that this tells you nothing about a Cloudflare site running a hand-written rule from eighteen months ago.


What we cannot tell you

We do not hold an advertiser account. Everything above is read from OpenAI's published documentation and verified against its live files, not from a rejection notice we received ourselves. Three limits follow from that, and they are worth stating plainly rather than burying.

  • OpenAI lists landing page crawler blocks as a common cause of rejection. It does not say what share of rejections they account for, and neither can we.
  • We have not observed how quickly an ad's status updates after crawler access is restored. OpenAI says to re-upload or resubmit if the status does not update on its own, which implies it sometimes does and sometimes does not.
  • The IP file above has two prefixes today. It had none in April. Anyone who hard-codes it and stops checking will be wrong eventually, including us, which is why this page carries a review date.

If you have run into a rejection where crawler access was the cause, we would like to hear what the notice said. It is the one part of this we cannot source ourselves.


Quick answers

Does blocking GPTBot get my ChatGPT ads rejected? No. GPTBot handles training data collection. Ad landing page validation is done by OAI-AdsBot, which is controlled separately, and whose data OpenAI states is not used for training.

Which OpenAI crawler do I have to allow to run ads? OAI-AdsBot. OpenAI also recommends allowing OAI-SearchBot, but AdsBot is the required one.

Does OAI-AdsBot crawl my whole site? No. OpenAI states it only visits pages submitted as ad landing pages.

Will Cloudflare block OAI-AdsBot? Not by default. OpenAI states OAI-AdsBot is officially verified and allowlisted by Cloudflare. A custom bot-mitigation rule can still block it, so verify rather than assume.

Where are OpenAI's ad crawler IP ranges? At https://openai.com/adsbot.json. It currently lists two IPv4 prefixes. Some published articles still say this file does not exist; it was created on 12 May 2026.

My ad was rejected. Where do I start? In the Ads tab of Ads Manager Beta, check the ad's Status. If it reads Not serving, hover over the ad for the reason. Then work down the five layers above before contacting support. The full troubleshooting reference covers the other eight documented failure modes.

Can support just bypass the crawl for me? OpenAI's guidance says not to rely on a manual bypass, and to fix the access problem instead.


Sources

Source Tier Used for
OpenAI Help Center, Advertiser Guidance for Allowing OpenAI Web Crawlers (article 20001243) Confirmed, primary Required and recommended bots, the five protection layers, Cloudflare verification, no manual bypass, IP file references
OpenAI Help Center, Troubleshooting Common Issues (article 20001217) Confirmed, primary Landing page blocks as a listed rejection cause, where to read ad status
OpenAI developer docs, Overview of OpenAI Crawlers Confirmed, primary The four agents, what each does, current version numbers, training-data separation
https://openai.com/adsbot.json, retrieved 2 August 2026 Confirmed, primary Creation date 12 May 2026 and the two IPv4 prefixes
Search Engine Journal, 23 April 2026 Reported The claims corrected in this article

Changelog. Version 1.0, 2 August 2026, first publication.

Field kit

Tools

Site

OpenAI (primary)

Share this

IP

The InPromptAds Team

Writes about AI-native advertising and the shift from search to conversation.

Get placed before the self-serve rush.

We're onboarding a founding cohort of B2B brands for managed ChatGPT ad placements. Early access, limited seats.

Now capturing early access
Contact us Contact us