Free Ebook cover Marketing Analytics for Beginners: Measure What Matters and Make Better Decisions

Marketing Analytics for Beginners: Measure What Matters and Make Better Decisions

New course

11 pages

UTM Tagging and Campaign Tracking: Make Your Data Usable

Capítulo 6

Estimated reading time: 10 minutes

+ Exercise

Why UTMs matter (and what problem they solve)

UTM tags are small pieces of text you add to a URL so analytics tools can reliably identify where a visit came from and which marketing effort caused it. Without UTMs, traffic often falls into buckets like direct, referral, or unknown because the platform, app, or redirect stripped the details. A repeatable UTM system reduces misattribution by making campaign traffic consistently recognizable across channels, creatives, and partners.

A UTM-tagged URL looks like this:

https://example.com/pricing?utm_source=facebook&utm_medium=paid_social&utm_campaign=2026q1_launch&utm_content=video_a

Everything after the ? is a query string. Each utm_ parameter is a label that your analytics tool reads and stores with the session.

Define the UTM parameters (what each one means)

ParameterWhat it answersWhen to useExample values
utm_sourceWho sent the traffic?Alwaysfacebook, instagram, tiktok, mailchimp, partner_jane_doe
utm_mediumWhat type of channel is it?Alwayspaid_social, email, influencer, qr, affiliate
utm_campaignWhich initiative or campaign?Always2026q1_launch, evergreen_trial, spring_sale
utm_contentWhich creative/version?When you need to distinguish ads, links, placementsvideo_a, carousel_2, header_cta, story_swipeup
utm_termWhich keyword or targeting term?Mainly for paid search; optionally for audience/targeting labelsbrand, nonbrand_analytics, lookalike_1pct

Practical guidance on optional fields

  • Use utm_content for creative-level differences (image vs. video, CTA button, placement, link position in email).
  • Use utm_term for keyword-level or targeting-level differences. If you don’t have a clear use case, leave it blank rather than inventing inconsistent values.

Naming rules: make UTMs consistent and reportable

Your goal is not just to tag links—it’s to tag them in a way that produces clean, filterable reports. The most common UTM failures are inconsistency (e.g., Facebook vs facebook) and ambiguity (e.g., social meaning five different things).

Rule 1: Use lowercase everywhere

Analytics tools often treat Facebook and facebook as different values. Standardize on lowercase:

Continue in our app.

You can listen to the audiobook with the screen off, receive a free certificate for this course, and also have access to 5,000 other free online courses.

Or continue reading below...
Download App

Download the app

  • Good: utm_source=instagram
  • Avoid: utm_source=Instagram

Rule 2: No spaces; use a delimiter

Spaces become %20 in URLs and create messy values. Choose one delimiter and stick to it:

  • Recommended: underscore _ (easy to read)
  • Alternative: hyphen - (also common)

Examples:

  • Good: utm_campaign=2026q1_launch
  • Avoid: utm_campaign=2026 Q1 Launch

Rule 3: Controlled vocabulary (pre-approved values)

Create a short list of allowed values for utm_medium and common utm_source values. This prevents “medium sprawl” like paid-social, paidsocial, social_paid, and paid social all meaning the same thing.

Example controlled vocabulary:

FieldAllowed values (example set)
utm_mediumpaid_social, organic_social, email, influencer, affiliate, qr, display, paid_search
utm_sourcefacebook, instagram, tiktok, youtube, linkedin, mailchimp, klaviyo, partner_[name]

Rule 4: Campaign naming format (make it sortable)

Pick a campaign format that supports filtering by time and initiative. One practical pattern:

utm_campaign={yyyy}{q#}_{initiative}_{objective}

Examples:

  • 2026q1_launch_trials
  • 2026q2_webinar_reg
  • 2026q1_evergreen_demo

Rule 5: Encode meaning in utm_content (creative + placement)

Make utm_content useful for comparisons. A simple pattern:

utm_content={format}_{hook}_{placement}_v{#}

Example: video_problem_story_v1 or image_testimonial_feed_v2

Rule 6: Don’t put personally identifiable info in UTMs

Avoid names, emails, phone numbers, or anything that identifies a person. UTMs can be stored in logs and shared widely.

Step-by-step: build a UTM the same way every time

  1. Start with the final landing page URL (after redirects, with the correct path). Example: https://example.com/pricing
  2. Choose utm_source from your approved list (the platform/partner). Example: facebook
  3. Choose utm_medium from your controlled vocabulary (the channel type). Example: paid_social
  4. Set utm_campaign using your naming format. Example: 2026q1_launch_trials
  5. Add utm_content if you need creative/link differentiation. Example: video_problem_feed_v1
  6. Add utm_term only if you have a defined use (keyword/targeting). Example: lookalike_1pct
  7. Assemble and test the full URL in a browser (ensure it loads, preserves UTMs through redirects, and lands on the correct page).

Examples by channel (copy-ready patterns)

1) Paid social ads (multiple creatives and placements)

Scenario: You’re running two Facebook ads to the same landing page: one video in feed and one image in stories.

Video (feed):

https://example.com/pricing?utm_source=facebook&utm_medium=paid_social&utm_campaign=2026q1_launch_trials&utm_content=video_problem_feed_v1

Image (stories):

https://example.com/pricing?utm_source=facebook&utm_medium=paid_social&utm_campaign=2026q1_launch_trials&utm_content=image_testimonial_story_v1

Optional targeting label (only if you will use it):

https://example.com/pricing?utm_source=facebook&utm_medium=paid_social&utm_campaign=2026q1_launch_trials&utm_content=video_problem_feed_v1&utm_term=lookalike_1pct

2) Influencer links (partner-specific tracking)

Scenario: Two influencers promote the same offer. You want to attribute traffic and conversions to each influencer without creating messy sources.

Recommended approach:

  • utm_medium=influencer
  • utm_source=partner_{handle} (controlled pattern)

Example for influencer @janedoe:

https://example.com/offer?utm_source=partner_janedoe&utm_medium=influencer&utm_campaign=2026q1_creator_push&utm_content=ig_reel_v1

Example for influencer @alexfit:

https://example.com/offer?utm_source=partner_alexfit&utm_medium=influencer&utm_campaign=2026q1_creator_push&utm_content=tiktok_post_v1

Tip: If influencers need a short link, generate a short URL that redirects to the full UTM URL (and QA that UTMs survive the redirect).

3) Newsletters (link position and CTA testing)

Scenario: Your weekly newsletter links to a blog post in two places: a hero button and a text link near the bottom.

Hero button:

https://example.com/blog/utm-guide?utm_source=klaviyo&utm_medium=email&utm_campaign=2026w03_newsletter&utm_content=hero_button

Footer text link:

https://example.com/blog/utm-guide?utm_source=klaviyo&utm_medium=email&utm_campaign=2026w03_newsletter&utm_content=footer_text

Newsletter naming tip: If you send weekly, a sortable pattern like 2026w03_newsletter is easier to filter than jan_15_newsletter.

4) QR codes (offline-to-online tracking)

Scenario: You place a QR code on a conference booth banner and another on printed flyers. Both go to the same landing page, but you need to distinguish placements.

Booth banner QR:

https://example.com/demo?utm_source=conference_techsummit&utm_medium=qr&utm_campaign=2026q1_events&utm_content=booth_banner

Flyer QR:

https://example.com/demo?utm_source=conference_techsummit&utm_medium=qr&utm_campaign=2026q1_events&utm_content=flyer_handout

QR best practice: Use a short redirect link for the QR code (for scan reliability), but ensure the redirect preserves UTMs and lands on HTTPS.

Governance workflow: keep UTMs clean at scale

A UTM system works only if it’s governed. The goal is to prevent duplicate naming, missing parameters, and broken links—especially when multiple people and agencies create campaigns.

1) Who creates UTMs (roles and responsibilities)

  • Marketing ops / analytics owner: owns the taxonomy (allowed values), approves new sources/mediums, maintains the UTM generator template, and audits usage.
  • Channel owners (paid social, email, partnerships): request UTMs and/or generate them using the approved template; responsible for correct campaign and content naming.
  • Creative/agency partners: must use provided UTMs; they should not invent new naming conventions.
  • Web/engineering (as needed): supports redirect rules, ensures UTMs are not stripped, and helps debug tracking issues.

2) Where UTMs are stored (single source of truth)

Use a shared, searchable log (spreadsheet, database, or project tool) that includes:

  • Final landing page URL
  • Full tagged URL
  • utm_source, utm_medium, utm_campaign, utm_content, utm_term
  • Owner (person responsible)
  • Channel/platform
  • Start/end dates
  • Status (draft, QA, live, paused)

Example table structure:

CampaignChannelLanding pageTagged URLOwnerStatus
2026q1_launch_trialspaid_social/pricing...utm_source=facebook&utm_medium=paid_social...samqa

3) QA checklist: validate before anything goes live

  • Completeness: utm_source, utm_medium, and utm_campaign present on every link.
  • Spelling and casing: lowercase, no spaces, matches controlled vocabulary.
  • Click test: link loads correctly on desktop and mobile.
  • Redirect test: if the link redirects, confirm the final URL still contains UTMs (or that UTMs are captured before redirect, depending on your setup).
  • App handoff risk: for links used inside apps (social apps, messaging), test that the in-app browser doesn’t strip parameters.
  • Duplicate meaning: ensure utm_content values are unique enough to compare (avoid ad1, ad2 unless you also store a mapping).

4) Handling redirects (so UTMs don’t disappear)

Redirects are a common cause of “unknown” traffic because parameters can be dropped if redirects are misconfigured or if a shortener rewrites URLs incorrectly.

  • Prefer 301/302 redirects that preserve the full query string. If you control the redirect, ensure it forwards everything after ?.
  • Be careful with “clean URL” rules. Some systems remove query parameters for aesthetics; that breaks UTMs.
  • Short links: if you use a shortener, the short URL should redirect to the full UTM URL (not the untagged landing page).
  • Cross-domain flows: if a click goes from a marketing site to an app domain or checkout domain, test that UTMs are retained or captured and passed appropriately.

Practical redirect QA test: paste the tagged URL into your browser, press enter, and observe the final URL in the address bar. If UTMs vanish, fix the redirect before launch.

Hands-on exercise: build UTMs for three campaigns and verify reporting

Exercise setup

Use your organization’s controlled vocabulary. If you don’t have one yet, use these defaults for the exercise:

  • utm_medium allowed values: paid_social, email, influencer, qr
  • Delimiter: underscore _
  • Campaign format: {yyyy}q{#}_{initiative}_{objective}

Task A: Paid social campaign UTMs

Scenario: Instagram paid campaign promoting a free trial, two creatives (reel and story) to https://example.com/trial.

  • Create one UTM for the reel and one for the story.
  • Use utm_source=instagram and utm_medium=paid_social.
  • Use a single utm_campaign for both links.

Fill in:

reel:  https://example.com/trial?utm_source=_____&utm_medium=_____&utm_campaign=_____&utm_content=_____
story: https://example.com/trial?utm_source=_____&utm_medium=_____&utm_campaign=_____&utm_content=_____

Task B: Influencer campaign UTMs

Scenario: Partner “TaylorRuns” posts a YouTube description link to https://example.com/offer.

  • Use utm_medium=influencer.
  • Use the pattern utm_source=partner_taylorruns.
  • Use utm_content to capture placement (e.g., youtube_description).

Fill in:

https://example.com/offer?utm_source=_____&utm_medium=_____&utm_campaign=_____&utm_content=_____

Task C: Newsletter + QR code UTMs

Scenario: You’re promoting a webinar registration page https://example.com/webinar via (1) an email newsletter and (2) a QR code on a printed postcard.

  • Create one email UTM link with utm_source set to your email service (e.g., mailchimp or klaviyo) and utm_medium=email.
  • Create one QR UTM link with utm_source=postcard (or a more specific source like postcard_jan) and utm_medium=qr.
  • Use the same utm_campaign for both if they are part of the same initiative.

Fill in:

email: https://example.com/webinar?utm_source=_____&utm_medium=email&utm_campaign=_____&utm_content=_____
qr: https://example.com/webinar?utm_source=_____&utm_medium=qr&utm_campaign=_____&utm_content=_____

Verification: confirm how UTMs appear in reporting

  1. Click each link yourself (or use a test device) and ensure the landing page loads.
  2. Check the final URL after any redirects to confirm UTMs remain present.
  3. Open your analytics reporting and locate the dimensions for source, medium, and campaign (and content if available).
  4. Confirm the values match exactly what you set (case, underscores, spelling). If you see unexpected variants, fix the naming and re-test.
  5. Validate differentiation: ensure the two paid social creatives show up as separate utm_content values under the same campaign.

Now answer the exercise about the content:

You want to compare performance between two ads that share the same source, medium, and campaign but use different creatives (e.g., video vs image). Which UTM parameter should you use to distinguish the creatives?

You are right! Congratulations, now go to the next page

You missed! Try again.

Use utm_content to label creative-level differences (e.g., video vs image, placement, CTA). utm_term is mainly for keyword/targeting labels, and utm_campaign groups the overall initiative.

Next chapter

Dashboards That Answer Questions: KPIs, Breakdowns, and Filters

Arrow Right Icon
Download the app to earn free Certification and listen to the courses in the background, even with the screen off.