Skip to content

How do I use UTMs without breaking my reports?

Jeremie Werner

Founder of Conversion Club · ikko

View author

Short answer

Use a shared UTM convention for incoming campaign links. Control medium values, audit tool defaults and measure internal promotions with events.

The answer in detail

Reserve UTM parameters for incoming external campaign links, use lowercase and choose a medium GA4 can classify. A shared naming convention prevents fragmented campaigns and Unassigned traffic. For movement inside the store, measure interactions with events instead of adding acquisition tags.

The benchmark

UTMs are URL labels describing where a visit came from. Google documents more parameters than most teams need daily; start with these five and consistently include source, medium and campaign.

Parameter Purpose Example
utm_source Referring platform or sender newsletter, facebook, partner-name
utm_medium Channel type email, cpc, affiliate
utm_campaign Campaign 2026-11-black-friday
utm_term Paid-search keyword Used for keyword identification
utm_content Link or creative variant hero-button, video-15s

Values are case-sensitive: Facebook and facebook can become different sources. Missing parameters can produce (not set) values.

GA4 default channels use rules involving source, medium and other context, not a medium label alone. The following is a practical summary of the source's October 2026 snapshot; check Google's complete rules for your combination.

Medium Typical classification or condition
email, e-mail, e_mail Email
sms SMS
social, social-media, social-network, sm Organic Social
Paid pattern such as cpc/ppc/retargeting or beginning paid Paid Social when source and other rules match social traffic
display, banner, cpm Display
affiliate Affiliates
referral, link, app Referral
Ending in push Mobile Push Notifications, subject to full rules
No matching rule Unassigned

Shopify also reads UTMs. Its marketing-performance documentation associates visits containing utm_campaign with marketing and constructs channel reporting from campaign data. Identical tags do not make Shopify and GA4 attribution identical.

The rule

Keep one shared spreadsheet and generate outgoing campaign URLs from it. Use lowercase, hyphens instead of spaces and no accents; start campaign names with dates for sorting. Restrict medium through a controlled list. For a QR campaign, define an appropriate custom channel instead of assuming qr is a recognized default medium. See the custom-channel method.

Channel Source Medium Campaign Content
Newsletter newsletter email 2026-11-black-friday hero-button
Meta ad facebook or instagram cpc 2026-11-black-friday video-15s
Unpaid creator post instagram social 2026-11-serum-launch creator-01
Affiliate partner-name affiliate 2026-q4-partners article-link
SMS sms sms 2026-11-private-sale link-1

Inspect tools' automatic values too. The source cites Klaviyo changing default medium settings from campaign or flow to message type on June 2, 2025, while preserving some saved account settings. At one apparel brand, much email traffic consequently appeared as Unassigned; the estimated fix took 30–60 minutes. Verify the account rather than assuming a new default fixed old settings.

The steps

  1. Inventory 90 days. Export source/medium pairs from GA4. Find case variants such as Facebook/facebook/fb and unrecognized mediums.
  2. Write the convention. Use a column per parameter and data validation for medium. Define the campaign owner and naming vocabulary.
  3. Generate links. With URL in A, source in B, medium in C, campaign in D and content in E, the source's Google Sheets formula adapted to comma-separated locales is =A2&IF(REGEXMATCH(A2,"\?"),"&","?")&"utm_source="&LOWER(B2)&"&utm_medium="&LOWER(C2)&"&utm_campaign="&LOWER(D2)&IF(E2="","","&utm_content="&LOWER(E2)). Use it only with validated simple values and URLs without fragments or existing UTM duplicates; it is not a general URL encoder. Some spreadsheet locales require semicolons.
  4. Audit tools and migrations. Review email and advertising configurations. One outdoor brand observed by the authors spent roughly three weeks without campaign UTMs after changing email tools.
  5. Clean internal navigation. Crawl your domain for utm_ in links between your own pages and remove those acquisition labels. A link from a transactional email into the store is external, despite the source grouping it with internal links; tag and classify that incoming email deliberately.
  6. Monitor monthly. Track Unassigned and (not set), investigate increases and record corrections in the operating log. They are diagnostic signals, not proof that every missing value came from naming.

The pitfall

Tagging a homepage banner with UTMs pollutes campaign interpretation. Its apparent sales may have been acquired by ads, email or search. Attribution behavior depends on report scope; do not assume an internal click always starts a new GA4 session. A different attribution model cannot repair misleading source data.

For internal promotions, use view_promotion and select_promotion, including promotion name and creative_slot. Free-text naming causes another failure: Black-Friday, blackfriday and bf26 split one campaign into separate rows and distort channel conversion comparisons.

What to tell your team

“Last quarter, 14% of sessions were Unassigned and Black Friday had four spellings. From Monday, incoming campaign links come from the shared sheet, and internal navigation uses events.” These figures are fictional.

Sources

Further reading

The Playbook answers in short. Conversion Club articles take the time: methods, field cases and figures to go further.