AI crawlers

OAI-AdsBot

Also known as OpenAI OAI-AdsBot

4 min read · updated 2026-09-09

Definition

OAI-AdsBot is OpenAI's crawler for traffic that is neither answering nor training. Checks pages submitted as ChatGPT ads. An ad safety check, not an answer and not training — so it is counted as an OpenAI visit without entering either AI figure.

For the reference card — OAI-AdsBot in the crawler directory.

What OAI-AdsBot is

OpenAI runs four separate crawlers and gives each one its own token, which is more considerate than it first appears: it means you can refuse the training crawl and keep the one that puts you in ChatGPT's answers, using two lines in a robots file. Most operators on this site do not offer that choice.

On this site OAI-AdsBot is counted as other AI traffic, which is the row it appears in on your dashboard. The category matters because it decides which number moves when this crawler visits, and the four are reported separately for exactly that reason.

What its traffic looks like

Irregular and low volume. These fetches happen for a specific reason — an ad check, a preview, an infrastructure request — rather than on a schedule, so there is no pattern worth reading into unless the count is unexpectedly high.

How it is verified

Checked as ip ranges + reverse dns. The user agent has to carry the token, and then the address is compared against what OpenAI publishes — refetched every six hours, so a newly announced range is picked up without a deploy.

A request that matches neither is recorded as unverified rather than as a forgery: a published list can be incomplete, and an accusation needs evidence. Only a reverse DNS record resolving to somebody else produces a spoofed verdict, which is proof rather than the absence of it.

If you block it

Very little. This fetch is neither an answer nor training, so blocking it costs you nothing except the record of OpenAI having visited.

There is not much to decide here. This fetch is neither answering a question nor collecting training material, so it neither brings readers nor takes anything you would miss.

It is worth watching the volume rather than the intent. If a crawler in this category becomes a large share of your requests, that is a bandwidth question, and it is answered with a rate limit rather than a robots rule.

How it differs from OpenAI's other crawlers

OpenAI sends 5 crawlers and gives each its own token, so they can be allowed and refused separately. The tokens differ by a few characters and what the fetch means does not:

ChatGPT-User — ai assistant. Fetches a page while ChatGPT is answering someone's question. ChatGPT-Agent — ai assistant. ChatGPT's agent mode browsing on a person's behalf. OAI-SearchBot — search indexing. Builds the index behind ChatGPT search. GPTBot — ai training. Collects public pages that may improve future OpenAI models.

Confusing two of these is the most common mistake with this operator, and it is expensive in one direction: a rule meant for the training crawler that lands on the search crawler removes you from results without stopping any training.

Questions

Is OAI-AdsBot in my logs really OpenAI?
Not necessarily, and that is why it is worth checking. Any script can send OAI-AdsBot as its user agent. OpenAI publishes the addresses its crawler uses, so the claim can be tested against them — a request from outside those ranges is recorded as unverified rather than accepted.
How do I tell OAI-AdsBot apart from OpenAI's other crawlers?
By the token, and only by the token. OpenAI also sends ChatGPT-User, ChatGPT-Agent, OAI-SearchBot, and the strings differ by a few characters while the jobs differ completely — one may be answering somebody's question while another collects training material. Match on the exact token rather than on the operator's name appearing anywhere in the header, or the four end up counted as one.
Does OAI-AdsBot run JavaScript?
No. It requests the HTML and leaves. That is why a browser-based analytics tag never records these visits: the tag is JavaScript, and nothing runs it. Seeing this crawler at all requires reading it server-side.
Why is OAI-AdsBot counted as Other AI traffic and not something else?
Because that is the job this particular crawler does. OpenAI runs more than one — ChatGPT-User, ChatGPT-Agent, OAI-SearchBot — and they are counted separately because the decisions about them are separate. Filing them together under one operator name would let ordinary indexing look like AI interest, which is the single most misleading thing an AI traffic report can do.
Why does OAI-AdsBot not show up in Google Analytics?
Google Analytics runs in the browser. This crawler never opens a browser — it requests the HTML, reads it, and leaves, so the tracking script is never executed and no event is ever sent. Every browser-based analytics tool has the same blind spot, which is why crawler traffic has to be read from the server side to be seen at all.
What happens if a OAI-AdsBot visit cannot be verified?
It is recorded as unverified, not as a forgery. A published address list can be incomplete or behind — an operator can start using a range before it appears in the file — so a miss is not evidence of anyone pretending. A visit is only marked as spoofed when the address's own reverse DNS record resolves to somebody else, which is proof rather than absence of proof.

See whether OAI-AdsBot is reaching your pages.

AI crawlers take your HTML and leave without running a line of JavaScript, so a browser tag records nothing. TrueStat reads them server-side, checks each address against what the operator publishes, and shows you which pages were fetched — including the ones that returned a 404.