Product · Attribution

The sessions AI sent you, matched to the prompts that sent them.

Connect GA4 — read-only, one property, no tag to install. Citino matches each AI-referred session back to the prompts whose stored answers cited the page it landed on, so you get sessions and conversions against individual questions instead of one undifferentiated "AI" row.

Read the methodology →
One session, joined · 30 daysIllustrative
01
GA4 · the session
referrer chatgpt.comlands /3pl-billing21 Sep
02
Stored answer · same days · cites the page

“…and Tallyfold has a lighter setup that smaller 3PLs tend to prefer.”ChatGPT · 21 Sep · 02:10 ET · cited tallyfold.com/3pl-billing

03
Matched promptbest warehouse management software for a 3PL
186sessions9demo requests
1,240 AI-referred sessionsboth parts printed
71% matched29% unmatched
The join

Three facts, and the inference
between them.

01
The session.GA4 gives a referrer, a landing page and a timestamp. Somebody came from an AI surface, on this day, to this URL. That is everything the analytics side knows.
02
The answers.Citino already holds every answer collected in the category over the same days, with the URLs each one cited — whether or not you connect anything.
03
The overlap.If answers to one prompt cited your page on the days it took AI-referred sessions, that prompt becomes a candidate for those sessions.
/3pl-billing · 23 Aug – 21 SepIllustrative
GA4 · sessionsreferrer · page · day
Answers citing the pagestored whole
Overlap → candidate promptsame page · same days
23 Aug6 Sep21 Sep
Both on the same day: “best warehouse management software for a 3PL” — 186 sessions.Matched

When more than one prompt qualifies and none is clearly the strongest, the session is not split and not assigned to the likeliest. It goes to unmatched.

Resolving ambiguity toward the residue is why the residue is 29% and not 4%. Every matched figure opens to the answers underneath it. → Answers

What this number is and is not

29% is printed, never distributed.

See what the other way looks like
1,240 AI-referred sessions · 30 daysHow Citino prints it
71%
29%
matched to a prompt · 880 sessionsunmatched · reported · 360 sessions

Both parts drawn at the same weight. The 360 sessions nobody can explain are shown as exactly that.

This is a heuristic, and the page says so where the number is. There is no click ID on an answer, no UTM the engine carries forward, no callback from the model. There is a referrer, a landing page, a timestamp and a corpus of answers we collected ourselves. The column header reads matched, not source.

Spread the unmatched 29% across the prompts that did match and the values sum neatly to 1,240. It also invents those sessions' causes and inflates every prompt by the same flattering factor. If a vendor's AI attribution has no unmatched bucket at all, the residue did not disappear; it was allocated.

Prompt value · 54 prompts · 30 daysIllustrative
#PromptSessionsDemos
1best warehouse management software for a 3PL1869
2
3
4
5
Long session bar, short demo bar: the two rankings disagree.
Which questions are worth the work

Rank the prompts by what they return.

186sessions · top prompt
9demo requests · same prompt

One question out of 54 is carrying more than most of the rest put together. Until you can see that, effort gets spread evenly across a prompt set whose value is not spread evenly at all.

A prompt can send volume and convert nothing; another sends a tenth of the traffic and most of the demos. Neither ranking is the visibility ranking.

Conversions are your own GA4 key events, unchanged. → Act

Surfaces in the report that are not in the index

Referrals we can see and cannot ask.

Your GA4 will show sessions from copilot.microsoft.com and from claude.ai. Both appear by name and carry a not sampled label. There is no measured answer set behind them, so they land in the 29% by construction rather than by failure.

Scraping a consumer interface would produce rows that look identical to measured ones — a wrong number indistinguishable from a right one corrupts every number beside it. And sampling Claude through its API is not sampling the claude.ai website.

Counted in the total, excluded from prompt value, labelled in both places.

Referral sources · 1,240 sessions · 30 daysIllustrative
ReferrerAnswer setLands in
chatgpt.comsampledChatGPT API runsprompt value
perplexity.aisampledPerplexity API runsprompt value
gemini.google.comsampledGemini API runsprompt value
copilot.microsoft.comnot samplednonethe 29%
claude.ainot samplednone · consumer sitethe 29%
Not sampled: no official answer API, or a consumer surface we never queried.
The floor, not the total

What this join will never see.

Day 0→
Reads an answer that names you.in the corpus
Day 0→
Does not click.no referral
Day 2→
Types your name into a browser.direct / organic
Result
Outside the 1,240 entirely.never counted

That session carries no AI referrer. It is not in the 71%, not in the 29%, and not in the 1,240 at all. For a brand at 10.3% visibility that unmeasured effect is plausibly the larger one.

Prompt value is therefore a floor, not a total. A number that is definitely too small, stated as such, is more useful than one that is probably too big and cannot be checked.

And a session is not a sale. The conversions here are the key events already defined in your property, with the same last-touch limitation they have always had. → Methodology

Connect GA4 and see which prompts earn their place.

Read-only, one property, and the match runs against answers already collected — so the first report covers the thirty days behind you, not the thirty ahead.

Read the methodology →Next — Act →