Tracking Traffic From Google Gemini: UTM Strategy, GA4 Setup, and Reporting Templates for AI Referrals
Mika Sandgrove | | 5 min read
Introduction: What “Gemini traffic” means (and why UTMs are the only reliable control)
Gemini-tagged traffic = sessions landing on your site with your chosen utm_source / utm_medium / utm_campaign values.
In GA4 you’ll usually see two buckets:
- Tagged links you control: URLs you intentionally tagged for Gemini placements.
- Untagged referrals: traffic that might show up as
gemini.google.com(or similar) depending on the click path.
Without a strict convention, reporting fractures into gemini vs Gemini, one-off mediums, and (not set) campaigns. Then redirects and cross-domain handoffs quietly drop query strings and turn real campaigns into (direct) / (none). This playbook locks a Gemini taxonomy, makes link building repeatable, shows the GA4 views that surface those UTMs, and gives you a fast QA routine. You can reuse the same structure for other AI surfaces later by changing only the source value.
1) Define a Gemini UTM convention (consistent attribution)
Decision point: isolate Gemini vs blend it into broader Google/Organic reporting. I recommend isolating Gemini so you can answer “what did Gemini drive?” without channel-grouping debates.
Baseline (don’t improvise):
utm_source=gemini(lowercase, always)utm_medium=ai(pickaiand stick to it)utm_campaign=<initiative>_<yyyy-mm>(versionable and readable)
Rules for utm_campaign:
- lowercase only
- use underscores (this article uses underscores)
- no spaces or special characters
- keep under ~50–60 characters so GA4 tables stay readable
Optional parameters (use on purpose):
utm_content=for placement/variant testingutm_term=reserve for keyword-like data; usually avoid for Gemini
Avoid: mixed case, ad hoc mediums (chatbot, llm), or utm_source=google if you need isolation. If you must blend, keep it minimal: utm_source=google&utm_medium=organic&utm_campaign=gemini_<initiative>.
2) Build Gemini-tagged links repeatably (and prevent duplicates)
The failure mode I see most in audits is everyone “using UTMs,” but with slightly different labels. Two controls fix this: one standard builder output and one shared registry.
Link recipes (copy/paste patterns)
Add utm_content only when you’re comparing placements/variants.
1) Content link (blog/article)
https://example.com/blog/ga4-attribution-guide?utm_source=gemini&utm_medium=ai&utm_campaign=ai_attribution_playbook_2026-10
2) Product page link
https://example.com/product/analytics-platform?utm_source=gemini&utm_medium=ai&utm_campaign=gemini_product_push_2026-10
3) Gated asset link (one placement variant)
https://example.com/resources/ai-reporting-template?utm_source=gemini&utm_medium=ai&utm_campaign=ai_reporting_template_2026-10&utm_content=answer_card
Version campaigns by changing utm_campaign (initiative/date/version). Don’t mutate utm_source or utm_medium to handle a new use case.
Central link registry (minimum fields)
Keep a shared sheet/database and require every tagged URL to be logged:
- destination URL (canonical)
- full tagged URL
utm_source,utm_medium,utm_campaign(andutm_contentif used)- owner
- start/end dates
- notes (placement/context)
- status (draft/live/paused)
Build links with the Seosoft UTM Builder so output stays standardized and copy/paste-ready. Assign one owner to approve any new source/medium values.
3) GA4 setup: confirm Gemini UTMs are captured and reportable
GA4 exposes UTMs in session-scoped and first user-scoped dimensions. For campaign performance, use session dimensions so you’re measuring what drove that visit.
Use:
- Session source / medium
- Session campaign
- (optional) Session manual ad content (maps to
utm_content)
Create a Gemini segment (or comparison)
In Reports or Explorations, create a comparison/segment with:
- Session source exactly matches
gemini - Session medium exactly matches
ai - optional: Session campaign matches a prefix/regex for one initiative
Channel grouping and conversion validation
Keep Default channel grouping unless you have a reporting requirement. If you customize, create AI Referrals mapped to source=gemini and/or medium=ai.
Confirm key events are marked as Conversions. Then run one end-to-end test: click a tagged URL, complete a conversion, and verify in an Exploration that the converting session shows your Session campaign and Session source/medium. GA4 UTM processing follows Google’s campaign parameter rules; align naming so data lands predictably.[1]
4) QA checklist: prevent stripped UTMs and diagnose bad attribution
Most “Gemini isn’t tracking” incidents are URL handling problems, not GA4. When I ran QA on multi-redirect stacks (shorteners → CDN → app router), query strings were the first thing to break.
Lean QA pass
- Redirect checks: click the tagged URL and confirm
utm_parameters survive every hop (301/302, shorteners, CDN/edge rules). If the final landing URL drops UTMs, GA4 can’t recover them. - Cross-domain essentials: if the journey crosses domains you control (marketing site → app → checkout), avoid handoffs that restart sessions mid-journey. Keep linker settings in mind; the goal is preventing attribution resets.
- Landing page basics: HTTPS works, redirect hops are minimal, and the page loads cleanly. Long/broken paths correlate with attribution anomalies and drop-offs.
Troubleshooting symptom map
- Source/medium = (direct) / (none): UTMs were likely stripped before GA4 saw the landing page.
- Campaign = (not set):
utm_campaignis missing or got dropped. - Unexpected referrals: often redirect/cross-domain issues or third-party referrer interference.
Conclusion: the minimum operating system
Clean Gemini attribution is mostly operations, not analysis: taxonomy → build → validate → report. Lock one convention (source=gemini, medium=ai, versioned campaign), generate links consistently (builder + registry), and verify GA4 with session-scoped dimensions plus at least one conversion test.
If you do only three things this week: publish the UTM rules with an owner for source/medium changes, require every tagged URL to be logged in the registry, and run redirect/cross-domain QA on your top landing paths so campaigns don’t decay into (direct) and (not set).
Sources
Article author
Mika Sandgrove
Mika Sandgrove is an SEO writer and independent SEO consultant with more than three years of experience creating and optimizing content for search. He runs his own SEO practice, helping businesses improve their organic visibility through SEO strategy, content optimization, and technical and on-page SEO services. Much of his work comes through freelance marketplaces and online client platforms, where he works with businesses across different industries and markets. Mika primarily writes about SEO, search visibility, and practical optimization strategies, and is increasingly exploring Answer Engine Optimization (AEO) and how businesses can adapt their content for AI-powered search experiences.

