{
  "entity_a": {
    "slug": "googleother",
    "name": "GoogleOther"
  },
  "entity_b": {
    "slug": "oai-adsbot",
    "name": "OAI-AdsBot"
  },
  "fields_documented": 11,
  "claims": 17,
  "last_verified": "2026-09-15",
  "fields": [
    {
      "field": "honours_crawl_delay",
      "value_a": "no",
      "value_b": "not_documented",
      "claim_id_a": 72,
      "claim_id_b": 87,
      "same": false
    },
    {
      "field": "observed_fetches_robots_txt",
      "value_a": "no",
      "value_b": null,
      "claim_id_a": 147,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "observed_requested_mcp_endpoint",
      "value_a": "yes",
      "value_b": null,
      "claim_id_a": 146,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "publishes_ip_list",
      "value_a": "yes",
      "value_b": "yes",
      "claim_id_a": 73,
      "claim_id_b": 88,
      "same": true
    },
    {
      "field": "purpose_documented",
      "value_a": "mixed",
      "value_b": "ads",
      "claim_id_a": 75,
      "claim_id_b": 90,
      "same": false
    },
    {
      "field": "respects_robots_txt",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 71,
      "claim_id_b": 86,
      "same": false
    },
    {
      "field": "robots_txt_token",
      "value_a": "GoogleOther",
      "value_b": null,
      "claim_id_a": 77,
      "claim_id_b": null,
      "same": false
    },
    {
      "field": "scope_of_crawling",
      "value_a": null,
      "value_b": "limited to submitted ad landing pages",
      "claim_id_a": null,
      "claim_id_b": 93,
      "same": false
    },
    {
      "field": "separate_search_and_training_tokens",
      "value_a": "not_documented",
      "value_b": "not_documented",
      "claim_id_a": 76,
      "claim_id_b": 91,
      "same": true
    },
    {
      "field": "user_agent_string_full",
      "value_a": null,
      "value_b": "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot",
      "claim_id_a": null,
      "claim_id_b": 92,
      "same": false
    },
    {
      "field": "verifiable_by_rdns",
      "value_a": "yes",
      "value_b": "not_documented",
      "claim_id_a": 74,
      "claim_id_b": 89,
      "same": false
    }
  ],
  "differences": [
    {
      "field": "honours_crawl_delay",
      "statement_a": "Google does not support the robots.txt Crawl-delay directive for GoogleOther.",
      "statement_b": "OpenAI does not publish whether OAI-AdsBot honours the robots.txt Crawl-delay directive.",
      "claim_id_a": 72,
      "claim_id_b": 87
    },
    {
      "field": "observed_fetches_robots_txt",
      "statement_a": "GoogleOther made 93 requests to Rattlesnakes By Mail between 2026-09-13T20:00Z and 2026-09-15T09:00Z and fetched /robots.txt on none of those requests. GoogleOther's first request to Rattlesnakes By Mail was the home page at 2026-09-14T12:03:30Z.",
      "statement_b": null,
      "claim_id_a": 147,
      "claim_id_b": null
    },
    {
      "field": "observed_requested_mcp_endpoint",
      "statement_a": "GoogleOther requested the /mcp endpoint of Rattlesnakes By Mail twice between 2026-09-13T20:00Z and 2026-09-15T09:00Z, at 2026-09-14T15:07:30Z and at 2026-09-14T18:27:49Z. Rattlesnakes By Mail returned status 405 to both GoogleOther requests for /mcp.",
      "statement_b": null,
      "claim_id_a": 146,
      "claim_id_b": null
    },
    {
      "field": "purpose_documented",
      "statement_a": "GoogleOther is a generic crawler that Google product teams use to fetch publicly accessible content from sites.",
      "statement_b": "OAI-AdsBot visits landing pages submitted as ads on ChatGPT to check compliance with OpenAI policies.",
      "claim_id_a": 75,
      "claim_id_b": 90
    },
    {
      "field": "respects_robots_txt",
      "statement_a": "GoogleOther obeys robots.txt rules when crawling automatically.",
      "statement_b": "OpenAI does not publish whether OAI-AdsBot honours robots.txt disallow rules.",
      "claim_id_a": 71,
      "claim_id_b": 86
    },
    {
      "field": "robots_txt_token",
      "statement_a": "The robots.txt token for GoogleOther is GoogleOther.",
      "statement_b": null,
      "claim_id_a": 77,
      "claim_id_b": null
    },
    {
      "field": "scope_of_crawling",
      "statement_a": null,
      "statement_b": "OAI-AdsBot visits only pages submitted as ads on ChatGPT.",
      "claim_id_a": null,
      "claim_id_b": 93
    },
    {
      "field": "user_agent_string_full",
      "statement_a": null,
      "statement_b": "OAI-AdsBot sends the user agent string Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; OAI-AdsBot/1.0; +https://openai.com/adsbot.",
      "claim_id_a": null,
      "claim_id_b": 92
    },
    {
      "field": "verifiable_by_rdns",
      "statement_a": "GoogleOther requests are verifiable by reverse DNS lookup resolving to googlebot.com, google.com, or googleusercontent.com.",
      "statement_b": "OpenAI does not publish a reverse-DNS verification method for OAI-AdsBot.",
      "claim_id_a": 74,
      "claim_id_b": 89
    }
  ],
  "sources": [
    "https://developers.google.com/crawling/docs/crawlers-fetchers/verifying-googlebot",
    "https://developers.google.com/search/blog/2019/07/a-note-on-unsupported-rules-in-robotstxt",
    "https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers",
    "https://developers.google.com/static/crawling/ipranges/common-crawlers.json",
    "https://developers.openai.com/api/docs/bots",
    "https://openai.com/adsbot.json",
    "https://rattlesnakesbymail.com/observed/googleother"
  ]
}