Marketing Analytics 2026
Set up and read marketing measurement for a founder running their own marketing. No analyst, no data team, a few hours a week. The goal is decisions, not dashboards: which channel gets more money, which gets cut, and which number is lying this week.
Read references/utm-conventions.md when the task involves building tracked links, auditing UTMs, or fixing Direct and Unassigned traffic.
Which GA4 report answers which founder question
Do not send a founder to Explorations first. Map the question to the standard report.
| Founder question | GA4 report | Note |
|---|---|---|
| Where did this week's visitors come from? | Reports > Acquisition > Traffic acquisition | Session-scoped, last non-direct click. The default weekly view |
| Which channel brings NEW customers? | Reports > Acquisition > User acquisition | First-touch by user. Compare against Traffic acquisition to spot channels that start journeys but never close them |
| Which pages earn traffic? | Engagement > Landing page | Add session source/medium as a secondary dimension |
| Are people buying, and from where? | Monetization > Ecommerce purchases, plus Traffic acquisition with the key event column | Requires purchase events with value |
| Did my launch spike anything right now? | Realtime | Only for launch days. Never make budget decisions from Realtime |
| Do visitors come back? | Retention | Weekly cohorts. Most small sites are shocked here, that is normal |
| Which touchpoints assist conversions? | Advertising > Attribution reports | Only worth reading above roughly 100 key events per month |
GA4 AI features status, all dated from Google's own announcements:
| Feature | Status as of Aug 26, 2026 |
|---|---|
| Analytics Advisor (conversational AI analyst in-product: performance questions, "why did X change" key driver analysis, recommendations) | Announced Nov 12, 2025. Rolled out Dec 2025 to all English-language GA Standard and GA 360 accounts |
| Generated insights on the Home page (top three data changes since last visit) | Live since Feb 10, 2026 |
| Task Assistant (configuration recommendations) | Live since Apr 29, 2026 |
| AI Assistant default channel (LLM referral traffic) | Live since May 13, 2026, see below |
| Custom integer lookback windows for click-through and engaged-view conversions | Live since Aug 11, 2026 |
Use Analytics Advisor for "why did sessions drop" questions before building any exploration. It runs key driver analysis that would take a founder an hour by hand. Verify its claims against the Traffic acquisition report before acting: treat it as a junior analyst, not an oracle.
Measurement setup checklist for a new site
Work through in order. Stop when the business is measured, not when the tool is exhausted.
- Create the GA4 property, one web data stream, timezone and currency set to the business, not the default.
- Turn OFF enhanced measurement options you do not need (video, file downloads) to keep event lists readable. Keep page views, scrolls off unless content is the product.
- Define 1 to 3 key events maximum: purchase or signup, plus at most one high-intent step (started checkout, booked call). Mark them as key events. More than 3 and the weekly readout becomes mush.
- Send value with the conversion event where money changes hands.
- Set internal traffic filters (your own IP, staging hostnames). June 11, 2026 GA4 added a hostname filter in Data Filters, use it to exclude staging domains.
- Set data retention to 14 months (default is 2).
- Link Google Ads and Search Console if used.
- Consent banner and consent mode if you have EU/UK traffic. Without ad consent, demographics and remarketing data will be thin and thresholded. That is compliance working, not tracking broken.
- Build the AI Assistant channel check (next section) and the UTM conventions from references/utm-conventions.md.
- Verify with a live test: visit from a phone off wifi via a tagged link, confirm the session lands with the right source/medium within 30 minutes in Realtime.
- Write down, in a doc, what each key event means and where it fires. Future-you forgets in 6 weeks.
The backend (Stripe, Shopify, signup DB) is the source of truth for revenue and orders. GA4 is the source of truth for where sessions came from. Never reverse those roles.
UTM discipline
The five classic parameters plus four GA4 additions. All values are case sensitive: Google's own doc states "utm_source=google is different from utm_source=Google". Lowercase everything, always.
| Param | Required | Use |
|---|---|---|
| utm_source | Yes | Where the click physically came from: newsletter, chatgpt.com, instagram, partner site name |
| utm_medium | Yes | Bucket that maps to a GA4 channel: email, cpc, paid-social, social, referral, ai-assistant |
| utm_campaign | Yes | Which push: launch-aug2026, black-friday-2026 |
| utm_id | Recommended | Campaign ID if you import cost data |
| utm_term | Optional | Paid keyword |
| utm_content | Optional | Which creative or link position |
| utm_source_platform | Recommended | Buying platform |
| utm_creative_format, utm_marketing_tactic | Optional | Collected but not reported in standard GA4 reports as of Aug 2026 |
The three corruptions that ruin small-site data, with the exact GA4 channel rules they collide with (rules verified against Google's default channel definitions, Aug 2026):
- Case drift. "Email" vs "email" vs "EMAIL" splits one channel into three rows. Lowercase or die.
- Missing UTMs on email. Mail apps often pass no referrer, so untagged email clicks report as Direct. GA4 puts traffic in the Email channel when source or medium matches email, e-mail, e_mail or e mail. Tag every email link with utm_source=newsletter&utm_medium=email at minimum.
- Invented medium values. Paid Social requires medium matching the regex ^(.cp.|ppc|retargeting|paid.*)$ AND a known social source. utm_medium=facebook or utm_medium=social-ads lands in Unassigned. Unassigned is GA4's "no rule matched", it is always a tagging bug, never a real channel.
Never put UTMs on internal links. It resets the session's source and destroys attribution.
Full naming tables, per-channel conventions and the QA checklist are in references/utm-conventions.md.
Tracking AI and LLM referral traffic
As of May 13, 2026 GA4 has a built-in "AI Assistant" default channel: when the referrer matches Google's list of AI assistants (ChatGPT, Gemini, Deepseek, Copilot, Grok and others), GA4 sets medium to "ai-assistant" and campaign to "(ai-assistant)". Google's AI Overviews and AI Mode are explicitly NOT in this channel: those arrive as google / organic and are indistinguishable from classic organic search in GA4.
Workflow:
- Check Traffic acquisition grouped by Session default channel group for the AI Assistant row. If the property predates May 2026 or you want more tools covered, also filter Session source by regex:
chatgpt\.com|chat\.openai\.com|gemini\.google\.com|deepseek\.com|perplexity(?:\.ai)?|claude\.ai|copilot\.microsoft\.com - For a permanent view, build a custom channel group (Admin > Channel groups): a channel named AI, condition "source matches regex" with the pattern above, ordered ABOVE the generic Referral channel so it wins.
- Add landing page as a secondary dimension. AI assistants cite deep pages, not homepages. The pages they cite tell you what to write more of.
Honesty rules for reading AI traffic:
- Referrer-based tracking only captures clicks that send a referrer. In-app browsers and assistant apps often send none, so real AI traffic is larger than the reported number and the remainder hides in Direct.
- Expect small absolute numbers and volatility. Plausible reported their own ChatGPT referral traffic falling from mid-July 2025 after the GPT-5 launch even as engagement of those visitors rose. Judge AI traffic on conversion quality per visit, not volume.
- Add "an AI assistant (ChatGPT etc.)" as an option in your how-did-you-hear-about-us field. Self-report catches the app clicks analytics cannot see.
Attribution honesty at small scale
GA4 model reality, verified Aug 2026: first click, linear, time decay and position-based models were removed in Nov 2023. What remains: data-driven attribution, paid and organic last click, and Google paid channels last click. Lookback windows: acquisition key events default 30 days (or 7), all other key events default 90 days (or 30 or 60), plus custom integer conversion windows for click-through and engaged-view conversions since Aug 11, 2026.
Decision rules:
- Under roughly $50k/month total marketing spend or under ~100 key events/month: use last non-direct click (the Traffic acquisition view) and stop there. Data-driven attribution needs volume to learn from; at low volume its credit shuffling is noise wearing a lab coat, and you cannot audit it.
- Add a required free-text "How did you hear about us?" to checkout or signup. At small scale this beats every model: it catches podcasts, word of mouth, communities, and AI assistants, none of which click-tracking sees. Read the raw text monthly, do not just bucket it.
- Triangulate three sources and expect them to disagree: GA4 (where sessions came from), platform dashboards (what ads were seen and clicked), backend orders plus self-report (what actually happened). A channel is working when at least two of the three say so.
- Change the lookback window only if the sales cycle demands it, and note the change date in your readout doc: window changes make before/after comparisons dishonest.
Platform-reported vs GA4 vs actual orders
These three will never match. Reasons, so you can explain rather than panic:
- Ad platforms count conversions by their attribution settings, including view-through (counted when someone merely saw an ad) and multi-day click windows. Every platform claims the same order, so summing platform dashboards double counts.
- GA4 undercounts: ad blockers, consent declines, referrer loss, cross-device journeys, and its own last non-direct logic.
- The backend counts money: refunds, cancellations, test orders and timezone cutoffs make it differ from both.
Expected ordering for the same period: sum of platform-claimed conversions > actual backend orders > GA4-attributed conversions for any single channel. If that ordering breaks, investigate.
Reconciliation rules:
- Pay CAC from backend numbers only: real spend divided by real new customers, per channel, using GA4 plus self-report to assign the channel.
- If one platform claims more conversions than the business took orders in total, its attribution settings are inflated: turn off or separately report view-through, and shorten the click window before believing it.
- If GA4 shows fewer than about half of backend orders as purchase events, the tag is broken or consent is eating it: fix tracking before making any channel decision.
- Never A/B judge channels by platform-reported ROAS alone. Platforms grade their own homework.
Weekly readout workflow
Once a week, 30 minutes, same day each week. Pull last 7 full days vs the prior 7.
- Backend first: orders or signups, revenue, refunds. Write the real numbers down before opening GA4.
- GA4 Traffic acquisition: sessions and key events by session default channel group. Note the AI Assistant row separately.
- Ad platforms: spend per channel. Only spend, ignore their conversion claims for this table.
- Compute CAC per paid channel: platform spend / backend new customers assigned to that channel.
- Read this week's how-did-you-hear-about-us answers.
- Fill the template:
Week of {date} vs prior week
Backend truth: {orders} orders ({+/-x%}), {revenue} ({+/-x%}), {refunds}
| Channel | Sessions | Key events | Spend | CAC | What is lying / notes |
|----------------|----------|------------|-------|-------|----------------------------------|
| Organic Search | | | 0 | - | |
| AI Assistant | | | 0 | - | undercounts, apps send no referrer |
| Email | | | 0 | - | untagged links leak into Direct |
| Paid Social | | | | | platform claims {n}, backend says {m} |
| Paid Search | | | | | |
| Direct | | | - | - | contains dark social + untagged |
| Referral | | | - | - | |
| Unassigned | | | - | - | tagging bug if > 2% of sessions |
Self-report this week: {top 3 answers, verbatim}
Decision: {one budget or effort change, or explicitly "no change"}
- One decision per week maximum. If nothing is conclusive, the decision is "no change", written down. Deciding weekly from 7-day windows on a small site is how founders whipsaw budgets; only act when backend, GA4 and self-report agree, or after 3 consistent weeks.
- Alarms that override everything: Unassigned above 2% of sessions (tagging bug), Direct suddenly growing faster than total traffic (tracking loss or untagged campaign), GA4 purchases under half of backend orders (broken tag).
Gotchas
Corrections to what a model trained earlier tends to get wrong:
- Universal Analytics is gone, entirely. Standard UA properties stopped processing hits July 1, 2023, UA 360 in July 2024. Never recommend Views, bounce rate as UA defined it, ga.js/analytics.js snippets, or "goals". GA4 has data streams, key events and engagement rate.
- As of Nov 2023, GA4 has no first click, linear, time decay or position-based attribution models. Do not offer model comparison across those. The choice is data-driven vs last click, and at small scale it barely matters (see attribution section).
- Third-party cookie deprecation panic is stale. On April 22, 2025 Google announced Chrome keeps third-party cookies with user choice in settings and will not roll out a standalone deprecation prompt. Do not recommend emergency "cookieless" migrations on that basis. Consent rules, not Chrome, are what limits data.
- Do not treat view-through conversions as equivalent to click conversions. Platforms mix them into headline results. Someone who saw an ad and bought two days later via search would mostly have bought anyway; report view-through separately or not at all.
- As of Aug 2026, tracking LLM traffic no longer requires a hand-built regex for the big assistants: GA4's AI Assistant channel (May 13, 2026) does it by default. Custom regex channels are only for extra tools or non-GA4 analytics. Also do not claim Google AI Overviews traffic is measurable separately in GA4, it is not, it arrives as google / organic.
- Do not assert a Google Signals retirement or sunset date. As of Aug 26, 2026 Google's Signals documentation and the GA4 What's new page carry no retirement notice. If the user cites a sunset date they read somewhere, verify it against Google's What's new page before building anything on it. What IS true and dated: Signals data requires signed-in users with Ads Personalization on, it triggers row thresholding in demographics reports (system-defined, cannot be adjusted, widen the date range to reduce it), and Signals data does not export to BigQuery.
- GA4 standard reports are not realtime and are cached; small-number rows get thresholded when demographics are involved. A founder seeing "(other)" or missing rows is usually seeing thresholding, not data loss.
Sources
Verified Aug 26, 2026:
- https://support.google.com/analytics/answer/9756891 (GA4 default channel group definitions, AI Assistant channel)
- https://support.google.com/analytics/answer/9164320 (GA4 What's new: AI Assistant channel May 13 2026, custom conversion windows Aug 11 2026, generated insights Feb 10 2026, Task Assistant Apr 29 2026, hostname filter Jun 11 2026)
- https://blog.google/products/ads-commerce/ads-advisor-and-analytics-advisor/ (Analytics Advisor, Nov 12 2025)
- https://support.google.com/analytics/answer/10596866 and https://support.google.com/analytics/answer/10597962 (attribution models, lookback windows)
- https://support.google.com/analytics/answer/10917952 (UTM parameters, case sensitivity)
- https://support.google.com/analytics/answer/9445345 (Google Signals)
- https://support.google.com/analytics/answer/9383630 (data thresholding, BigQuery exclusion)
- https://www.analyticsmania.com/post/ai-traffic-in-google-analytics-4/ (AI referrer regex, custom channel group method)
- https://plausible.io/blog/chatgpt-referral-traffic (chatgpt.com referrer, post GPT-5 traffic pattern)
- https://privacysandbox.google.com/blog/privacy-sandbox-next-steps (third-party cookies stay in Chrome, Apr 22 2025)