Vercel
One-click install from the Vercel Marketplace. Connect your account, select your project, and AI bot telemetry starts flowing to your OA endpoint. Vercel's AI bots managed ruleset handles classification automatically.
How it works
AI Bot ──GET──> Vercel Edge Network
│
├── AI bots managed ruleset classifies request
│ (auto-maintained list, IP verification, DNS lookup, WBA)
│
├── Log drain streams request data
└── OA integration processes + POST to telemetry endpointThe integration uses Vercel's log drain API to stream request logs. When Vercel's AI bots
managed ruleset identifies AI bot traffic, the integration constructs a content_retrieved event and forwards it to your OA telemetry endpoint.
Vercel maintains an auto-updated list of known AI bots with three verification methods: IP address verification, reverse DNS lookup, and cryptographic verification via Web Bot Authentication (RFC 9421). When new AI bots emerge, Vercel adds them automatically.
Setup
- Find OpenAttribution in the Vercel Marketplace
- Click Connect Account and authorise
- Select the Vercel project(s) to monitor
- Enter your OA org ID (or domain)
- Done - logs start flowing immediately
Bot detection
Vercel provides two managed rulesets relevant to AI bot telemetry:
| Ruleset | Purpose | Modes |
|---|---|---|
| AI bots managed ruleset | Identifies AI crawlers and bots (training, search, user-triggered) | Log or Deny |
| Bot protection managed ruleset | Challenges non-browser traffic, excludes verified bots | Log or Challenge |
The AI bots managed ruleset is the primary detection layer. Set it to Log mode to detect and report AI traffic without blocking it. The OA marketplace integration reads these logged events via the log drain.
Alternative: Edge Middleware
If you prefer to run detection in your own code, add OA telemetry reporting to your
Vercel Edge Middleware. Note that Vercel's bot classification operates at the WAF layer and
isn't directly exposed as headers to middleware, so this approach uses the @openattribution/vercel package for detection:
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
import { isAiBot } from '@openattribution/vercel';
export function middleware(request: NextRequest) {
const response = NextResponse.next();
const ua = request.headers.get('user-agent') || '';
if (isAiBot(ua)) {
const event = {
type: 'content_retrieved',
timestamp: new Date().toISOString(),
content_url: request.url,
source_role: 'edge',
oa_telemetry_id: request.headers.get('OA-Telemetry-ID') || undefined,
data: { user_agent: ua },
};
// Fire and forget via waitUntil
globalThis.waitUntil?.(
fetch('https://telemetry.openattribution.dev/v1/events', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
events: [event],
org_id: process.env.OA_ORG_ID,
}),
})
);
}
return response;
}Existing precedent
Profound Agent Analytics is already live on the Vercel Marketplace doing the same thing - one-click AI bot analytics via log drain. The pattern is proven and the marketplace review process is well-documented.