Vercel setup for server-side tracking
Most AI crawlers -- including GPTBot, ClaudeBot, CCBot, anthropic-ai, Google-Extended, and PerplexityBot -- fetch only the HTML of your pages. They don't load images or run JavaScript, which means the Cleotic tracking pixel can't see them.
Vercel Log Drains give Cleotic a feed of your site's server-side request logs, so eligible production HTML pageviews can be checked for AI crawler and AI-referral signals. This is the Vercel setup path for Cleotic server-side tracking.
What you'll need
- A Vercel project with your website deployed on it
- Owner or Admin role on the Vercel team/account (log drains are team-level)
- A Cleotic account with a project and at least one tracking site configured for the domain you want to track
Step 1 -- Copy the endpoint URL from Cleotic
- In Cleotic, open your project and go to Project Settings -> Tracking setup
- Find your tracking site in the list and click Setup
- Choose Vercel in the setup modal if it is not already selected
- Copy the Vercel Log Drain endpoint URL -- it looks like:
https://t.cleotic.ai/aB3cD4eF5gH6/vercel
Keep Cleotic open -- you will come back in Step 3.
Step 2 -- Create the log drain in Vercel
- Go to vercel.com and sign in
- Click your account/team avatar, then Account Settings (or Team Settings for a team project)
- In the left sidebar, select Integrations, then Log Drains
- Click Create Log Drain
- Fill in the form:
- Delivery Format: JSON or NDJSON
- Sources: Select the sources that include production page requests for your app. Cleotic filters out assets, APIs, redirects, firewall events, and external rewrites.
- Environments: Production
- Projects: Select only the Vercel project serving the domain you're tracking
- Endpoint: Paste your Endpoint URL from Step 1
- Click Create
Vercel will verify the endpoint and create the drain.
Step 3 -- Copy the signature secret to Cleotic
Vercel generates a signature secret for each log drain. Cleotic needs this to verify that incoming payloads are genuinely from Vercel.
- In Vercel's Log Drains list, click Edit on the drain you just created
- Find the Signature Secret and copy it
- Back in Cleotic, in the tracking site's Setup modal, paste the secret into the Paste Vercel signature secret field
- Click Save
The badge should update to Configured.
Step 4 -- Verify it's working
Vercel side: Your new drain should show a green status in the Log Drains list. If you see "Failed Delivery Rate" > 0%, see the troubleshooting section below.
Cleotic side: AI crawlers and AI referrals visit sporadically -- it can take anywhere from a few minutes to a few hours to see your first hit. In Sources -> AI traffic:
- The AI share total will count eligible production HTML pageviews
- The bar chart will show entries with crawlers like GPTBot, ClaudeBot, and CCBot
Quick test: You can force an immediate test by visiting your site with a crawler user agent:
curl -A "Mozilla/5.0 (compatible; GPTBot/1.0; +https://openai.com/gptbot)" \
https://your-domain.com/any-page
That request should appear in Sources within about 30 seconds.
Troubleshooting
Open a failed delivery in Vercel to see the response code:
| Code | Meaning | Fix |
|---|---|---|
401 drain secret not configured | No secret saved in Cleotic | Complete Step 3 to paste the Vercel signature secret |
401 invalid signature | Secret doesn't match | Re-copy the secret from Vercel and paste into Cleotic |
404 tracking site not found | Wrong drain URL or deleted tracking site | Verify the URL matches what the Cleotic Setup modal shows |
413 request entity too large | Very rare -- oversized batch | Contact support@cleotic.ai |
Technical details
Cleotic's drain endpoint:
- Verifies each batch's HMAC-SHA1 signature using the Vercel-provided secret
- Parses JSON or NDJSON log batches
- Keeps eligible production HTML pageview events for your tracking site's domain
- Checks user agents against a list of ~140 known AI crawlers (sourced from ai-robots-txt, refreshed periodically)
- Checks referrers and recognised
utm_sourcevalues for AI-chatbot referrals - Records the pageview with AI crawler/referral flags, using Vercel event IDs to dedupe retries when present
Eligible production pageview events are stored with AI crawler and referral flags. Static assets, API calls, framework internals, redirects, preview traffic, and failed requests are filtered out.
Limits
- Volume: Each batch is capped at 8 MB (roughly 10,000-20,000 log entries). Contact support if you see
413responses. - Data retention: source tracking history depends on your plan. Check the public Pricing page or Settings → Plan & Usage for the current retention story.
- Historical data: Log drains only capture future traffic. There's no way to backfill data from before setup.
- Preview deployments: If you include Preview environments, those visits mix into your stats. Most users leave this off.
Related
- Sources -- Unified source health
- Source tracking -- Tracking methods
- Crawler analytics -- Reading crawler evidence in AI traffic