Tracking the Dark Funnel: The Revenue GA4 Misses
How to measure revenue that AI recommendations drive but GA4 files as direct traffic or branded search, using a survey protocol you can run yourself.
Chapter 1The Sale GA4 Called Direct Traffic
A customer asks ChatGPT: “What's the best project management tool for a 20-person startup?” ChatGPT recommends your product. The customer opens a new tab, types your brand name into Google, clicks, and purchases. GA4 records the source as “google / organic” or “direct / none.”
The AI agent that drove the discovery? Invisible. No UTM parameter. No referral header. No click ID. GA4 has no idea that conversation ever happened, and it never will, because AI agents don't link out the way traditional websites do.
The reason is mechanical rather than statistical, which is why it does not depend on anyone's survey. Attribution in GA4 is built on the Referer header and on click identifiers in the URL. Assistants frequently send neither: some strip the header, some open links in an in-app browser that does not pass one, and a user who copies a link out of a chat and pastes it into a fresh tab has destroyed the signal regardless of what the assistant does. A session arriving with no referrer and no click ID is not ambiguous to GA4, and it is not counted as unknown. It is labelled Direct, with full confidence, because Direct is precisely the bucket for traffic that carries no origin information. The misattribution is not a bug in the tool. It is the tool doing what it says on the tin against inputs that no longer carry the data it was designed to read.
This is the dark funnel, the growing share of your revenue pipeline that originates in AI conversations but appears in your analytics as something else entirely. And it's getting larger every month as AI agent adoption accelerates.
Chapter 2Three Types of Dark Funnel Revenue
Not all dark funnel revenue is the same. Understanding the three types helps you measure each one with different methodologies.
Type 1: AI-to-Brand Search
LargestThe customer gets a recommendation from an AI agent, then searches your brand name on Google. GA4 records this as organic or paid branded search. This is the largest category of dark funnel revenue.
Type 2: AI-to-Direct Navigation
No referrerThe customer gets a recommendation, types your URL directly into their browser, or opens a saved bookmark after the AI conversation. GA4 records this as direct traffic, correctly, because no referrer was ever sent.
Type 3: AI-Influenced Delayed Conversion
SmallerThe customer doesn't convert immediately but the AI recommendation plants a seed. They see a retargeting ad or social post days later and convert. The ad platform claims credit, but the AI agent created the initial intent.
Interactive
The invisible customer journey
Click each step to see how AI-driven purchases become invisible.
Ask ChatGPT
User asks: 'Best running shoes for flat feet under $150?'
The three types compound, and none of them is visible from inside your own reporting. We are not going to put a percentage on the combined total, because we do not have one we measured and the figures circulating publicly trace back to vendor blog posts rather than to a readable method. What is safe to say is structural: every one of the three paths above terminates in a session that GA4 files under Direct or branded organic, so the size of your dark funnel is not a number you can look up. It is a number you have to go and measure, which is what the rest of this guide is about.
Chapter 3Why Traditional Attribution Is Blind
Traditional attribution relies on three mechanisms, UTM parameters, referral headers, and cookies. AI agents break all three simultaneously.
No UTM Parameters
When ChatGPT mentions your brand, there's no hyperlink with tracking parameters. The user types your URL or searches your name manually. No UTM, no attribution.
No Referral Headers
AI conversations happen in closed environments. When a user opens a new browser tab after reading a recommendation, the HTTP referrer is empty or shows Google, never the AI platform.
No Cookie Continuity
There's no cookie linking the AI conversation to the subsequent website visit. The user starts a completely fresh session with no connection to the discovery moment.
Cross-Device Blindness
Many users ask AI agents on mobile but purchase on desktop. Even sophisticated cross-device tracking can't connect a ChatGPT conversation on an iPhone to a laptop purchase.
The gap is growing
Chapter 4The Post-Purchase Survey Protocol
Everything above establishes that your analytics cannot see this traffic. This chapter is the one method that gets you a number anyway, and it works because it stops trying to infer the source from telemetry the assistant never sent, and asks the buyer instead. It needs no vendor, no tag manager migration and no model. A survey field on your order-confirmation page and a spreadsheet is the entire apparatus.
It is also the only instrument in this guide that produces evidence you can defend to a finance team, because the output is not an estimate derived from coefficients. It is a count of customers who told you where they came from, set against what your analytics recorded for those same orders.
The question, verbatim
One question. Not two, and not a grid. Ask it on the order-confirmation page, after the payment has cleared and before any upsell or account-creation prompt. Make it optional and single-select, and put it above the fold of that page rather than under the fold where only the diligent scroll.
Answer options, in this order, with the order randomised per session except for the last two:
Search engine (Google, Bing) / AI assistant (ChatGPT, Claude, Perplexity, Gemini) / Social media / Friend or family / Podcast or newsletter / Saw an ad / Other (free text) / Do not remember
Three design points that decide whether the data is usable. Name the assistants explicitly, because “AI assistant” alone gets under-selected by people who think of it as just searching. Keep “Do not remember”, because without it that population distributes itself across your real options and inflates whichever sits first. And randomise the order of everything except Other and Do not remember, because first- position bias in a list of eight is large enough to swamp the effect you are looking for.
On timing: run it for four full weeks minimum, and until you have at least 200 responses, whichever is later. Four weeks because a shorter window lands inside a single promotional cycle and you will measure your last campaign rather than your baseline. 200 because below that a channel sitting at 5 percent has fewer than ten responses behind it, and one unusual week moves it enough to reverse your conclusion. If your order volume cannot reach 200 in eight weeks, run it continuously and read it quarterly instead of trying to force a window.
Capture the response against the order ID
The response is worthless as an aggregate percentage and valuable as a row joined to an order. Store the answer alongside the order ID, not just as a survey tally, because the entire method depends on comparing the two sources for the SAME orders.
Export what your analytics believed about those same orders
For each order ID in the survey set, pull the session source and medium your analytics recorded. In GA4 this means exporting transactions with their attributed source or medium and default channel grouping over the identical date range.
Join the two on order ID and cross-tabulate
One row per order, two columns: what the customer said, what the analytics said. Then count the cells. You are looking specifically at the row where the customer answered AI assistant, and at what the analytics claimed those orders were.
Read the disagreement, not the totals
The headline number is not what share said AI assistant. It is what share of the orders where the customer said AI assistant were filed by analytics as Direct or branded organic. That is your attribution gap, measured on your own data.
Re-run it quarterly and keep the wording frozen
Changing the question or the option list breaks comparability with your own prior reads, which is the only benchmark that matters here. If you must change it, treat that as a new baseline rather than a continuation.
Believable disagreement, versus noise
What looks like a real finding. A concentrated, one-directional gap. Customers who answered AI assistant land overwhelmingly in Direct and branded organic rather than scattering evenly across every channel. The pattern holds when you split the data in half by date. It survives excluding your largest promotional week. And the same customers show a plausible behavioural signature, typically arriving on a product page rather than the homepage.
What looks like noise. A gap that moves by more than a few points between the first and second halves of the window. A gap that disappears when you drop one week. Anything resting on fewer than about 30 responses in the AI-assistant row, whatever the total sample. And an even spread of AI-assistant answers across every analytics channel including paid social, which usually means people are selecting the answer that sounds most modern rather than recalling what happened.
The honest failure mode is the one worth naming: self-reported attribution is recall, and recall is biased toward whatever the customer did most recently and whatever is culturally salient. It tells you a channel is materially present and is being filed somewhere else. It does not give you a precise percentage, and any process that treats it as though it does has quietly turned a survey into a model.
Chapter 5Setting Up Dark Funnel Measurement
Here's the practical step-by-step for implementing dark funnel measurement, whether you're using Cresva or building your own approach.
Baseline your 'direct' and 'organic brand' traffic
Before you can measure the dark funnel, you need 30 days of clean baseline data for direct traffic and branded organic search volume.
Set up AI agent monitoring
Systematically query ChatGPT, Perplexity, Claude, and Gemini with purchase-intent prompts in your category. Track mention frequency weekly.
Implement conversion path tagging
Add custom dimensions in GA4 to flag sessions that match AI-referred behavioral signatures: direct landing on product pages, short session duration with high purchase rate.
Build correlation models
Correlate AI mention frequency with branded search volume and direct traffic changes over 8-12 week windows to establish your brand's specific dark funnel coefficient.
Run validation surveys
Add a 'How did you hear about us?' post-purchase survey. Include 'AI assistant / ChatGPT / Perplexity' as options. This provides ground truth to calibrate your model.
Integrate into attribution
Feed dark funnel estimates into your attribution model as a new channel. Reallocate credit away from branded search and direct to reflect the true AI-driven share.
Survey validation
Chapter 6The Attribution Model
Once you've established dark funnel measurement, the next challenge is integrating it into your attribution model so budget decisions reflect reality. Here's the framework Cresva uses.
Step 1: Decompose branded search
Split branded search conversions into three buckets: ad-driven (incrementality tested), organic brand equity, and AI-referred. The split is brand-specific and there is no benchmark worth borrowing here; the point of the decomposition is to produce your own number.
Step 2: Reclassify direct traffic
Apply your dark funnel coefficient to direct traffic. Create a virtual 'AI Agents' channel and move the AI-referred share of direct credit into it.
Step 3: Adjust retargeting credit
Some retargeting conversions started with AI discovery. Reduce retargeting attribution by the estimated AI-influenced delayed conversion rate.
Step 4: Build the AI Agent channel
Aggregate all reclassified revenue into a new 'AI Agent' attribution channel. Track it alongside paid, organic, and direct. Optimize for it by improving your agent visibility.
Cresva's dark funnel measurement runs continuously across all your channels. Without manual surveys or guessing at correlation, you get clear visibility into the revenue AI agents are driving and how to grow it.
Agent Visibility Playbook: Get Recommended by AI
How to measure and improve your brand's visibility across ChatGPT, Claude, Perplexity and Gemini, from tracking agent mentions to earning the pick.
Marketing Attribution for Ecommerce Brands
Why platform-reported ROAS is wrong, how holdout testing works, and how to find true incremental value per channel.