Outcome measurement
Schema answers whether machines understand you. Outcome measurement answers what that understanding earns you. A small snippet on your site classifies your traffic by where it came from, so you can see AI-referred visits, agent activity, and the conversions that follow.
The snippet is analytics-grade and lightweight, about 3 KB. It is privacy-conscious by design.
What it measures
- AI-referred visits, by surface. A human who arrived from an AI surface (ChatGPT, Perplexity, Gemini, Claude, Copilot) is identified by the page’s referrer and grouped by which surface sent them.
- Agent visits. An agent browsing live on someone’s behalf (for example
ChatGPT-User,Claude-User) is detected from the request and counted separately from human visits. - Crawler hits. Indexing and training crawlers (
GPTBot,ClaudeBot,PerplexityBot,Google-Extended, and others) are tracked on their own. - Goal conversions. Clicks, form submits, booked calls, and purchases you define as goals, with conversion rate broken out for AI-referred traffic versus everything else.
Inquiries captured by your agent app record as goal completions here too, so an agent-driven lead shows up alongside the rest.
What it does not do
This is deliberate. The snippet:
- does not fingerprint visitors: no cross-site identity, no device fingerprint;
- reads the referrer at origin level only: the sending site, not the full URL or query, so it never captures what someone searched;
- stores no personal data in the measurement path;
- stays small: about 3 KB, with no consent banner required for the measurement itself.
The classification of a visit happens on SchemaX’s servers, not in the browser. Raw signals are retained so history can be re-classified: when a new AI surface appears, past traffic from it can be relabelled, as in “you’ve had visits from this source since back then.”
The AI-source classes
Every event is sorted into one of four classes:
| Class | Meaning | Example signals |
|---|---|---|
| AI assistant referral | A human arrived from an AI surface | Referrer: chatgpt.com, perplexity.ai, gemini.google.com, claude.ai, copilot.microsoft.com |
| AI agent visit | An agent browsing live for a user | User agent: ChatGPT-User, Claude-User, Perplexity-User |
| AI crawler | An indexing or training crawler | User agent: GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended |
| Other / unknown | Everything else | Default |
The classifier reads from a rule table that is kept current as the AI landscape changes month to month, so you do not maintain the list.
Install paths
Pick whichever fits how your site is built. All deliver the same snippet.
| Path | Best for |
|---|---|
| Script tag | A codebase or any host where you can add one <script> to the page. |
| WordPress plugin | WordPress sites; the plugin adds the snippet behind a toggle and keeps it in sync. |
| Google Tag Manager | Teams already managing tags through GTM. |
For a script-tag install, add the measurement snippet from your project to your site’s pages (typically near the end of the body) and deploy. It loads asynchronously and posts events with sendBeacon, so it never blocks your page.
Without the snippet
If you have not installed the snippet yet, Outcomes still shows something real: agent reads of your public endpoints (your schema manifest, your UCP manifest, your agent app) and crawler hits, both of which SchemaX sees server-side with zero install. Visit attribution and goal conversions are what the snippet adds on top.
So the install is optional to get started and additive when you do it. There is no all-or-nothing gate.