You fixed your SEO, your docs, and your comparison pages. Traffic started arriving from ChatGPT, Perplexity, and Claude. Then you opened GA4 and… it's under Direct. Or a nameless Referral. Or worse: it's invisible.
AI search sends real, high-intent B2B traffic — but it is the most misattributed channel in modern SaaS analytics. Here is how to fix it, from shared UTM conventions to GA4 regex rules, so you can actually report on AI share of pipeline.
The attribution gap
AI assistants rarely send the neat referral strings traditional analytics expects:
- Clean referrers —
chatgpt.com,perplexity.ai,claude.aiarrive with recognizable domains, but your GA4 channel groupings probably don't classify them. - Stripped parameters — some AI surfaces strip tracking, pushing sessions into Direct.
- In-app browsing — ChatGPT's browser renders pages with its own referrer context, which varies by platform and over time.
The result: an AI-driven demo request and a dark-traffic bounce look identical. And you cannot optimize a channel you cannot measure.
Step 1 — A shared UTM convention for AI sources
Reuse the discipline from our UTM tagging SOP, and add one reserved vocabulary for AI:
| Parameter | Convention | Example |
|---|---|---|
utm_source |
the AI platform | chatgpt, perplexity, claude, gemini |
utm_medium |
the channel | ai_search |
utm_campaign |
the topic or surface | ai_citations or geo_q3 |
Keep everything lowercase, no spaces, and never reuse ai_search for paid or organic. Standardize before your team tags links, or you will split traffic across ChatGPT vs chatgpt forever.
Step 2 — Where to plant tagged links
AI traffic enters from places you partially control. Tag them all:
- Docs and knowledge base — the pages ChatGPT extracts answers from
- Directory and catalog listings — wherever a name, description, or CTA appears
- Newsletters and cross-posts — content syndicated from your blog
- Tool pages and calculators — high-citation, high-CVR surfaces
- Comparison pages — the single most cited format in AI answers
Build links with the UTM Link Builder so nobody hand-types them.
Step 3 — GA4 regex channel grouping
Add a custom channel group in GA4 that catches AI referrers and your tagged links:
chatgpt\.com|perplexity\.ai|claude\.ai|gemini\.google\.com|utm_medium=ai_search
Create a separate channel group (not the default "Referral") so AI traffic is never drowned by generic referrals, then build a report filtered on that group.
Step 4 — Tools that close the gap
When manual tagging isn't enough, specialized tools capture what UTMs miss:
- Limy Analytics — AI visibility tracking plus referral-level attribution
- Otterly.ai — citation and source tracking across generative engines
- GA4 custom dimensions — free approach storing
ai_sourceandai_campaignon events
Use paid tools as a measurement layer, not a substitute for tagging — clean UTMs make every tool more accurate.
Step 5 — The monthly "AI share of pipeline" report
A 30-minute monthly routine:
- Pull sessions by your AI channel group for the month
- Join with demo/signup events (via custom dimensions)
- Compute AI share of pipeline = AI-sourced qualified leads ÷ total
- Note which queries/topics drove them (from
utm_campaign) - Feed winners into docs and comparison pages for the next cycle
Over two or three months, you get a channel you can actually optimize — which is more than most B2B teams can say about AI search today.
Why this pairs with GEO
Attribution tells you where the traffic came from; GEO tells you how to get more of it. Once you measure AI pipeline, the work you do on citations, comparison hygiene, and community presence has a feedback loop. See the GEO tools overview for the full toolkit.
Related reading
- UTM tagging standard operating procedure
- How to get cited by ChatGPT: organic community GEO
- Top GEO & AI citation tools for SaaS (2026)
- AI visibility audits: quarterly actions