Skip to content
How-to guide

How to Set Up Self-Reported Attribution for AI Leads

The short answer

Add a required "How did you first hear about us?" question to every lead form, checkout and sales call, with "AI assistant (ChatGPT, Perplexity, Gemini, Claude)" as its own option and a free-text follow-up. Referrer data under-counts AI leads because people often read an answer, then search your name or type your URL later.

  • Analytics credits many AI-influenced visits to Google organic or direct, so self-reported answers catch leads that click tracking misses.
  • List AI assistants as their own option, allow more than one answer, and add an optional "what did you ask?" box.
  • Link each answer to the real deal value in your CRM, then estimate AI's share of revenue from the answers.
  • Treat the result as a floor, not a precise number. People forget, and many do not answer.

Why does referrer data under-count AI leads?

Referrer data only sees a click. When an assistant names your brand and the reader does not click, nothing is recorded. Peec AI, an AI-visibility vendor, makes the same point: with no click to track, people often search for you next or type your address, so analytics credits Google organic or direct traffic instead 2.

The tools themselves also blur the picture. Google Analytics 4 has an AI Assistant channel for visits from assistants such as ChatGPT, Gemini and Copilot. That channel excludes Google's AI Overviews and AI Mode, and Google's channel rules put those inside Organic Search 3. Search Console adds AI feature clicks to the overall Web search data, with no separate AI report 4.

So the path is often this: a person asks an assistant for suppliers, sees your name, and searches it on Google two days later. Your report says "organic search, brand query". Only the person knows an AI answer started it. Self-reported attribution is how you ask them.

Do it step by step

0 of 8 done0%

  1. Write six or seven options using the table above. Put "AI assistant" on its own line and name the main assistants in brackets.

    Tip: Ask your sales team which answers they hear most often and add them.

  2. Add "How did you first hear about us?" to contact, demo, sign-up and checkout forms. Make it required (group-required checkboxes need a little script or your form tool's setting), with no default option, and allow more than one choice.

    Tip: Test one form first and watch the completion rate for a week.

  3. Show an optional box "What did you ask it?" when the AI option is ticked. Store the reply in its own CRM field.

  4. On the first page a visitor lands on, store document.referrer and the utm parameters in sessionStorage or a first-party cookie, only if empty. Fill a hidden input from that stored value on the form page, so each lead carries both the stated source and the first tracked one.

    Tip: Some browsers send an empty referrer. An empty value is normal and is itself useful.

  5. Give sales a one-line script and a fixed CRM dropdown. They ask the question out loud on the first call and record the answer.

  6. In your CRM, join the source answer to the deal amount for won deals. Export one row per deal with source, amount and date.

  7. Calculate the AI share of respondent revenue, the response rate and the share of tracked AI Assistant visits from GA4. Put all three side by side in one table.

  8. Read every "what did you ask?" and "Other" reply. Turn the common questions into pages, using the method in our fan-out research guide.

Your ticks are saved in this browser only.

Copy-ready templates

Form question wording

text
How did you first hear about us? (tick all that apply)
[ ] Google or another search engine
[ ] AI assistant (ChatGPT, Perplexity, Gemini, Claude, Copilot)
[ ] Social media (LinkedIn, X, Instagram, YouTube)
[ ] Friend, colleague or referral
[ ] Podcast, newsletter or event
[ ] Advert
[ ] Other: ________

If you ticked AI assistant: what did you ask it? (optional)
________

Show the last question only when the AI box is ticked. Do not pre-select any option.

HTML for the field plus stored first referrer

html
<!-- On every landing page: store the first referrer once -->
<script>
  try {
    if (!sessionStorage.getItem('first_referrer')) {
      sessionStorage.setItem('first_referrer', (document.referrer || '(none)') + ' | ' + location.search);
    }
  } catch (e) {}
</script>

<!-- On the form page -->
<fieldset>
  <legend>How did you first hear about us? (tick all that apply)</legend>
  <label><input type="checkbox" name="source" value="search"> Google or another search engine</label>
  <label><input type="checkbox" name="source" value="ai-assistant" id="src-ai"> AI assistant (ChatGPT, Perplexity, Gemini, Claude, Copilot)</label>
  <label><input type="checkbox" name="source" value="social"> Social media</label>
  <label><input type="checkbox" name="source" value="referral"> Friend, colleague or referral</label>
  <label><input type="checkbox" name="source" value="podcast-event"> Podcast, newsletter or event</label>
  <label><input type="checkbox" name="source" value="advert"> Advert</label>
  <label><input type="checkbox" name="source" value="other" id="src-other"> Other</label>
</fieldset>
<label id="other-followup" hidden>Other (please say)
  <input type="text" name="source_other">
</label>
<label id="ai-followup" hidden>What did you ask it?
  <textarea name="ai_prompt" rows="2"></textarea>
</label>
<input type="hidden" name="page_referrer" id="page_referrer">
<script>
  var first = '(none)';
  try { first = sessionStorage.getItem('first_referrer') || document.referrer || '(none)'; } catch (e) { first = document.referrer || '(none)'; }
  document.getElementById('page_referrer').value = first;
  document.getElementById('src-ai').addEventListener('change', function (e) {
    document.getElementById('ai-followup').hidden = !e.target.checked;
  });
  document.getElementById('src-other').addEventListener('change', function (e) {
    document.getElementById('other-followup').hidden = !e.target.checked;
  });
</script>

Adapt the field names to your form tool. Group-required checkboxes need a few lines of script or your form tool's required-group setting; a plain required attribute would force every box. sessionStorage lasts one browser tab session, so use a first-party cookie if visitors return later.

Sales call script and CRM dropdown values

text
Script: "Before we start, how did you first hear about us?"
Then, only if they do not mention it: "Was there any tool, search or article that pointed you to us?"
Record both answers separately.

CRM dropdown values (use exactly these):
search | ai-assistant | social | referral | podcast-event | advert | other

CRM note field: "What they said, in their words. Prompted: yes/no."

Ask the open question first. A prompt that names AI will raise AI answers, so log whether it was prompted.

Quarterly analysis table

markdown
| Source answer | Won deals | Deal value | Share of respondent revenue |
|---|---|---|---|
| Search |  |  |  |
| AI assistant |  |  |  |
| Social |  |  |  |
| Referral |  |  |  |
| Other |  |  |  |
| No answer |  |  | (excluded) |

Response rate: ___%
GA4 AI Assistant channel deals: ___
Analyst note: sample size, and any change to the form this quarter.

Always show the response rate and the sample size next to the percentages.

What should the question say?

Ask "How did you first hear about us?" and list a short set of options with AI assistants as their own line. Ahrefs advises adding AI tools as an option and allowing more than one answer 1. The word "first" matters, because it points the person at the start of the journey, not the last click.

Add an optional text box that appears when someone picks the AI option: "What did you ask it?" Peec describes this follow-up in Tally's sign-up form 2. The replies are free keyword research. They show the exact questions real buyers put to assistants.

Keep the list to six or seven options. Long lists get skipped, and similar options split one channel into pieces. Always include "Other" with a text box, and read those answers monthly.

Suggested answer options and why each is there
OptionWhy it is on the listCommon mistake
Google or another search engineSeparates classic search from AILeaving out Bing, so people pick Other
AI assistant (ChatGPT, Perplexity, Gemini, Claude, Copilot)The whole point of the fieldWriting only "ChatGPT", which misses the rest
Social media (LinkedIn, X, Instagram, YouTube)Shows where reputation is builtLumping every platform into one blurry answer
Friend, colleague or referralWord of mouth is often the true sourceSkipping it, so referrals appear as Other
Podcast, newsletter or eventCatches offline and audio sourcesMixing it with paid media
AdvertLets you compare paid to organicNot saying which advert in a follow-up
Other (please say)Finds sources you did not expectNever reading the replies

Where should the question go?

Put it wherever a person first identifies themselves: contact forms, demo requests, sign-up and checkout. Ahrefs lists sign-up, checkout and onboarding 1; Peec describes a follow-up question on a sign-up form 2. We also suggest demo calls. Add it to your sales call notes as well, so your team asks it out loud when the form was skipped or left on a default.

Make the field required on forms where you can, but do not set a default answer. A pre-selected "Google" teaches nobody anything. If you must keep forms short, use a single dropdown and ask for the AI follow-up only after someone picks that option.

How do you turn the answers into a number?

Link each answer to the real deal value in your CRM, then compare shares. Ahrefs suggests dividing revenue from respondents who chose an AI tool by the total revenue of all respondents, then applying that share to all new-customer revenue 1. Its own worked example is hypothetical: $10k of $100k is 10%, applied to $400k gives $40k 1.

Here is a second illustrative case, with invented numbers. Last quarter you closed 20 deals. Fourteen buyers answered the question, and three of them chose the AI option. Those three deals were worth $9,000 of the $42,000 won by respondents, which is about 21%. You would report "roughly one fifth of respondent revenue, from a small sample", not "AI drives 21% of our revenue".

Ahrefs warns that these methods will likely undersell AI's real value and that deal values from forms only cover people who convert on their first visit 1. Say so in the report. A sensible rule: show the self-reported share next to the click-tracked AI Assistant share from GA4, and show both numbers; the higher is the better estimate of the minimum, since each method misses cases.

Illustrative quarterly summary (invented numbers, replace with yours)
  • Deals closed: 20 | Respondents who answered: 14 (70%)
  • Chose AI assistant: 3 respondents | Their deal value: $9,000
  • All respondent deal value: $42,000 | AI share of respondent revenue: 21%
  • GA4 AI Assistant channel: 1 deal | Read: self-reported share is higher, as expected
  • Note: small sample. Report as a range and re-check next quarter.

How accurate are self-reported answers?

They are useful but imperfect. Response bias is the general tendency of survey participants to answer inaccurately 5. In this setting that means people forget the first touch, pick the last thing they saw, or give the easy answer.

Two failures are common. Someone who read an AI answer, then Googled you, may well write "Google". And non-respondents are never counted, so the result describes the people who answered, not everyone. Peec's article is a vendor opinion piece and gives no data on how accurate self-reporting is 2. We found no independent accuracy study either, so we do not quote an error rate.

To reduce the problem, ask the open follow-up ("what did you search or ask?"), ask the same question on sales calls, and compare patterns over three or more months. One quarter proves little. A steady trend across forms, calls and GA4 is stronger evidence.

How do you combine it with GA4 and your CRM?

Use the survey answer and the tracked source together. On the first page a visitor lands on, store document.referrer and the URL's utm parameters in a first-party cookie or sessionStorage. Fill a hidden form field from that stored value on the form page, because document.referrer on the form page is usually your own previous page. That lets you compare what the person said with what the browser first recorded. The templates below show the snippets.

Then set up AI traffic reporting with our guide to tracking AI search traffic in GA4 and the free GA4 AI Traffic Setup tool. For the wider picture of ROI, see how to measure AI SEO ROI and AI SEO metrics that matter.

What mistakes ruin the data?

The biggest mistake is a pre-filled answer. The second is changing the option list every month, which breaks comparisons. The third is letting sales reps write free text with no rules, so "chatgpt", "ChatGPT" and "GPT" become three sources.

Fix the third with a fixed dropdown in the CRM and a separate note field. Agree one list, write it down, and change it at most once a year.

When is this not worth doing?

If you get only a handful of enquiries a month, a form field will not give you a pattern. Ask each person on the first call and write the answer in a sheet.

Do not use the answers to fire an agency or cut a channel on the strength of a few responses. Use them as one input beside click data, sales notes and your own checks of what assistants say. Our guide to auditing your brand in AI search covers those checks.

Frequently asked questions

What is self-reported attribution?

It means asking people directly how they found you, usually with a "How did you hear about us?" field on a form or in a sales call. It needs no tracking code, so it can catch discovery that click tracking misses 1.

Why not just rely on GA4's AI Assistant channel?

That channel only counts visits where the browser passed an AI assistant as the referrer. It excludes Google's AI Overviews and AI Mode, which are counted inside Organic Search 3. People who see your name and search it later never appear there.

How many responses do I need?

We found no published rule, so we do not give a magic number. As a plain guide, a few dozen answers over several months can show a direction, while ten answers show almost nothing. Report the sample size every time.

Should I make the field required?

Yes where you can, with no pre-selected answer, because a required field gives you more answers to work with. A long list can annoy people, so keep it to six or seven options. If it lowers form completion, test it on one form first.

Can I use the answers to prove ROI?

Use them as evidence beside other data, not as proof. Ahrefs notes these methods will likely undersell AI's real value 1, and response bias means some answers will be wrong 5. Pair them with CRM revenue and tracked traffic.

About the author

Rahil Jain

Rahil Jain is an AI SEO (answer engine and generative engine optimisation) consultant and co-founder of Chalk Labs.

LinkedIn · Method and credentials

Sources

  1. AI Search ROI Is Messy. Here's How to Measure It Anyway · Ahrefs BlogOpened October 20, 2026. Supports: Advice to ask "How did you hear about us?" with AI tools as an option and multiple answers; use real deal values; revenue-share method; likely undersell; first-visit caveat. Published 6 October 2026. Vendor guidance.
  2. How to measure AI search visibility and revenue: The KPIs that actually matter · Peec AI BlogOpened October 20, 2026. Supports: No click to track when an assistant recommends a brand; analytics credits Google organic or direct; self-reported attribution with a follow-up question; Tally form example. Vendor opinion piece.
  3. [GA4] Default channel group · Google Analytics HelpOpened October 20, 2026. Supports: AI Assistant channel rule; exclusion of AI Overviews and AI Mode; Organic Search includes AI Overviews and AI Mode.
  4. AI features and your website · Google Search CentralOpened October 20, 2026. Supports: AI Overviews and AI Mode traffic is included in the overall Web search data in Search Console. Page last updated 2025-12-10.
  5. Response bias · WikipediaOpened October 20, 2026. Supports: Definition only: response bias as a general term for participants responding inaccurately.
How this page was made. Built on Rahil Jain's AI SEO method and drafted with AI research assistance. Every statistic links to the page we read it on (opened October 20, 2026 or nearby). Published October 20, 2026; last updated October 20, 2026. Chalk Labs sells AI SEO services, so we have a commercial interest in this topic. Spotted an error? Tell us and we will fix it.