AgenticWebScore
Scan

Commerce Protocols · Emerging · Low impact

Agent traffic measurement

If agent traffic is not measured separately, the channel's return is invisible and never funded.

  • Emerging
  • Low impact
  • Draft standard
Agent traffic measurement — Property, Value
Property Value
Check idagent-analytics
DimensionCommerce Protocols (15%)
TierEmerging — pool 5 pts
Weight inside tier1
ImpactLow
MaturityDraft — A published specification that is not yet ratified.
ConditionalYes — scored only on commercial sites
Publishing skillagent-analytics
Standards—

What is measured

Conditional: reported n/a unless the scanner has already detected a commercial signal (Product/Offer JSON-LD, add-to-cart or buy-now copy, a cart/checkout link). It reads the homepage document as lowercase text and looks for an analytics platform signature (segment, plausible, posthog, matomo, amplitude, mixpanel, googletagmanager or yandex.metrika) together with a marker that agents are segmented separately, such as an agent_category custom dimension or an explicit agent event - a vendor signature plus that agent marker passes, a vendor with no agent segmentation is a partial (0.8), and no vendor signature at all is a partial (0.5) because nothing about the channel can be attributed.

Reproduce it yourself

You do not have to take our word for any of this. Run the same measurement against your own domain:

              DOMAIN=shop.example.com
curl -sL "https://$DOMAIN/" | grep -Eoi 'segment|plausible|posthog|matomo|amplitude|mixpanel|googletagmanager|yandex\.metrika|agent_category' | sort -u
            

The fix

This is the artifact to ship. It is the complete change, not a description of one.

              // Agent traffic as its own analytics segment. Verified agents arrive with a signed request and
// unknown crawlers are matched on user-agent; both are tagged, humans are tagged too.
const AGENT_UA = /GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|PerplexityBot|Google-Extended|Applebot-Extended/i;
const ua = navigator.userAgent;
const match = ua.match(AGENT_UA);
const agent_category = match ? 'agent' : 'human';

// Plausible here; swap for your own vendor (gtag, segment.track, posthog.capture).
window.plausible = window.plausible || function () { (window.plausible.q = window.plausible.q || []).push(arguments); };
plausible('pageview', { props: {
  agent_category: agent_category,
  agent_vendor: match ? match[0] : 'none'
} });

// Register agent_category as an event-scoped custom dimension, then report weekly on agent
// sessions, agent-assisted orders and revenue per agent vendor.
            

Related checks

Related checks — Check, Tier, Impact, Same skill
Check Tier Impact Same skill
product-schema — Product/catalog schemaEssentialCritical—
payment-protocols — Agent payment standard support (AP2/ACP/x402/UCP)RecommendedHigh—
agent-purchase — Agent purchase policyRecommendedHigh—
ucp-manifest — UCP manifest (/.well-known/ucp)EmergingMedium—
returns — Return and shipping terms machine-readableRecommendedMedium—
inventory-freshness — Inventory and price freshnessRecommendedHigh—
seller-identity — Seller identity declaredRecommendedMedium—
shipping-costs — Shipping cost and delivery declaredRecommendedHigh—