UTM reporting in Looker Studio
Looker Studio (formerly Data Studio) connects to GA4 and other sources to visualise UTM-driven campaign data. The GA4 connector exposes Session source, Session medium, Session campaign, and the manual content/term dimensions, which you place on tables and charts to build a campaign report. This page covers the connector dimensions and how to avoid common breakdown mistakes.
Connector dimensions for UTMs
Using the GA4 connector, the relevant dimensions are Session source, Session medium, Session campaign, plus the manual ad content and keyword dimensions that come from utm_content and utm_term. Add them to a table with metrics like sessions and conversions for a campaign breakdown.
For channel-level views, use the Default channel grouping dimension, which is derived from the same utm_medium/source mapping GA4 applies.
- Session source / medium / campaign
- Manual ad content (utm_content), keyword (utm_term)
- Default channel grouping for channel rollups
Avoiding fragmented breakdowns
Case and spelling inconsistencies upstream produce duplicate rows in Looker Studio (Email vs email). Fix the tagging at the source, or add a calculated field to normalise case for display.
When blending multiple data sources, ensure the campaign dimension names align, or the blend will not join rows that represent the same campaign.
How it appears in analytics and logs
In Looker Studio, a campaign table populated from Session source/medium/campaign reflects the UTM mapping inherited from GA4. A blank or Unassigned row usually traces back to an untagged or mis-tagged link upstream, not a Looker Studio issue.
Diagnostic use case
Build a shareable campaign dashboard in Looker Studio from UTM data, using the GA4 connector's source/medium/campaign dimensions instead of exporting to a spreadsheet.
What WebmasterID can help detect
WebmasterID's server-side campaign data can sit alongside a Looker Studio GA4 report as an independent check, so a discrepancy between dashboards points to client tag loss rather than a reporting error.
Common mistakes
- Trying to fix inconsistent casing in Looker Studio instead of in the tags.
- Blending sources whose campaign dimensions do not align, breaking joins.
- Confusing Session campaign with the manual content/term dimensions.
- Assuming Unassigned rows are a Looker Studio bug rather than upstream tag gaps.
Privacy and accuracy notes
Looker Studio visualises campaign dimensions that label links, not people. Visitor-level privacy is governed by the underlying data source's settings; the UTM dimensions carry no personal data.
Related pages
- UTM parameters in BigQuery
When GA4 is linked to BigQuery, campaign data arrives in the event export as nested event_params and traffic-source fields. The UTM-derived values — source, medium, campaign, content, term — are queryable with SQL via UNNEST, letting you build custom attribution beyond the GA4 UI. This page covers where UTM-derived fields live in the BigQuery schema and the basic query shape.
- UTM in Google Analytics 4
Google Analytics 4 reads the standard utm_ query parameters and maps them to its session and traffic-source dimensions. The mapping is specific: utm_source, utm_medium, and utm_campaign feed the core dimensions, utm_id powers the manual campaign ID, and utm_source/medium combinations drive GA4's default channel grouping. Knowing the exact mapping prevents tags that look fine but land in the wrong channel.
- UTM casing and consistency
Casing is the single most common UTM data bug. Because tools match values as exact strings, utm_source=Reddit and reddit are two separate rows, so one campaign quietly fragments. This page makes the lowercase rule concrete and shows how to deepen it into real consistency.
- Attribution analytics
Validate dashboard campaign figures against server-side data.
Sources and verification notes
- Looker Studio Help — GA4 connectorDimensions available from GA4, including session source/medium/campaign.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.