proxy.ts.
1
Get your token
Open Analytics in the GEO sidebar and stay on the Agent tab. Until the first event arrives, the page shows No activity yet with the full install panel, which has Install the package, Set your token and Add the proxy sections. Your token appears in the Set your token section, and the panel’s Copy agent prompt button copies an instruction block you can paste into a coding agent.Install the same project token on every domain the project tracks, and add extra hostnames under Tracked domains in GEO settings.
2
Install the package
3
Set the environment variable
Add the token as
NOTRA_GEO_TOKEN in your site’s environment variables, both locally and at your hosting provider, and never hardcode or commit it.4
Add the tracker
proxy.ts
proxy.ts on Next.js 16 and middleware.ts on earlier versions. geo(request) never throws and never blocks the response.The matcher keeps the proxy off requests Notra would drop anyway, which cuts function invocations and Fluid compute on Vercel. The tracker already ignores assets, /api routes, non-GET requests and most .txt files, but it can only do that after the proxy has run and been billed. Client-side navigations send an rsc or next-router-prefetch header and always come from people, whose visits Notra drops at ingest. Pages, Markdown twins, llms.txt and llms-full.txt still go through the proxy. Thanks to François Best for finding this fix on the nuqs docs, where adding the proxy without a matcher had raised daily invocations from about 700 to about 33,000 for the same traffic.5
Deploy and verify
After you deploy your site, the Agent tab switches from the install panel to the dashboard as soon as Notra stores the first AI crawler visit or referral. Crawlers visit on their own schedule, so the first event can take a while on a quiet site.
Next steps
Tracker reference
Options, excluded paths, privacy and token rotation.
Journey tagging
Follow one agent across the pages it reads.