…
Skip to content
Topics
On this page

UTM Parameters

UTM parameters are short tags added to the end of a link that tell analytics tools where a visit came from. When someone clicks a tagged link, GA4 reads the tags and credits the visit, and any sale, to that source, medium and campaign. Without them, many clicks from WhatsApp, email and apps show up as direct traffic.

  • Five tags: utm_source, utm_medium, utm_campaign, utm_content and utm_term, added after a question mark in the link.
  • Three always: Source, medium and campaign go on every tagged link, while content and term are optional.
  • Case sensitive: Instagram and instagram become two sources, so use lowercase.
  • External links only: Tag links in ads, posts, emails and messages, never links between your own pages.
  • One naming sheet: A shared template keeps everyone's tags the same, even when several people build links.
Anatomy of a UTM link: the five UTM parameters and what each one answersThe saree shop's Diwali sale link starts with the page address and a question mark, followed by five UTM parameters joined with ampersands. utm_source=instagram says which site sent the visit, utm_medium=paid_social says what kind of traffic it is, and utm_campaign=diwali_sale names the campaign. These three are always set. utm_content=reel_silk_saree says which ad or link was clicked and utm_term=banarasi_saree records a keyword; these two are optional.https://example.com/diwali-sale?parameters joined with &utm_source=instagramWhich site or app sent the visitutm_medium=paid_socialWhat kind of traffic it isutm_campaign=diwali_saleWhich campaign it belongs toutm_content=reel_silk_sareeWhich ad, post or linkutm_term=banarasi_sareeWhich keyword (mostly search)always set: source, medium, campaignoptional: content, term
Anatomy of a UTM link: the five UTM parameters and what each one answers

This tutorial follows one example: a family saree shop in Surat that sells online and is running a Diwali sale. It promotes the sale through Instagram ads, Instagram posts, a WhatsApp broadcast to opted-in customers, an email to its subscriber list and a few Google search ads. The owner wants to know which one brings orders, not only clicks.

Last festive season, most sale orders showed up in GA4 as direct traffic, so nobody could tell whether the WhatsApp broadcast or the Instagram reel had done the work. This year the shop wants every shared link to carry clear tags, so that the report after Diwali shows orders and revenue by channel and the budget for the wedding season can follow the results.

Prerequisites for Using UTM Parameters

  • GA4 on the site: Set up as in the GA4 tutorial, with the purchase event working.
  • A list of every place you share links: Ads, posts, bio link, broadcasts, emails, QR codes on printed flyers.
  • A shared sheet: One Google Sheet or Excel file that holds the naming rules and every link you build.
  • Opt-in lists: WhatsApp and email go only to customers who agreed to receive them, never to bought or scraped lists.

Setup: The Five UTM Parameters

ParameterQuestion it answersSaree shop value
utm_sourceWhich site or app sent the visit?instagram, whatsapp, newsletter
utm_mediumWhat type of traffic is it?paid_social, social, messaging, email
utm_campaignWhich campaign is it part of?diwali_sale
utm_contentWhich ad, post or link was clicked?reel_silk_saree, story_offer
utm_termWhich keyword was it? (mostly search)banarasi_saree

GA4 also reads a few newer optional tags, such as utm_id and utm_source_platform. Most small businesses do not need them at the start, so this lesson sticks to the five main tags.

Step 1: Write the Naming Rules

Put these rules at the top of the sheet:

  • Lowercase only: instagram, not Instagram.
  • Underscores, not spaces: diwali_sale, not "diwali sale", which becomes diwali%20sale in links.
  • Fixed lists for source and medium: Choose values from the agreed list and never invent new ones on the day of a campaign.
  • Campaign names describe the offer: Use names such as diwali_sale, wedding_collection or clearance that anyone in the shop would understand.

Step 2: Match Mediums to GA4 Channels

GA4 sorts visits into default channels, such as Paid Social, Organic Social, Email and Paid Search, using the source and medium values. If the medium does not match GA4's rules, visits land in "Unassigned".

Where the link is sharedutm_sourceutm_mediumExpected GA4 channel
Instagram adinstagrampaid_socialPaid Social
Instagram post or bioinstagramsocialOrganic Social
Email newsletternewsletteremailEmail
WhatsApp broadcastwhatsappmessagingCheck where it lands
Printed flyer QR codeflyerofflineCheck where it lands

For values without a clear default channel, such as messaging, check where the visits land in GA4 after a test. If needed, create a custom channel group in GA4 Admin so WhatsApp gets its own channel.

Build each link in the sheet with the same pattern:

Example
[page URL]?utm_source=[source]&utm_medium=[medium]&utm_campaign=[campaign]&utm_content=[content]

The first tag follows a question mark and every other tag follows an ampersand, and if the page URL already has a question mark, start with an ampersand instead.

Keep the template in the first row of the shared sheet and build every link with a formula that joins the columns, so nobody types a link by hand. A formula cannot misspell instagram or forget an ampersand, and the sheet becomes a record of every link the shop has ever shared.

Here are the saree shop's links, built from the sheet:

Example
Instagram reel ad:
https://example.com/diwali-sale?utm_source=instagram&utm_medium=paid_social&utm_campaign=diwali_sale&utm_content=reel_silk_saree

Instagram bio link:
https://example.com/diwali-sale?utm_source=instagram&utm_medium=social&utm_campaign=diwali_sale&utm_content=bio_link

WhatsApp broadcast:
https://example.com/diwali-sale?utm_source=whatsapp&utm_medium=messaging&utm_campaign=diwali_sale&utm_content=broadcast_offer

Email newsletter:
https://example.com/diwali-sale?utm_source=newsletter&utm_medium=email&utm_campaign=diwali_sale&utm_content=hero_button

Google's Campaign URL Builder does the same job in a form, if you prefer not to type links by hand.

Step 5: Handle Ad Platforms

  • Google Ads: Keep auto-tagging on and link the Ads account to GA4. Auto-tagging adds a click ID that gives more detail than manual tags.
  • Meta Ads: Add the tags in the ad's URL parameters field. Meta can fill some values automatically with dynamic parameters such as the campaign name.
  • Short links: If you shorten a tagged link for a flyer or SMS, test that the short link keeps the tags after the redirect.

Step 6: Test Before You Share

Open each link on your phone, then check Reports > Realtime in GA4 for the source and campaign. One wrong character now can hide a whole channel for the sale.

Step 7: Read UTM Tracking in GA4

After the sale starts, open Reports > Acquisition > Traffic acquisition. Change the primary dimension to Session source / medium or Session campaign and add purchases and revenue. To share results with the family every morning, build a view in the Looker Studio dashboard tutorial. For deeper questions, the same data can be queried with SQL for marketers.

Common Mistakes with UTM Parameters

  • Tagging internal links: A UTM on a home page banner resets the visit's source and hides where the visitor really came from.
  • Mixed case: Facebook, facebook and FB become three separate sources, which splits the results for one channel into three rows.
  • Source and medium swapped: utm_source=email and utm_medium=newsletter breaks GA4's channel rules.
  • Tags on Google Ads links with auto-tagging: Manual tags can conflict with the click ID data, so let auto-tagging do the work.
  • No sheet: Links built from memory drift apart within a week, and the reports drift with them.
  • Personal data in tags: Never put a customer's phone number or email in a UTM value, because it ends up in analytics reports that many people can see.

Next Steps

How AI Changes UTM Tracking

What AI Automates Now

AI assistants can build dozens of tagged links from a sheet of ads in seconds, spot inconsistent values in an export, and suggest a naming convention for a new team. Ad platforms also fill some tags automatically with dynamic parameters.

What Still Needs a Human

A person must own the naming rules, decide the source and medium lists, and test links before a campaign goes out. AI tools do not know which values your past reports already use.

Risk to Watch

AI can produce links with small errors, such as a missing ampersand or a capital letter, that look correct at a glance. Test every link in GA4 Realtime before sharing it.

Do It with AI

Use this prompt to generate tagged links from your campaign list. It works in ChatGPT, Claude or Gemini.

Prompt for ChatGPT, Claude or Gemini

You are a digital analytics assistant. Our UTM naming rules: lowercase only, underscores instead of spaces. Allowed sources: [list]. Allowed mediums: [list]. Campaign name: [for example, diwali_sale] Landing page: [URL] Placements: [list each ad, post, email and message where the link will be shared] 1. Build one tagged link per placement, using only the allowed sources and mediums. 2. Give a short utm_content value for each placement. 3. Return a table with columns: placement, source, medium, campaign, content, full link. 4. Flag any placement where the right source or medium is unclear, instead of guessing.

  1. Paste your rules, lists and placements into the prompt.
  2. Copy the table into your shared UTM sheet.
  3. Open three or four links and confirm them in GA4 Realtime.
  4. Share the links with the team and keep the sheet as the single source.

Check Before You Use It

  • Facts: Check every link for the question mark, ampersands and spelling before it goes live.
  • Brand fit: Keep campaign names consistent with past campaigns so reports compare cleanly.
  • Compliance: Send WhatsApp and email links only to opted-in customers, and keep personal data out of every tag.

Quick Quiz

Pick an answer to check yourself. Nothing is saved.

Question 1 / 3

  1. 1. The saree shop sends its Diwali offer in a WhatsApp broadcast. Which utm_medium fits best?

Frequently Asked Questions

What are the five UTM parameters?

utm_source (who sent the visit), utm_medium (the type of traffic), utm_campaign (the campaign name), utm_content (which ad or link) and utm_term (the keyword). Source, medium and campaign should be on every tagged link.

Are UTM parameters case sensitive?

Yes. GA4 treats Instagram and instagram as two different sources. Use lowercase for every value and write the rules down so the whole team follows them.

Should I add UTM parameters to Google Ads links?

Usually not. Google Ads auto-tagging adds a click ID that GA4 reads when the accounts are linked, and it gives richer data than manual tags. Use UTM parameters for other platforms such as Meta, email and WhatsApp.

Do UTM parameters affect SEO?

They do not help rankings. Use them only on links you share in ads, emails, posts and messages, never on links between pages of your own site, and make sure pages have a canonical tag so tagged URLs are not treated as duplicates.

Why does my WhatsApp traffic show as direct in GA4?

Links opened from WhatsApp often arrive without referrer information, so GA4 cannot tell where they came from. Adding UTM parameters to every link you share on WhatsApp fixes this.