AI Crawl Control の分析は、Cloudflare の GraphQL Analytics API で利用できます。ダッシュボードと同じデータをクエリし、カスタムレポートの作成、監視システムとの連携、分析用のエクスポートができます。クエリは GraphQL API Explorer ↗ で試すか、Chrome DevTools でダッシュボードが使うクエリをそのまま取得します。
| フィルタ | 説明 | 利用可否 |
|---|---|---|
requestSource: "eyeball" |
実際のクライアントリクエストのみ。Cloudflare 内部トラフィックは除外します。 | すべてのプラン |
userAgent_like: "%...%" |
ユーザーエージェント でフィルタします。なりすましが可能です。 | すべてのプラン |
edgeResponseStatus_geq / _lt |
HTTP ステータスコードの範囲でフィルタします。 | すべてのプラン |
clientRequestPath_like: "%...%" |
URL パスのパターンでフィルタします。 | すべてのプラン |
clientRefererHost_like: "%...%" |
リファラードメイン でフィルタします。 | 有料プランのみ |
botDetectionIds_hasany: [...] |
検出 ID でフィルタします。Cloudflare が確実に検証します。 | Bot Management |
検出 ID で AI クローラーリクエストの推移を取得する
{
viewer {
zones(filter: { zoneTag: "<ZONE_ID>" }) {
httpRequestsAdaptiveGroups(
filter: {
datetime_geq: "2027-01-01T00:00:00Z"
datetime_leq: "2027-01-02T00:00:00Z"
requestSource: "eyeball"
# 123815556 = GPTBot, 132995013 = ChatGPT-User, 126255384 = OAI-SearchBot
botDetectionIds_hasany: [123815556, 132995013, 126255384]
}
limit: 5000
) {
count
dimensions {
datetimeHour
botDetectionIds
clientRequestHTTPHost
}
sum {
edgeResponseBytes
}
}
}
}
}ユーザーエージェントで AI クローラーリクエストの推移を取得する
{
viewer {
zones(filter: { zoneTag: "<ZONE_ID>" }) {
httpRequestsAdaptiveGroups(
filter: {
datetime_geq: "2027-01-01T00:00:00Z"
datetime_leq: "2027-01-02T00:00:00Z"
requestSource: "eyeball"
userAgent_like: "%GPTBot%"
}
limit: 5000
) {
count
dimensions {
datetimeHour
userAgent
clientRequestHTTPHost
}
sum {
edgeResponseBytes
}
}
}
}
}クロールされたパスの上位を取得する
{
viewer {
zones(filter: { zoneTag: "<ZONE_ID>" }) {
httpRequestsAdaptiveGroups(
filter: {
datetime_geq: "2027-01-01T00:00:00Z"
datetime_leq: "2027-01-02T00:00:00Z"
requestSource: "eyeball"
edgeResponseStatus_geq: 200
edgeResponseStatus_lt: 400
userAgent_like: "%GPTBot%"
}
limit: 5000
orderBy: [count_DESC]
) {
count
dimensions {
clientRequestPath
clientRequestHTTPHost
}
}
}
}
}AI リファラートラフィックを取得する
{
viewer {
zones(filter: { zoneTag: "<ZONE_ID>" }) {
httpRequestsAdaptiveGroups(
filter: {
datetime_geq: "2027-01-01T00:00:00Z"
datetime_leq: "2027-01-02T00:00:00Z"
requestSource: "eyeball"
OR: [
{ clientRefererHost_like: "%.chatgpt.com%" }
{ clientRefererHost: "chatgpt.com" }
{ clientRefererHost_like: "%.perplexity.ai%" }
{ clientRefererHost: "perplexity.ai" }
]
}
limit: 5000
orderBy: [count_DESC]
) {
count
dimensions {
datetimeHour
clientRefererHost
}
}
}
}
}クローラー別のデータ転送量を取得する
{
viewer {
zones(filter: { zoneTag: "<ZONE_ID>" }) {
httpRequestsAdaptiveGroups(
filter: {
datetime_geq: "2027-01-01T00:00:00Z"
datetime_leq: "2027-01-02T00:00:00Z"
requestSource: "eyeball"
userAgent_like: "%GPTBot%"
}
limit: 5000
orderBy: [sum_edgeResponseBytes_DESC]
) {
count
dimensions {
userAgent
}
sum {
edgeResponseBytes
}
}
}
}
}- Bot リファレンス — 検出 ID とユーザーエージェント
- GraphQL Analytics API — API の全ドキュメント