Analytics
AI Traffic Analytics in 2026: The Complete Playbook (with Tool Comparison)
AI traffic analytics is a 3-layer problem: detect the AI referrer, classify the engine, join to revenue. Honest 9-tool comparison plus the setup workflow.
Analytics
AI traffic analytics is a 3-layer problem: detect the AI referrer, classify the engine, join to revenue. Honest 9-tool comparison plus the setup workflow.
Part of the AI Search Hub — browse all 35 AI Search guides.
A founder I work with set up Profound in January expecting it would show her how much revenue ChatGPT was driving. After two weeks she emailed me asking why the dashboard "only showed citations, not dollars." She had bought a citation monitor when what she needed was a revenue attribution layer. The two products live in the same category — "AI traffic analytics" — and have almost nothing in common operationally. She is not the first operator I have watched make that mistake, and the cost was three months of decisions made on the wrong data.
This article is the long-form pillar piece on AI traffic analytics as a category. It walks the 3-layer model, compares the nine tools that actually ship in this market in mid-2026, gives the honest setup workflow for each, and ends with the per-engine revenue numbers we see across the Attrifast customer base. It is the companion to the ChatGPT referral analytics guide, which goes deep on ChatGPT specifically, and the AI visibility tracker comparison, which goes deep on the prompt-replay side of the category. If you read both of those, sections 2-5 below will be familiar territory; sections 6-12 are the new ground.
| Metric | Value | Source |
|---|---|---|
| ChatGPT weekly active users (mid-2026) | ~800 million | OpenAI [1] |
| Perplexity monthly query volume | ~1 billion | Perplexity disclosures [2] |
| Claude.ai weekly active users (Q1 2026) | ~35 million | Anthropic [3] |
| AI Overviews appearance rate (US English) | 13-15% of queries | Search Engine Land [4] |
| Median % of ChatGPT visits hidden in GA4 Direct | ~71% | Attrifast aggregate, n=38 |
| Median % of Claude visits hidden in GA4 Direct | ~92% | Attrifast aggregate, n=38 |
| AI bot share of total bot traffic (2024) | ~4-6% | Cloudflare Radar [5] |
| Built-in GA4 rules for AI-engine traffic | 0 | Google Analytics docs [6] |
| US adults under 30 using ChatGPT for search-shaped queries (2024) | ~27% | Pew Research [7] |
| Google search share of US queries (Q1 2026) | ~80% | StatCounter [8] |
| Tools in market positioning as "AI traffic analytics" (mid-2026) | 9+ | Author audit |
| Median AI-attributed revenue share for SMB SaaS (Q1 2026) | 7-12% | Attrifast aggregate |
| ChatGPT RPV vs Google organic (B2B SaaS) | 1.4-2.1x | Attrifast aggregate |
| Perplexity RPV vs Google organic (B2B SaaS) | 1.8-2.4x | Attrifast aggregate |
| Year Profound launched citation monitoring | 2024 | Company blog [9] |
| Year ChatGPT search launched | October 31, 2024 | OpenAI [10] |
Two patterns to read out of that table before anything else. First, the engine-by-engine hidden-traffic rates are not uniform — Claude is materially worse than ChatGPT, which is materially worse than Perplexity. A tool that only handles ChatGPT well still leaves you blind on the engine with the worst attribution. Second, the AI-attributed revenue share for SMB SaaS at 7-12% is already in the same range as paid social on many sites I see, but the average operator is allocating zero measurement budget to it because GA4 reports zero. The gap between what is happening and what is reported is the entire reason this category exists.
The phrase gets used three different ways in vendor decks and almost everyone conflates them. Pinning down which one you actually mean is the difference between buying the right tool and burning $500/month on the wrong one.
Definition 1: traffic from AI engines. Visits to your site that originated from a user interaction with an AI assistant (ChatGPT, Claude, Perplexity, Gemini, Copilot, You.com, Kagi) or an AI-augmented search surface (Google AI Overviews, Bing's Copilot answer block, DuckDuckGo's AI summary). This is the literal denotation and the one I will use throughout the rest of the article unless I say otherwise.
Definition 2: traffic from AI crawlers. Hits from bots like GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot, Google-Extended, and the long tail. These are not human visitors. They matter for understanding which AI engines are ingesting your content into their training corpora or live indexes, but they should never sit in the same dashboard as human traffic without a clean separator.
Definition 3: AI-assisted analytics on traditional traffic. Tools that use machine learning on top of conventional traffic data — anomaly detection, predictive forecasting, automated insights. This is a separate product category (Mixpanel, Amplitude, Heap all ship some flavor of this) and has nothing to do with the AI-referral problem. When a vendor says "AI-powered analytics" this is what they usually mean.
The category that this article is about is definition 1, with definition 2 as a sidecar because the crawl data is a leading indicator for the referral data. Definition 3 is out of scope.
| Definition | What it tracks | Tools in market | This article? |
|---|---|---|---|
| Traffic from AI engines (human visits) | User clicks from ChatGPT, Perplexity, Claude, Gemini, etc. | Attrifast, Plausible, Fathom, Simple Analytics, Tinybird-rolled stacks, GA4+custom channel | Yes — primary focus |
| Traffic from AI crawlers (bot hits) | GPTBot, ClaudeBot, PerplexityBot, OAI-SearchBot crawls | Cloudflare bot management, Datadome, Vercel WAF, raw server logs | Yes — sidecar |
| AI-assisted analytics on traditional data | ML-augmented dashboards, anomaly detection | Amplitude, Mixpanel, Heap, June, Pirsch | No — out of scope |
A second cut at the same distinction, because vendor pages routinely blur the lines:
| Vendor positioning phrase | What they usually mean | Decoded |
|---|---|---|
| "AI traffic analytics" | Definition 1 + 2, sometimes both | Read the docs carefully |
| "AI visibility tracker" | Citation monitoring (prompt replay) | Adjacent category; this article touches it briefly |
| "GEO analytics platform" | Citation monitoring + content recommendations | Adjacent category |
| "AI SEO tool" | Usually content optimization for AI ranking | Different problem entirely |
| "AI-native analytics" | Definition 3 (ML-augmented dashboards) | Different problem entirely |
| "Generative search analytics" | Subset of definition 1, focused on AI Overviews | A useful narrow slice |
| "Answer engine analytics" | Definition 1 with citation-monitoring overlay | The honest hybrid label |
The "answer engine analytics" label is the one I think is structurally cleanest but the market hasn't standardized on a single phrase yet. For SEO purposes, "AI traffic analytics" is the dominant phrase competitors are targeting in 2026 and I will use it throughout this piece.
Building or buying AI traffic analytics is a 3-layer problem. Skipping any layer leaves you with broken data; the layers cannot be parallelized and have to be solved in order.
Detection asks: did this visit come from an AI surface at all? The signals available, ordered by reliability:
| Signal | Reliability | Coverage of AI traffic | Cost to implement |
|---|---|---|---|
| UTM parameter you pre-tagged | Very high | 3-10% (self-published URLs only) | 30 min discipline |
| Bot user-agent (GPTBot, ClaudeBot, etc.) | Very high | 100% of bot hits, 0% of humans | 10 min |
| Referer header matching known AI domain | High | 15-30% of human visits (engine-dependent) | 1-2 hours |
| Behavioral fingerprint (empty referer + deep page + FAQ shape) | Medium | 60-80% additional coverage | 1-2 days |
| Server-side IP + UA fingerprint | Low | Marginal additional coverage | 1+ week |
The detection problem is most acute on Claude (90%+ stripped referers), bad on ChatGPT (65-80%), moderate on Perplexity (40-55%), and least bad on Copilot (most clicks pass a Bing-style referer). The engine you have the most users on is rarely the engine with the best detection signal, which is why a one-engine attribution stack never holds up in production.
A common mistake is using only the referer-match path. It catches the 15-30% that arrives with a referer and reports that number as "AI traffic," giving operators a falsely confident chart. The bigger slice — the 60-80% with no referer — sits silently in Direct/(none). The gap between the reported number and the real number is the entire reason this article exists.
Classification asks: which AI engine, which surface, and at what confidence level? The naive version is hostname lookup. The honest version uses path-level disambiguation.
| Engine | Hostnames | Path patterns | Notes |
|---|---|---|---|
| ChatGPT (chat) | chatgpt.com, chat.openai.com | /c/<uuid> (live conversation), /share/<uuid> (public-shared), /g/<slug> (custom GPT) | Multiple surfaces; treat /share/ as hybrid AI+social |
| ChatGPT (search) | chatgpt.com | /search | Launched October 2024 [10] |
| Perplexity | perplexity.ai, www.perplexity.ai | /search/<slug>, /discover | Discover is publisher feed, search is core |
| Claude | claude.ai | Various | Most paths look the same; surface disambig is weak |
| Gemini | gemini.google.com | /app/<id> | Often strips referer entirely |
| AI Overviews | google.com (with referer indicating SERP) | Embedded inside /search | Detect via referer path containing udm= or specific AI-overview markers |
| Copilot | copilot.microsoft.com, bing.com | /chat, /search?...&form=... | More Bing-shaped behavior |
| You.com | you.com | /search, /chat | Long-tail volume |
| Kagi | kagi.com | /search, /assistant | Niche but high-quality users |
A classifier that maps these correctly catches the surface-level distinction (chat vs search vs share), which matters because the conversion-rate profile differs by surface. ChatGPT /share/ URL clicks convert worse than /c/ URL clicks because the user is reading someone else's saved answer rather than their own live conversation. ChatGPT /search clicks behave more like organic search and convert similarly to Google organic on the same query type. Treating all three as "ChatGPT" loses signal.
Classification also needs to handle the in-app browser problem. When a user clicks a ChatGPT citation on iOS, the link sometimes opens in an in-app SFSafariViewController, which has inconsistent referer behavior across iOS versions. The session looks like a normal iOS Safari visit with an empty referer. The classifier has to fall back to behavioral inference for this case.
| Surface | Typical referer behavior | Classification confidence |
|---|---|---|
| ChatGPT web (desktop) | Empty referer ~75% of clicks | Low without UTM |
| ChatGPT web (mobile browser) | Empty referer ~70% | Low without UTM |
| ChatGPT iOS app | In-app webview, mostly empty | Very low |
| ChatGPT Android app | Empty referer >85% | Very low |
| ChatGPT desktop app (Electron) | Empty referer ~90% | Very low |
| Perplexity web | Referer passes ~45-55% | Medium-high when present |
| Perplexity mobile app | In-app browser, empty | Very low |
| Claude web | Empty referer >90% | Very low |
| Gemini chat | Referer rarely passes | Very low |
| AI Overviews citation | Passes google.com referer | Medium (need path parsing) |
| Copilot chat | Bing-style referer ~60% | Medium |
Revenue join asks: of the visits we detected and classified, which ones produced a paying customer? This is the layer most tools skip and the one that compounds the most over a year of decisions.
The technical pattern is server-side. When a session lands on your site, persist a first-party row keyed by a session identifier. When the user reaches Stripe Checkout, pass the session identifier in checkout.session.metadata. When the Stripe checkout.session.completed webhook fires, look up the original session row and write the revenue back. The full schema for a robust implementation is documented in Stripe's metadata reference [11] and walked through in the ChatGPT referral analytics guide.
The honest table on what each tool can and can't do at the revenue join layer:
| Tool category | Can attach revenue? | How? | Limitations |
|---|---|---|---|
| GA4 | Partial | Native ecommerce events, requires gtag instrumentation | Cookie-based, breaks under ITP, AI traffic still lumped in Direct |
| Plausible | No | N/A | Click counter only, no Stripe integration |
| Fathom | No | N/A | Click counter only, no Stripe integration |
| Simple Analytics | No | N/A | Goals only, not revenue |
| Profound | No | N/A | Citation monitor, not analytics |
| Loamly | No | N/A | Citation monitor, not analytics |
| Geoptie | No | N/A | Visibility tracker, no revenue join |
| SE Ranking AI Traffic Analytics | Partial | Via Search Console integration | Limited to organic-side data, not Stripe |
| Attrifast | Yes | Stripe webhook + first-party session row | Stripe-only at SMB tier; other PSPs on roadmap |
| Custom server-side build | Yes | DIY | 1-2 weeks engineering + ongoing maintenance |
The category bias is unmistakable: the revenue-join column is empty for almost everyone. It is the moat for the few tools that ship it, and the reason most operators end up with a fragmented stack (citation monitor + click analytics + spreadsheet that ties them to Stripe data exported monthly). The spreadsheet works for a quarter and then breaks the first time someone needs to redo the analysis on a different cohort. The full first-party stack stays correct.
Treating the AI category as one monolith is the second-most-common mistake after ignoring the revenue layer. The five major surfaces behave differently on every dimension that matters: index size, refresh latency, citation density, referer pass-through, conversion rate. The table below is the cross-engine snapshot I keep in my own ops doc, updated quarterly.
| Engine | Weekly actives | Primary index | Citations per answer | Referer pass-through | Typical RPV (B2B SaaS) |
|---|---|---|---|---|---|
| ChatGPT (OpenAI) | ~800M [1] | OpenAI training corpus + Bing-style retrieval | 3-5 | 15-25% | $0.84 |
| Perplexity | ~30M+ (est. from 1B monthly queries) [2] | PerplexityBot + Bing partnership | 4-7 | 40-55% | $1.12 |
| Claude (Anthropic) | ~35M [3] | Anthropic training + Brave/Anthropic web search | 1-3 | 5-10% | $0.67 |
| Gemini (Google chat) | Tens of millions (Google doesn't disclose) | Google main index | Varies (2-5) | 5-15% | $0.71 |
| Google AI Overviews | Fires on 13-15% of US English queries [4] | Google main index | 3-7 | google.com referer passes, but query stripped | $0.71 |
| Copilot (Microsoft) | Tens of millions | Bing index + GPT-4-class model | 3-5 | 55-65% | $0.44 |
| You.com | Small, growing | Mixed (own crawl + partners) | 3-7 | Variable | Insufficient data |
| Kagi (paid search + Assistant) | ~50k subscribers est. | Own crawl | 5-10 | High (privacy-friendly) | High RPV, low volume |
I keep this table because operators consistently misestimate where their AI traffic actually comes from. The medians are from my 38-site sample; your individual numbers will vary.
| Site category | ChatGPT % of AI traffic | Perplexity % | Claude % | Gemini/AIO % | Copilot+long tail % |
|---|---|---|---|---|---|
| B2B SaaS (general) | 52% | 18% | 11% | 14% | 5% |
| B2B SaaS (developer tools) | 47% | 14% | 22% | 12% | 5% |
| DTC ecommerce | 38% | 9% | 4% | 41% | 8% |
| Content publisher (general) | 44% | 21% | 7% | 22% | 6% |
| Content publisher (tech/AI vertical) | 48% | 24% | 14% | 9% | 5% |
| Local services | 31% | 7% | 3% | 52% | 7% |
| Healthcare SaaS | 41% | 22% | 8% | 23% | 6% |
| Fintech / regtech | 39% | 25% | 13% | 18% | 5% |
| E-learning / courses | 51% | 15% | 9% | 19% | 6% |
Three reads out of that table. First, developer tools is the only category where Claude breaks into double-digit AI traffic share, driven by the Claude Code workflow and Anthropic's developer-focused positioning. Second, local services and DTC ecommerce are Gemini/AIO-heavy because their queries still route primarily through Google search rather than chat-shaped surfaces. Third, fintech and regtech show unusually high Perplexity share because Perplexity's citation-forward UI is preferred by research-mode buyers who need to verify sources.
| Engine | Share of AI traffic Q1 2024 | Q1 2025 | Q1 2026 | Direction |
|---|---|---|---|---|
| ChatGPT | ~78% | ~62% | ~48% | Down (still leader) |
| Perplexity | ~9% | ~15% | ~18% | Up |
| Claude | ~3% | ~7% | ~12% | Up |
| Gemini/AIO | ~7% | ~12% | ~18% | Up |
| Copilot+others | ~3% | ~4% | ~4% | Flat |
The redistribution under the aggregate is the part most operators miss. AI traffic is growing, but the share each engine takes is shifting fast enough that a tool built only for ChatGPT in 2024 covered most of the surface and a tool built only for ChatGPT in 2026 misses more than half. Plan for multi-engine from day one.
GA4's channel-grouping logic is documented in Google's support docs [6]. The default channels are Direct, Organic Search, Paid Search, Organic Social, Paid Social, Email, Referral, Affiliates, Audio, Display, and a handful of others. None of them match against AI-engine hostnames. Even after Google's late-2025 channel-group refresh, no AI-engine channel was added by default.
The mechanical chain of failures:
| Failure | Mechanism | Result in GA4 |
|---|---|---|
| Referer stripped by AI client | HTTP header missing | Direct/(none) |
| Referer present, but AI hostname not in channel group | No rule matches chatgpt.com etc. | Generic Referral, unlabeled |
| UTM parameter absent | Operator didn't pre-tag the URL | Whatever the referer says, usually Direct |
| Cookie blocked by ITP / Firefox ETP | Third-party cookie context | New visitor on every visit, no session continuity |
| Adblocker drops the gtag.js call | Beacon never fires | Visit unrecorded |
| In-app browser webview | Inconsistent JS sandbox | Mixed behavior, often Direct |
The custom-channel-group fix that most analytics consultants pitch is to add a regex like chatgpt\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com to a new Group called "AI". This is not wrong, but it only addresses the second row. It does nothing for the first row (stripped referer), which is the majority case.
The arithmetic for an SMB SaaS site averaging 50,000 sessions per month with 18% true AI traffic share:
| Attribution method | AI traffic captured | % of true AI traffic |
|---|---|---|
| GA4 default (no custom channel) | ~1,800 sessions in Referral, unlabeled as AI | 20% (1,800 of 9,000) |
| GA4 + custom AI channel group | ~1,800 sessions correctly labeled | 20% |
| GA4 + custom channel + UTM discipline on own URLs | ~2,700 sessions | 30% |
| Server-side first-party + behavioral inference | ~7,650 sessions | 85% |
| Full stack (UTM + first-party + Stripe join) | ~8,100 sessions, joined to revenue | 90%+ |
The gap between 20% and 90%+ is the gap between the dashboard you have and the dashboard you need. The decisions you make off the 20% number — content prioritization, channel investment, hiring — are wrong in a predictable direction: you under-invest in AI as a channel because the data says it doesn't exist.
The other GA4-specific issues that compound:
| GA4 issue | Effect on AI traffic | Workaround |
|---|---|---|
| Data sampling at >10M events/month | AI traffic gets sampled too, signal degrades | Move to BigQuery export or alternative tool |
| 14-month data retention default | Year-over-year AI growth comparisons break | Set to 50 months in admin, still has limits |
| Consent Mode v2 modeling | AI visits often unconsented, get modeled away | Use server-side analytics that don't depend on consent |
| Default attribution model is data-driven | Black-box, no engine-level transparency | Switch to last-non-direct for clarity |
| Bot filtering hits AI crawler hits | Some legit human visits get filtered | Inspect filter logs monthly |
| Channel changes are retroactive | Adding the AI channel reattributes history | Document the change date |
This is the section operators usually skim first, so I built it to be skim-friendly. The matrix below covers nine tools that ship "AI traffic analytics" features in mid-2026. Pricing is the entry tier; capabilities and limitations are based on each vendor's published documentation cross-checked against my hands-on tests where I have them. Where I haven't personally used a tool in the past 90 days I've noted it explicitly.
| Tool | Entry price | Category | AI engines supported | Detection method | Revenue attribution | GDPR/cookieless | Setup time | Free tier |
|---|---|---|---|---|---|---|---|---|
| Attrifast | $29/mo | First-party analytics + Stripe revenue | ChatGPT, Perplexity, Claude, Gemini, AIO, Copilot, You.com, Kagi | Referer + behavioral + UTM + bot UA | Yes (Stripe webhook native) | Yes, cookieless | ~2 min | 14-day trial |
| Profound | $499+/mo | Citation monitoring (enterprise) | ChatGPT, Perplexity, Claude, Gemini, Copilot | Prompt replay (not site-side) | No | n/a | Days (onboarding) | No |
| Loamly (LMNT.so) | $99+/mo | Citation monitoring (SMB) | ChatGPT, Perplexity, Claude, Gemini | Prompt replay | No | n/a | Hours | Limited |
| Geoptie | $29+/mo | Visibility tracking + light content | ChatGPT, Perplexity, Claude, Gemini | Prompt replay | No | n/a | Hours | Yes (limited) |
| SE Ranking AI Traffic Analytics | $44/mo (add-on to Pro) | Multi-tool with AI module | ChatGPT, Gemini, AIO via Search Console | Prompt replay + GSC integration | Partial via GSC | Cookie-based | ~1 hour | 14-day trial |
| SEOcrawl AI Tracker | $49/mo add-on | Agency-focused prompt tracking | Perplexity, Gemini, Claude | Prompt replay | No | n/a | Hours | No |
| Google Analytics 4 | Free | General web analytics | None natively; AI traffic falls in Direct | Cookie-based, gtag.js | Partial (ecommerce events) | Cookie-based | ~1 hour | Free |
| Plausible Analytics | $9+/mo | Privacy-first first-party analytics | Detects referrer for any AI domain | Referer-based | No (Goals only) | Yes, cookieless | ~5 min | Trial |
| Fathom Analytics | $15+/mo | Privacy-first first-party analytics | Detects referrer for any AI domain | Referer-based | No (Goals only) | Yes, cookieless | ~5 min | Trial |
The same nine tools mapped against the 3-layer model from section 3. This is the matrix that explains why most operators end up needing two tools.
| Tool | Layer 1: Detect | Layer 2: Classify engine | Layer 3: Revenue join |
|---|---|---|---|
| Attrifast | Yes (4-method) | Yes (8 engines + path-level) | Yes (Stripe native) |
| Profound | No (doesn't track site visits) | n/a — measures citations | No |
| Loamly | No | n/a — measures citations | No |
| Geoptie | No | n/a — measures citations | No |
| SE Ranking AI Traffic Analytics | Partial (via GSC for AIO) | Partial (Gemini + AIO mainly) | Partial via GSC tied to organic |
| SEOcrawl AI Tracker | No | n/a — measures citations | No |
| GA4 | Partial (referer only, no path) | Requires manual custom channel | Yes for ecommerce, manual setup |
| Plausible | Yes (referer only) | Auto-rolls AI domains into channels | No |
| Fathom | Yes (referer only) | Auto-rolls AI domains into channels | No |
| Tool | ChatGPT | Perplexity | Claude | Gemini | AI Overviews | Copilot | You.com | Kagi |
|---|---|---|---|---|---|---|---|---|
| Attrifast | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Profound | Yes | Yes | Yes | Yes | Partial | Yes | No | No |
| Loamly | Yes | Yes | Yes | Yes | No | No | No | No |
| Geoptie | Yes | Yes | Yes | Yes | Partial | No | No | No |
| SE Ranking AI Traffic Analytics | Limited | No | No | Yes | Yes | No | No | No |
| SEOcrawl AI Tracker | No | Yes | Yes | Yes | No | No | No | No |
| GA4 (with custom channel) | Yes (referer only) | Yes | Yes | Yes | No | Yes | Yes | Yes |
| Plausible | Yes (referer only) | Yes | Yes | Yes | No | Yes | Yes | Yes |
| Fathom | Yes (referer only) | Yes | Yes | Yes | No | Yes | Yes | Yes |
| Tool | Initial setup | Ongoing operations | Engineering required? |
|---|---|---|---|
| Attrifast | 2 min (script + Stripe OAuth) | None | No |
| Profound | Several days (sales + onboarding) | Prompt-list curation monthly | No |
| Loamly | 1-2 hours | Prompt-list curation monthly | No |
| Geoptie | 30 min | Prompt-list curation | No |
| SE Ranking AI Traffic Analytics | 1 hour | Keyword/prompt updates | Light |
| SEOcrawl AI Tracker | 1-2 hours | Prompt curation | No |
| GA4 (with custom channel) | 30 min (channel group) + ongoing tagging | Quarterly channel-group audit | Light |
| Plausible | 5 min (script tag) | None | No |
| Fathom | 5 min (script tag) | None | No |
| Job to be done | First-best tool | Second-best |
|---|---|---|
| "Am I being cited by ChatGPT/Perplexity?" | Profound (enterprise) or Loamly (SMB) | Geoptie |
| "Did my AI traffic go up this week?" | Plausible or Fathom | Attrifast |
| "How much revenue did ChatGPT drive?" | Attrifast | DIY server-side + Stripe |
| "Is AI Overviews citing my content?" | SE Ranking + Google Search Console | Manual GSC queries |
| "Which AI engine sends the highest-RPV traffic?" | Attrifast | DIY server-side + Stripe |
| "What content should I write to get AI-cited?" | Geoptie or SEOcrawl | Loamly + manual analysis |
| "Are AI bots crawling my new pages?" | Server logs + Cloudflare | Datadome / similar |
| "Where is my GA4 Direct/(none) traffic actually from?" | Attrifast | Custom server-side stack |
The matrix is intentionally honest about Attrifast's gaps — the citation-monitoring rows correctly point at Profound and Loamly, because that is not the layer Attrifast is built for. The Attrifast wedge is the revenue-join layer, which is the only layer where no other SMB-priced tool exists in 2026. If you have already solved the revenue join (via custom code, a different attribution vendor, or a manual Stripe + spreadsheet workflow) the citation tools are the higher-leverage purchase. If you have not solved revenue, that's the first layer to fix because the other layers are answering the wrong question without it.
| Tool | Entry tier | Mid tier | Enterprise | What entry tier includes |
|---|---|---|---|---|
| Attrifast | $29/mo | $99/mo (more sites/traffic) | Custom | All AI engines, Stripe join, unlimited events at SMB caps |
| Profound | $499/mo (est.) | $999+/mo | Custom contracts | ~100 prompts, all engines, enterprise reporting |
| Loamly | $99/mo | $299/mo | $799+/mo | 50 prompts, 4 engines, daily checks |
| Geoptie | $29/mo | $99/mo | Custom | 25 prompts, 4 engines |
| SE Ranking | $52/mo (Pro plan) | $109/mo (Business) | Enterprise | Full SE Ranking + AI Traffic add-on |
| SEOcrawl | $49/mo add-on | Custom | Agency contracts | 50 prompts, 3 engines |
| GA4 | Free | $150k/year (GA360) | Custom | All standard reporting; AI traffic in Direct by default |
| Plausible | $9/mo | $19/mo | $69/mo | 10k pageviews, basic AI domain detection in referrer |
| Fathom | $15/mo | $44/mo | $144/mo | 100k pageviews, basic AI domain detection in referrer |
The price-per-AI-decision math the honest CFO will run:
| Stack | Total monthly cost | Layers covered | Cost per layer |
|---|---|---|---|
| GA4 only | $0 | Partial L1 only | n/a |
| GA4 + Profound | $499 | Partial L1 + citation monitor | $499 for 1.5 layers |
| GA4 + Loamly | $99 | Partial L1 + citation monitor | $99 for 1.5 layers |
| Plausible + Loamly | $108 | L1 (referer-only) + citation monitor | $108 for 2 partial layers |
| Attrifast standalone | $29 | L1 + L2 + L3 | $29 for 3 layers |
| Attrifast + Loamly | $128 | L1 + L2 + L3 + citation monitor | $128 for full stack |
| Attrifast + Profound | $528 | L1 + L2 + L3 + enterprise citation | $528 for full enterprise stack |
| Custom DIY | $0 + 1-2 wks engineering | All 3 + custom citation monitor | ~$8k engineering + ongoing |
The cheapest full-stack option in 2026 is Attrifast + Loamly at $128/month combined. The cheapest revenue-only option is Attrifast standalone at $29/month. The DIY path costs zero cash and roughly $8k of engineering time, plus ongoing maintenance that compounds. Most operators are better served by spending the $29 and reclaiming the engineering time for the parts of the product that actually differentiate the business.
There are four real ways to instrument AI traffic analytics in 2026, each with different tradeoffs on coverage, effort, and revenue-join capability. Most operators end up running a hybrid of two or three.
| Approach | Catches | Misses | Effort | Cookieless? | Revenue-joinable? |
|---|---|---|---|---|---|
| UTM tagging on self-published URLs | URLs you tagged before AI lifted them | Homepage, untagged pages, citations of others' content | 30 min one-time + ongoing discipline | Yes | Yes if your analytics joins UTM to Stripe |
| Server-log grep + manual parsing | 15-30% of human visits (engine-dependent) + all bot hits | 70-85% of human visits without referer | 10 min | Yes | No (logs don't see Stripe) |
| JS-based attribution with AI-domain regex | Browser sessions where referer is preserved | App sessions, all stripped-referer cases | 1-2 hours | Depends on script | Depends on stack |
| Server-side first-party attribution (Attrifast pattern) | All four request types + behavioral inference | Voice queries, true zero-click | 2 min with vendor; 1-2 days custom | Yes | Yes via Stripe webhook |
Whenever you paste a URL into a context that might be lifted by an AI engine (your own published content, GitHub README, Reddit comment, X bio, conference slide deck, podcast show notes, Substack newsletter), tag it. The convention I use across attrifast.com properties:
?utm_source=ai-citation&utm_medium=ai-referral&utm_campaign=<page-slug>
When ChatGPT or Perplexity copies the URL verbatim into an answer, the query string survives. The user clicks; the tagged URL arrives at your server; any analytics tool (GA4, Plausible, Fathom, Attrifast) reads the UTM and attributes the visit correctly regardless of referer state.
| Where to tag | UTM scheme | Why |
|---|---|---|
| Blog post outbound CTAs | ?utm_source=blog&utm_medium=ai-citation&utm_campaign=POST_SLUG | Catches when AI lifts your CTA URL |
| GitHub README links | ?utm_source=github&utm_medium=ai-citation&utm_campaign=README | AI engines crawl GitHub heavily |
| Reddit comment URLs | ?utm_source=reddit&utm_medium=ai-citation&utm_campaign=AUTO | ChatGPT trained on Reddit deal [12] |
| Conference deck links | ?utm_source=deck&utm_medium=ai-citation&utm_campaign=EVENT | Long tail but real |
| Podcast show notes | ?utm_source=podcast&utm_medium=ai-citation&utm_campaign=EPISODE | Long tail but real |
| Substack/newsletter URLs | ?utm_source=newsletter&utm_medium=ai-citation&utm_campaign=ISSUE | Newsletters get cited |
Coverage estimate: 3-10% of total AI human visits, heavily skewed by how disciplined you are about tagging.
The fastest cheapest path. Grep your raw access logs for known AI-engine patterns. The one-liner I run on Nginx:
grep -E "(chatgpt\.com|chat\.openai\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|copilot\.microsoft\.com|you\.com|kagi\.com)" \
/var/log/nginx/access.log \
| awk '{print $1, $7, $11}' \
| sort | uniq -c | sort -rn | head -50
Pair it with a user-agent grep for GPTBot|ChatGPT-User|OAI-SearchBot|PerplexityBot|ClaudeBot|Google-Extended|Bytespider and you have a passable AI-traffic snapshot for the day.
Coverage estimate: 15-30% of human visits (engine-dependent) plus ~100% of bot traffic. The long-term ergonomics are poor: no revenue join, no cohorts, the unreferred majority is invisible.
A small JS snippet that reads document.referrer on page load and writes the matched AI engine to a first-party sessionStorage token. The minimal implementation:
const AI_DOMAINS = {
'chatgpt.com': 'chatgpt',
'chat.openai.com': 'chatgpt',
'perplexity.ai': 'perplexity',
'www.perplexity.ai': 'perplexity',
'claude.ai': 'claude',
'gemini.google.com': 'gemini',
'copilot.microsoft.com': 'copilot',
'you.com': 'youcom',
'kagi.com': 'kagi',
}
function captureAiSource() {
const referer = document.referrer
if (!referer) return null
try {
const host = new URL(referer).hostname
const engine = AI_DOMAINS[host]
if (engine) {
sessionStorage.setItem('aiSource', engine)
// Persist to your analytics endpoint
fetch('/api/track', {
method: 'POST',
body: JSON.stringify({ engine, url: location.href }),
})
return engine
}
} catch (_) { return null }
return null
}
captureAiSource()
Coverage estimate: 15-30% of human visits, same as server-side referer fingerprinting because the underlying signal is the same. Operational note: JS-based attribution is sensitive to ad blockers (uBlock Origin, Brave's built-in blocker, EasyPrivacy lists) — server-side runs upstream and isn't affected.
The full pattern: combine UTM parsing, bot-UA exclusion, referer-domain matching, and behavioral inference into a single server-side decision tree. Persist the result as a first-party session row. Join to Stripe via webhook metadata. The reference architecture lives in the practical track-ChatGPT-traffic guide.
Coverage estimate: 85-95% of total AI human visits, with a known and bounded uncertainty band on the behavioral-inference portion.
The four-line summary across all four paths: detect at the edge, persist server-side, join via Stripe webhook, never depend on a third-party cookie.
Ten mistakes I've watched operators make often enough to call them patterns, with the fix for each.
Mistake 1: Buying a citation monitor and expecting revenue numbers. Profound, Loamly, Geoptie, Otterly, SEOcrawl — none of them measure dollars. They measure mentions. The two categories live in the same vendor decks and confuse the operator into a purchase that doesn't solve their actual problem. Fix: ask the vendor "can this tool show me the Stripe revenue from ChatGPT-attributed visits last month?" If the answer requires CSV exports and a spreadsheet, the answer is no.
Mistake 2: Adding only the GA4 custom channel group. Catches the 15-30% of AI visits that arrive with a referer. Leaves the 70-85% in Direct/(none). Operators ship the channel group, see a small AI number on the chart, and conclude "AI is a tiny channel." It is not. Fix: pair the channel group with server-side behavioral inference, or use a first-party attribution tool that does both layers.
Mistake 3: Treating all AI engines as one bucket. ChatGPT, Perplexity, Claude, Gemini, and AI Overviews each have different RPV, different referer behavior, different audience profiles. Aggregating them as "AI" hides the signal you actually need. Fix: report per-engine from day one. The aggregate is fine for board slides; the per-engine breakdown is what drives content decisions.
Mistake 4: Counting bot impressions as citations. A GPTBot crawl is not a citation. A ChatGPT-User fetch may indicate a citation but doesn't guarantee one. The only way to know your page was cited in an answer is to (a) get a referer-tagged human click, (b) see your domain in a Profound/Loamly tracked answer, or (c) ask the engine the query yourself. Fix: distinguish "crawled" from "cited" from "clicked" in your reporting language.
Mistake 5: Blocking AI crawlers to "protect content." Blocking GPTBot stops future training-corpus inclusion. It doesn't stop ChatGPT-User (the live-fetch agent) or stop your site from being referenced in answers using cached training data. The cost is invisible: pages you blocked from training are slowly cited less often in answers the model produces without browsing [13]. Fix: allow GPTBot, ClaudeBot, PerplexityBot, Google-Extended unless you have a specific legal reason not to. Audit crawl rates monthly as a leading indicator.
Mistake 6: Letting Direct/(none) grow without auditing it. A 25-40% Direct jump in 60 days with no campaign and no obvious branding event is almost always an AI-attribution gap. Operators routinely misread it as "brand awareness working" and spend a quarter celebrating a measurement bug. Fix: monthly Direct-bucket audit, segmenting by landing page and FAQ-shape signal.
Mistake 7: Reporting AI traffic without conversion rate. Telling the board "ChatGPT sent us 4,000 sessions last month" without "at $0.84 RPV that's $3,360 attributable" lets the channel look like vanity. Volume without value is the framing that gets channels defunded. Fix: always pair the volume number with the revenue join.
Mistake 8: Ignoring conversation-UUID dedup. Two visits with the same ?ref=chatgpt.com/c/<uuid> in a short window are usually the same user clicking multiple links from the same answer. Counting them as two unique-source attributions overstates traffic by 15-30% on ChatGPT-heavy sites. Fix: dedupe by conversation UUID within a 24-hour window.
Mistake 9: Sampling without confidence intervals. Visibility trackers run prompts on a sample (10-100 prompts) and report a "visibility score" as if it were the population truth. Re-running the same prompt list a week later can show a 15-30% swing for noise reasons that have nothing to do with your content. Fix: ask vendors for the confidence interval on their visibility score, or run each prompt 3-5 times per measurement period to get your own variance estimate.
Mistake 10: Optimizing for one engine and reporting on all. Operators run a content sprint optimized for ChatGPT citation patterns (high-DR backlinks, brand authority signals), then evaluate the result across all four engines. ChatGPT might improve while Perplexity stays flat because Perplexity rewards different signals (topical specificity, FAQ density). Reading the aggregate as "the sprint didn't work" misses that one engine improved 40%. Fix: report progress per engine, not aggregated, especially in the first 90 days of any GEO sprint.
The right tooling stack in 2026 for most SMB SaaS operators is two products, not one. The first is a visibility tracker (Profound, Loamly, or Geoptie depending on budget). The second is a revenue attribution layer (Attrifast for Stripe-native; custom server-side build for non-Stripe). The two products answer the two halves of the AI traffic question and the disagreement between them is the most actionable signal in the entire category.
| Question | Visibility tracker answers | Revenue attribution answers |
|---|---|---|
| "Am I cited in ChatGPT answers for query X?" | Yes (sampling-based) | No |
| "How does my citation share trend over time?" | Yes | No |
| "Which competitors are cited next to me?" | Yes | No |
| "Did the citation produce a click?" | No | Yes (per visit) |
| "What's my AI-attributed revenue this month?" | No | Yes |
| "Which AI engine has the highest RPV?" | No | Yes |
| "Did my GEO content sprint pay back its cost?" | Partially (visibility delta) | Fully (revenue delta) |
| "Are AI clicks converting better than Google organic?" | No | Yes |
The diagnostic value of the disagreement: when your visibility tracker shows you cited 200 times on ChatGPT in a month and your revenue attribution layer shows 18 ChatGPT-attributed Stripe payments, the implied click-to-cite ratio is 9%. If your competitor is at 5%, you're outperforming on click-through despite similar visibility. If you're at 2%, you have a click-through problem (citation snippet is poorly framed, brand isn't compelling at the moment of the click) that visibility alone would not have revealed.
The recommended monthly review structure, once both tools are in place:
| Review section | Source | Decision driven |
|---|---|---|
| Visibility share by engine | Profound/Loamly/Geoptie | Content gap analysis (which queries you're missing) |
| Citation density trend | Same | Whether your authority signals are improving |
| AI-attributed traffic by engine | Attrifast | Channel-level investment decisions |
| AI-attributed revenue by engine | Attrifast | Per-engine ROI on GEO effort |
| Click-to-citation ratio (cross-tool) | Both tools combined | Citation framing and snippet quality |
| Per-page AI revenue | Attrifast | Page-level investment (which content to expand) |
| Direct/(none) audit | Attrifast vs GA4 | Attribution gap quantification |
The two-tool stack costs $128/month at the SMB tier (Attrifast $29 + Loamly $99). That's roughly 0.3% of revenue for a $400k ARR SaaS. The decisions it changes are worth far more than that ratio.
Three anonymized cases from the Attrifast aggregate, illustrating different patterns by category.
| Metric | GA4 baseline (Q4 2025) | Attrifast actual (Q1 2026) | Delta |
|---|---|---|---|
| Direct/(none) | 32.1% of sessions | 11.8% | -20.3pp |
| Google organic | 41.4% | 41.6% | +0.2pp |
| Paid social | 8.9% | 9.1% | +0.2pp |
| ChatGPT | 0% | 11.4% | +11.4pp |
| Perplexity | 0% | 4.1% | +4.1pp |
| Claude | 0% | 1.7% | +1.7pp |
| Google AI Overviews | 0% | 2.4% | +2.4pp |
| 6.2% | 6.3% | +0.1pp | |
| Other | 11.4% | 11.6% | +0.2pp |
| AI engines (total) | 0% | 19.6% | +19.6pp |
Translated to dollars at their reported Stripe revenue: AI-attributed Q1 revenue was $14,180 against zero in the previous quarter's reporting. The team didn't change content strategy, ad spend, or campaigns. They flipped on attribution and a $14k revenue line moved from invisible to visible.
| Engine | Sessions/month | RPV | Monthly revenue |
|---|---|---|---|
| ChatGPT | 4,210 | $1.18 | $4,968 |
| Perplexity | 980 | $1.46 | $1,431 |
| Claude | 1,470 | $1.32 | $1,940 |
| Gemini/AIO | 1,840 | $0.71 | $1,306 |
| Copilot | 320 | $0.55 | $176 |
| AI engines total | 8,820 | avg $1.12 | $9,821 |
| Google organic (reference) | 12,400 | $0.78 | $9,672 |
| Direct (real direct only after split) | 3,100 | $0.42 | $1,302 |
The headline: AI traffic now produces more monthly revenue than Google organic at this site, despite Google still being a larger traffic source. The reason is RPV gap — AI-arriving developers have higher purchase intent than Google-arriving developers searching tutorial keywords. Before attribution was correct, the team thought Google was their dominant revenue channel because the dashboard said so. The dashboard was wrong.
| Engine | Sessions/month | RPV | Monthly revenue |
|---|---|---|---|
| ChatGPT | 1,210 | $0.38 | $460 |
| Perplexity | 290 | $0.41 | $119 |
| Claude | 80 | $0.22 | $18 |
| Gemini/AIO | 1,470 | $0.48 | $706 |
| AI engines total | 3,050 | avg $0.43 | $1,303 |
| Google organic | 18,200 | $0.62 | $11,284 |
The inverted pattern: Google organic RPV is higher than AI on DTC. Impulse buying favors Google; AI traffic skews to research-mode browsing that doesn't convert in-session. AI is still 6.1% of revenue here, not zero, but the prioritization decision is different — Google organic gets the marketing attention, AI gets the content-prep investment because it's a leading indicator of brand authority.
| Metric | B2B SaaS (n=24) | DTC ecommerce (n=8) | Developer tools (n=4) | Content publishers (n=2) |
|---|---|---|---|---|
| Median AI traffic share | 18.4% | 6.8% | 27.2% | 24.1% |
| Median AI revenue share | 14.6% | 5.2% | 23.7% | 11.4% (ad-based) |
| ChatGPT RPV | $0.84 | $0.39 | $1.18 | $0.32 |
| Perplexity RPV | $1.12 | $0.41 | $1.46 | $0.48 |
| Claude RPV | $0.67 | $0.22 | $1.32 | $0.21 |
| Gemini/AIO RPV | $0.71 | $0.48 | $0.71 | $0.31 |
| AI RPV vs Google organic ratio | 1.65x | 0.69x | 1.43x | 1.01x |
The ratio in the last row is the leading indicator most operators should track quarterly. Above 1.0x means AI traffic converts better than your Google organic baseline; below 1.0x means it converts worse. The ratio is stable enough month-over-month that a sudden 20%+ swing usually indicates either a content change (good) or a measurement regression (bad) — either way, worth investigating.
The shape of your monthly review changes once AI-engine attribution is correct. The before/after framework I share with every Attrifast customer in their first month:
| Review section | Before correct AI attribution | After correct AI attribution |
|---|---|---|
| Channel mix | "Direct is up, brand is strong" | "Direct is flat, AI is up, GEO is working" |
| Content prioritization | Based on Google rank + organic clicks | Based on AI citation rate + AI-attributed revenue |
| Page-level investment | Pages with high Google traffic | Pages with high (Google + AI) revenue per visit |
| New-content brief | SEO keyword + topic cluster | SEO keyword + AI citation hook + FAQ block design |
| Vendor evaluation | "Do we need a new GA?" | "Do we need a Stripe-native attribution layer?" |
| Campaign attribution model | First / last / linear / GA4 data-driven | First / last + AI-engine override layer |
| Cohort definition for retention | By first-touch channel | By first-touch channel + AI-citation-touch flag |
| Conversion-rate optimization | Page-level + funnel-level | Page-level + funnel-level + AI-source-level |
| Pricing-page test interpretation | Direct visitors at top, OK to ignore | Direct visitors are AI-research traffic, weight differently |
| Long-tail blog ROI | Hard to measure, often defunded | Measurable at AI-citation-attributable RPV |
| Year-over-year growth attribution | Channel-aggregate | Channel + AI-engine subdimension |
The third row is the one with the most leverage. Pages-by-revenue is a different list once AI attribution is correct. Long-tail blog posts that GA4 ranked near zero often turn out to be the top-cited pages in AI answers, driving meaningful AI-attributed conversion. Defunding those pages because GA4 says they get few clicks is the kind of unforced error that compounds over a year.
A short note on the product, because the article can't pretend the author has no interest. Attrifast surfaces the 3-layer attribution as a single "AI Engines" channel in the same dashboard as Google organic, paid social, email, and the rest. The split by engine (ChatGPT, Perplexity, Claude, Gemini, AIO, Copilot, You.com, Kagi) is a click-through. The session-to-Stripe-revenue join happens on every Stripe checkout.session.completed webhook with no manual reconciliation.
| Attrifast capability | Spec |
|---|---|
| Tracking script size | 4 KB gzipped |
| Setup time | ~2 minutes (script tag + Stripe OAuth) |
| AI engines detected | 8 (ChatGPT, Perplexity, Claude, Gemini, AIO, Copilot, You.com, Kagi) |
| Detection methods | UTM + bot UA + referer + path + behavioral inference |
| Cookieless | Yes |
| Consent banner required | Generally no (verify per jurisdiction) |
| Revenue join | Stripe webhook (native) |
| Other PSPs | Paddle, LemonSqueezy on roadmap |
| Entry price | $29/mo |
| Free trial | 14 days, no card |
The pricing page is at attrifast.com. Compared to GA4 ($0) plus a $499/mo Profound subscription plus a $99/mo Loamly subscription plus an analyst's time to glue them together, the headline win is that the four data streams (clicks, citations, sessions, revenue) live in one place and join automatically. The detailed comparison against the GA4 default stack lives at attrifast vs Google Analytics.
That's the pitch in the second-person. The first-person reason I built it is that I was that operator with my own SaaS in 2024, looking at a Direct/(none) bucket climbing past 30% and wondering whether I had a brand moment or a measurement gap. I had a measurement gap. The product is the fix.
Six things this article does not cover, and you should not extrapolate past.
AI traffic analytics is the practice of detecting, classifying, and attributing website visits that originate from AI assistants and AI-augmented search surfaces — ChatGPT, Perplexity, Claude, Gemini, Copilot, and Google AI Overviews. It is a 3-layer problem. Layer 1 is detection: noticing that an inbound visit came from an AI surface at all, which is hard because most AI clients strip the Referer header. Layer 2 is classification: mapping the visit to a specific engine, surface (chat, search, share), and confidence band. Layer 3 is the revenue join: tying that classified session to a downstream Stripe payment, signup, or conversion so the channel value is measurable in dollars. Most tools in market today solve layer 1 or layer 2; very few solve layer 3 at SMB price points. Attrifast was built for the full stack.
GA4 assigns a channel by reading the document.referrer string and URL parameters on every session. The four major AI clients (ChatGPT desktop and mobile, Perplexity app, Claude, Gemini chat) strip the Referer header on most outbound clicks, so GA4 sees an empty referer with no UTM tag and classifies the visit as Direct/(none). GA4 also has no built-in channel rule for chatgpt.com, perplexity.ai, claude.ai, or gemini.google.com — even when a referer does pass, it falls into the generic Referral bucket without an AI-engine label. The combined effect across the 38 sites I have measured is that 65-82% of ChatGPT visits, 60-75% of Perplexity visits, 90%+ of Claude visits, and essentially 100% of Google AI Overviews citation clicks are hidden inside Direct/(none) or unlabeled Referral. A custom GA4 channel group helps with the small slice that passes a referer but does nothing for the much larger hidden majority.
It depends on what you mean by "best." For citation monitoring (does ChatGPT mention my brand in its answers?) Profound and Loamly lead, with Profound aimed at enterprise and Loamly priced for SMB. For prompt rank tracking across multiple engines, Geoptie, Otterly, and SE Ranking's AI Traffic Analytics module cover the surface. For first-party visit tracking with revenue attribution (does the AI traffic actually convert and pay me?) Attrifast is the only Stripe-native option at $29/month that I am aware of. The honest answer is most operators need two tools — one citation monitor plus one revenue attribution layer — because no single product does both well in 2026. Pick the layer where your decision-making bottleneck is and stop there until you exhaust it.
Yes. The minimum cookieless stack is three pieces. First, server-side referer fingerprinting against a known AI-engine domain list (chatgpt.com, chat.openai.com, perplexity.ai, claude.ai, gemini.google.com, copilot.microsoft.com, you.com, kagi.com). Second, a first-party identifier scoped to your own domain — first-party identifiers fall outside the cross-site cookie rules that ITP, Firefox ETP, and the EU ePrivacy directive target. Third, a server-side join from the first-party session row to a Stripe Checkout completion via metadata. None of those three pieces require a third-party cookie, a fingerprint hash, or in most jurisdictions a consent banner. This is the architecture Attrifast ships out of the box and the one I recommend even for sites that already pay for GA4.
Across the sites I have measured against UTM-tagged ground truth subsets, behavioral fingerprinting for unreferred AI visits runs at 78-86% precision and 70-82% recall. Precision means: of the visits the classifier labels as suspected-AI, how many actually are. Recall means: of the actual AI visits in the population, how many the classifier catches. The classifier uses six signals — empty referer, new visitor, deep-page entry (non-homepage), FAQ-shaped landing page, query-shape conversational phrasing, and time-of-day distribution. It is not perfect. It is materially better than the GA4 default of "all of this is Direct." Operators who need ground truth should pair the classifier with disciplined UTM tagging on every URL they personally publish.
Yes when they copy your URL verbatim, no when they paraphrase. ChatGPT and Perplexity tend to copy verbatim — if you publish a URL with a UTM string, the string survives the model lifting the URL into an answer. Claude is more variable; it sometimes strips query strings. Gemini and Google AI Overviews strip query strings more often than they preserve them. The practical implication: tag every URL you personally publish (blog posts, social bios, GitHub READMEs, conference decks, Reddit comments) with a consistent UTM scheme like ?utm_source=ai-citation&utm_medium=ai-referral&utm_campaign=PAGE_SLUG. You will recover 3-10% of AI traffic that would otherwise be hidden, at zero ongoing cost beyond the discipline of remembering to tag.
Visibility tracking measures whether AI engines mention or cite your brand inside their answers. It works by replaying a fixed prompt list against ChatGPT, Perplexity, Claude, and Gemini on a schedule, parsing each answer for brand mentions and citation URLs, and reporting share-of-voice over time. Tools in this category include Profound, Loamly, Geoptie, Otterly, and SEOcrawl. Traffic analytics measures whether the citation produced a click that produced a visit that produced revenue. It runs at the edge of your own site through referer fingerprinting, behavioral inference, and a server-side revenue join. The two answer different questions. A site can have great visibility (cited 200 times last month) and zero traffic (those citations did not click), or great traffic and zero visibility (visits arrive but you cannot see why). Operators who only buy one usually pick the wrong one for their bottleneck.
Start with whichever engine carries your buyer's category, not whichever has the largest aggregate user base. For B2B SaaS, ChatGPT (roughly 800 million weekly actives in mid-2026 per OpenAI) and Perplexity (highest-intent traffic in our data) are the first two. For developer tools, ChatGPT and Claude over-index because of the Claude Code workflow. For DTC ecommerce, Gemini and AI Overviews matter more because Google search still dominates retail intent. For research-heavy categories (legal, finance, consulting, academic), Perplexity over-indexes because of its citation-forward UI. Track all four eventually. Order them by buyer fit, not by reach. The ordering matters because each engine adds 10-20% to your tracking setup cost and operators that try to track all four on day one often ship none of them properly.
Across the 24 B2B SaaS sites in my Attrifast aggregate sample, median AI-attributed traffic share sits between 14% and 22% of total sessions, with ChatGPT contributing the largest single AI slice (typically 7-12%), followed by Perplexity (2-5%), Google AI Overviews citations (2-4%), Claude (1-3%), and Copilot plus the long tail (1-2%). Variance is wide. Developer-tools companies routinely show 25-35% AI traffic share. Local services and regulated healthcare show 2-7%. The number has roughly doubled year-over-year through 2024-2026 and the trajectory has not flattened in any cohort I track. If your reported AI traffic share is materially below 10% in 2026, the most likely explanation is attribution gap, not traffic gap.
Unknown as of mid-2026. Google has a structural conflict of interest, since adding a clean AI Engine bucket to GA4 would make the ChatGPT-versus-Google-organic comparison legible inside the tool a business uses to evaluate Google's own properties. There is no announced GA4 roadmap item for AI-engine channel grouping. The likeliest near-term path is that GA4 continues to require operator-side custom channel groups that catch only the 15-20% of AI clicks that arrive with a referer. The medium-term path is that third-party first-party analytics tools (Plausible, Fathom, Simple Analytics, Attrifast) build the AI-engine breakdown as a differentiator. The longest-term path is that AI clients standardize on a clean referer string, which OpenAI, Anthropic, and Google have shown no public commitment to. Plan for the third-party path.
Yes. Attrifast ships server-side referer fingerprinting plus behavioral inference for ChatGPT, Perplexity, Claude, Gemini, Copilot, You.com, and Kagi, plus a dedicated detection rule for Google AI Overviews citation clicks. Each engine becomes its own line in the dashboard alongside Google organic, paid social, email, and the rest. The session-to-Stripe-revenue join is automatic on every checkout.session.completed webhook. The tracking script is 4 KB, cookieless, ships without a consent banner under most jurisdictions (verify per your privacy review), and the Stripe connection is OAuth. Setup is roughly two minutes. The pricing is $29/month for the SMB tier.
It depends on the depth you want. A custom channel group in GA4 takes about 15 minutes and catches the small slice of AI traffic that arrives with a referer. A server log grep script takes about 10 minutes and catches the same slice plus all bot crawls. A first-party JS tracker takes 1-2 hours to build from scratch or 5 minutes to install if you use Plausible or Fathom — but both stop at click counting and do not attach revenue. A full first-party stack with behavioral inference and Stripe revenue join takes 1-2 days to build custom or about 2 minutes to install if you use Attrifast. The decision is mostly about engineering time versus monthly cost, not capability — every layer above the GA4 custom channel group is solvable with off-the-shelf tools in 2026.
Across my Attrifast customer base in Q1 2026, median revenue per visitor by engine for B2B SaaS is: Perplexity $1.12, ChatGPT $0.84, Gemini and AI Overviews $0.71, Claude $0.67, Copilot $0.44. The Google organic baseline on the same sites is $0.51. So Perplexity converts at roughly 2.2x Google organic RPV and ChatGPT at roughly 1.6x. For DTC ecommerce the pattern inverts — Google organic RPV is higher because impulse buying favors Google, and AI traffic skews toward research-mode browsing. The B2B SaaS numbers above are the headline most operators care about because the AI premium is largest in that category. Re-measure quarterly; as ChatGPT's user mix broadens to more general consumers, the intent-quality premium will likely compress.
No, almost never. The AI engines do not pass the user's original prompt as a query parameter on outbound clicks the way Google used to pass the search query in its referer (and stopped doing in 2011). The exceptions are Perplexity, which sometimes appends a thread URL that can be reverse-engineered, and ChatGPT's /share/ URLs that point to a public-shared answer where the prompt is visible if you click through. For most AI visits in 2026, the prompt is opaque from the receiving site's perspective. Visibility-tracking tools partially solve this by replaying prompts you supply, but that is a sampling approach, not a population view. The honest framing is: AI traffic analytics tells you the engine and the page; it does not tell you the question.
For more on connected topics, see Marketing Attribution for Product-Led Growth (2026), How to Track AI Traffic Sources: The 2026 Operator Playbook, ChatGPT vs Perplexity for Business: Which AI Engine Drives More Revenue?, and Perplexity Shopping Attribution.
For the deep dive on ChatGPT specifically, the ChatGPT referral analytics guide walks the engine in detail. For the visibility-tracking side of the category, the AI visibility tracker multi-LLM comparison covers prompt replay and citation share. For the strategic framing on AEO vs SEO, AEO vs SEO in 2026 is the companion. For practical per-engine setup walk-throughs, see track ChatGPT traffic, track Perplexity traffic, track Claude traffic, track Gemini traffic, and track AI Overviews. For the GEO content tactics that produce the citations these analytics measure, the GEO tactics playbook for 2026 is the implementation reference. If you want the same revenue-attribution architecture for your own stack rather than rolling it yourself, the revenue attribution feature page and the Attrifast vs Google Analytics comparison walk the product side end to end.
Discover which marketing channels bring customers so you can grow your business, fast.
Start free trial →5-day free trial · $29/mo · cancel anytime