| utm_source | gemini |
| utm_medium | ai-assistant |
| utm_campaign | (set per campaign) |
| utm_id | (set per campaign) |
| utm_term | (set per campaign) |
| utm_content | (set per campaign) |
Gemini is Google’s assistant, but don’t let the Google name fool you into expecting Google Ads-style tracking. There’s no console, no click ID, no macro substitution. And before anything else, you need to separate two things people constantly conflate: Gemini the assistant versus AI Overviews inside Search. They behave completely differently for attribution.
Gemini as a traffic source
Gemini, at gemini.google.com, can browse and reference web pages, and when a user clicks through to one of those references they land on your site as a real visitor. The link Gemini shows is your canonical URL — not a rewritten tracking link — so the UTMs on a Gemini-surfaced link are exactly the ones already on the page. Tag nothing, and the visit arrives untagged.
How its traffic appears in analytics
Gemini clicks can arrive with a missing or opaque referrer, in which case GA4 has nothing to classify and files the visit as (direct)/(none). Where a referrer is present, it commonly comes from gemini.google.com. But because that signal isn’t guaranteed, the durable handle is the UTM you place in the URL yourself — it lives in the query string and survives even when the referrer is gone.
The UTM convention to apply
You tag the canonical links you control that Gemini may surface — URLs in your published content, pages you expose to crawlers, links a Gemini answer might reference.
| Parameter | Value | Why |
|---|---|---|
utm_source | gemini | Identifies the assistant. Lowercase — casing creates duplicate rows. |
utm_medium | ai-assistant | One medium for all AI-assistant traffic. GA4’s native AI Assistants channel recognizes this value, so tagged links classify automatically — no custom channel group needed. |
utm_campaign | (optional) | Add only when the link belongs to a specific initiative. |
For how the receiving end classifies this — GA4’s native AI Assistants channel recognizes utm_medium=ai-assistant, while the literal utm_medium=ai would still land in Unassigned — see Google Analytics .
Limitations and gotchas
- No click ID, no macros. Gemini has no
gclidequivalent and no click-time substitution. That’s a Google Ads capability, not a Gemini one. Pre-placed UTMs carry the whole load. - AI Overviews can’t be tagged as Gemini. Overview clicks arrive as Search referrals with no separate referrer; don’t try to force them into a
geminisource. - You can’t tag a link the model writes itself. If Gemini composes a URL rather than referencing your tagged canonical, your parameters won’t be on it.
- Casing splits reports.
Geminiandgeminiare two sources in GA4. Lowercase, always. - Use
ai-assistant, notai. GA4’s native AI Assistants channel recognizesutm_medium=ai-assistantand classifies it automatically. The literalutm_medium=aiis not recognized and still falls into Unassigned — which is exactly why you tagai-assistant.
Verification
- Inspect a tagged link end to end. Open a tagged canonical URL and confirm
utm_source=gemini&utm_medium=ai-assistantsurvives any redirects. - Look under the AI Assistants channel. With
utm_medium=ai-assistant, the session classifies under GA4’s native AI Assistants channel — no custom channel group required. If you instead see it in Unassigned, check that the medium reads exactlyai-assistantand not the literalai. - Separate Gemini from Search. Cross-check
gemini.google.comreferrals against your UTM-tagged sessions, and don’t mistake AI Overview clicks (which look like Google Search) for Gemini traffic.
Gemini won’t give you a tracking parameter, and AI Overviews won’t even give you a referrer — but you can still measure the traffic you can tag. For the full strategy, read how to track AI traffic across ChatGPT, Perplexity, and Gemini, the UTM convention for the AI search era, and whether AI referral traffic should get its own GA4 channel.
