Shopify: 3 months for $1/month, plus up to $10,000 credits as you sell
Tutorial Series/Google Analytics 4 Tutorial Series
Intermediate60 minutesStep 6

UTM Parameters and Keyword Analysis

Build a UTM naming governance and source attribution table, UTM naming validator, and evidence reuse paths for source, medium, campaign, content, term, naming drift, auto-tagging conflicts, Traffic acquisition, direct / none, keyword review, SEO keyword reuse, and campaign archives.

6
Current Lesson
6/12 lessons
Reviewed by Ranfeng Wei. Maintained monthly against Shopify, Google Search, ads, analytics, and ecommerce operating workflows.
Quick Answers

TL;DR: Split source, medium, campaign, content, and term into five fields. Define what each field can contain, what it must not contain, example va

Q: What is the key action in this lesson?A: Google Ads should usually keep auto-tagging and GCLID. Manual content / term can support creative or keyword review, but manual source / med

Lesson Progress
Progress
6/12 lessons
Current lesson unlockedContinue in sequence

Lesson HowTo steps

Complete this lesson in 4 steps

  1. 1

    Build the UTM naming governance and source attribution table

    Split source, medium, campaign, content, and term into five fields. Define what each field can contain, what it must not contain, example values, the responsible person, and reuse rules. Do not let every marketer invent a new naming style.

  2. 2

    Decide which links need manual UTM

    Google Ads should usually keep auto-tagging and GCLID. Manual content / term can support creative or keyword review, but manual source / medium should not be expected to rewrite Google Ads auto-tagging. Email, creator, affiliate, short link, QR, and partner traffic usually need manual UTMs.

  3. 3

    Run launch QA on the final link

    Generate the link from one template, check case, spaces, special characters, final redirects, short links, or QR codes, and confirm source, medium, and campaign in GA4 Realtime or DebugView. If direct / none, unassigned, or `(not set)` looks unusual, check final URLs, redirects, and GCLID before budget decisions.

  4. 4

    Use the UTM naming validator to fix broken links

    Put real links into the validator and decide whether the issue is case drift, missing source / medium, Google Ads manual tags fighting auto-tagging, or a creator link without archive proof. Write corrected values, launch QA, and blocked conclusions before budget debate.

  5. 5

    Add the evidence reuse path

    Choose one reuse path for paid search, paid social, email lifecycle, or QR / offline / partner links. Record link fields, GA4 fields, SEO keyword reuse fields, and campaign archive fields so Ads, GA4, Search Console, and the archive do not tell separate stories.

  6. 6

    Segment keywords and archive campaigns

    Group term values into exploration, stable, defensive, and negative terms. Then record the campaign owner, launch date, end date, budget range, review link, and whether the evidence enters the SEO keyword map. Traffic acquisition reads this session source; User acquisition reads first-user source. Without an archive, UTM keeps polluting the next review.

Article FAQ

Answer the common misunderstandings first

What is the UTM mistake that most often breaks GA4 review?

The common problem is not forgetting the parameter. It is inconsistent naming. If one channel appears as facebook, Facebook, meta_paid, and paid-social, GA4 splits it into several rows and the team reviews naming mistakes instead of channel performance.

Should I manually add UTMs to Google Ads traffic?

Usually keep Google Ads auto-tagging so GCLID can carry ad-click information. When GA4 sees both auto-tagging and manual tagging, source / medium and other traffic-classification dimensions usually use auto-tagged values; manual content / term can still support manual ad content and manual term dimensions.

Should I use Traffic acquisition or User acquisition?

Use session-scoped Traffic acquisition when reviewing this campaign's sessions. Use User acquisition when the question is where new users first came from. The reports answer different questions; one is not simply more correct.

Does a rise in direct / none mean brand traffic improved?

Not necessarily. `(direct) / (none)` often means GA4 has no clear source information. Short links, redirects, in-app browsers, payment hops, parameter cleanup, or lost GCLID can push campaign traffic into direct or unassigned rows.

What should I check before a UTM link goes live?

Check that source, medium, and campaign exist, case and special characters are consistent, short links or QR codes do not strip parameters, and GA4 Realtime or DebugView shows the source. If the source is missing, fix the link before making budget decisions.

What should the UTM naming validator help me decide?

It uses broken-link examples to decide whether the issue is naming drift, missing source / medium, Google Ads auto-tagging conflict, or a creator link without archive proof. The output should include corrected values, launch QA, owner, and budget or channel conclusions that are blocked for now.

What problem does the evidence reuse path solve?

It makes one UTM / keyword record reusable by Ads, GA4, SEO, and the campaign archive. Each important link should record link fields, GA4 fields, SEO keyword reuse fields, and archive fields so Ads, GA4, Search Console, and the archive do not tell separate stories.

Why is CTR not enough for keyword analysis?

CTR only shows that people clicked. It does not prove purchase intent, order quality, or profit. Segment terms into exploration, stable, defensive, and negative groups, then connect the review to page behavior, order quality, Search Console query, the SEO keyword map, and the campaign archive.

Loading interactive version
Text version of this lessonExpand

UTM is not just a few parameters added to a link. It is the language your team uses to read traffic. When that language is messy, GA4 does not warn you. It splits one channel into many similar rows, and campaign review becomes guesswork.

Lesson output: a UTM naming governance and source attribution table

This lesson answers one practical question: can every click be split into source, medium, campaign, creative, keyword, or audience evidence? If not, budget review, landing-page diagnosis, and keyword optimization do not have a reliable base.

The output is not memorizing parameter names. You will build a practical UTM naming governance and source attribution table. It should include at least five fields: utm_source, utm_medium, utm_campaign, utm_content, and utm_term. Each field has one job, with a responsible person, launch QA, and a campaign archive.

Why does this affect reporting?

If the same channel appears as facebook, Facebook, meta_paid, and paid-social, your team is not comparing channel performance. It is comparing naming mistakes.

What each UTM field should do

utm_source names the platform, partner, list, or creator source, such as google, meta, klaviyo, or creator_jane. Use one stable value for each real source, preferably lowercase.

utm_medium names the traffic type, such as cpc, paid_social, email, or affiliate. Do not mix platform names, campaign names, and creative names into medium.

utm_campaign names the campaign. For an ecommerce store, a useful name can include market, category, theme, year, and stage, such as us_bags_bfcm_2026_prospecting. Register the campaign before launch, and do not change it casually for each creative.

utm_content names the creative, placement, CTA, email block, or link position, such as video_hook_a, email_hero_cta, or carousel_review_v2. Use it to see which creative inside one campaign produced the click.

utm_term stores paid keywords in search. In non-search channels, it can store audience, creator, or segment labels. Search terms should stay meaningful, and non-search labels need a plain dictionary definition.

Longer fields are not automatically better. Keep source and medium short, stable, and readable. Put richer details into campaign, content, and term. Otherwise, you are cleaning spelling instead of reading traffic.

A UTM dictionary is the operating agreement behind the links. It is not only a spreadsheet for neat spelling. It tells every operator, agency, email marketer, creator partner, affiliate manager, and analyst which value is allowed, what that value means, who approved it, and when it should stop being used. Without that dictionary, a link builder simply helps the team create inconsistent links faster.

Start with approved values, not with a blank field. For utm_source, approve one value for each real source, such as meta, google, klaviyo, creator_jane, or affiliate_network_a. Do not let one partner choose Meta while another chooses facebook_paid. For utm_medium, approve traffic types, such as cpc, paid_social, email, sms, affiliate, or referral. Medium is not a place for campaign names or creative labels.

For utm_campaign, write names that a person can still understand three months later. A practical ecommerce pattern is market + category + theme + year + stage. For example, us_tumbler_summer_2026_prospecting tells the team the market, product group, season, year, and intent. For utm_content, separate creative, placement, CTA, email block, or link position. For utm_term, use paid keyword in search, and only use audience, creator, or segment labels in non-search channels when the dictionary explains what those labels mean.

The minimum dictionary columns are field, approved value, plain meaning, responsible lead, allowed channel, example URL, approval date, stop date, and review report. The most important column is plain meaning. If a teammate cannot read the row and understand what kind of traffic it describes, the value is too clever. Short names are fine; hidden codes are not.

After the UTM dictionary is written, do not let everyone immediately create links freely. Train the team with broken examples first. When naming drift, missing required fields, auto-tagging conflicts, or creator archive gaps appear, fix the link and archive before arguing about which channel won.

Broken link or naming What GA4 will show Corrected value and launch QA Blocked conclusion
utm_source=Facebook&utm_medium=paid-social&utm_campaign=SummerLaunch&utm_content=HookA Traffic acquisition splits facebook, Facebook, and meta into rows, and the campaign review looks like several campaigns. Use utm_source=meta, utm_medium=paid_social, and utm_campaign=us_tumbler_summer_2026_launch; mark old values as historical pollution and retest the final link. Do not claim Meta beat email before naming is unified.
utm_campaign=us_tumbler_summer_2026_launch&utm_content=email_footer Reports may show (not set), unassigned, or direct / none, and the team may mistake that for stronger brand traffic. Add utm_source=klaviyo and utm_medium=email; make source, medium, and campaign required in the template. When source / medium is missing, do not treat direct / none as real brand demand.
utm_source=google_search&utm_medium=brand_cpc on a Google Ads final URL. Ads reports, Traffic acquisition, and manual dimensions disagree, so the review argues about which report is correct. Prefer auto-tagging, confirm GCLID reaches the final page, and only add content / term when creative or keyword review needs it. Before click tagging is accepted, do not change bidding, delete campaigns, or shift budget.
utm_source=jane&utm_medium=social&utm_campaign=summer&utm_content=story Clicks appear, but three weeks later nobody knows whether jane was a creator, employee, affiliate, or social account. Use utm_source=creator_jane and utm_medium=creator; archive partner, owner, launch date, end date, and settlement rule. Without archive proof, do not use this creator traffic for long-term order-quality or commission decisions.

The validator moves the discussion from "does the parameter look neat?" to "can this data support the decision?" If not, this week's output is naming cleanup, final-link QA, and archive repair.

Evidence reuse paths: one UTM record is not only for GA4

This V4 pass adds review paths. UTM and keyword labels should not only make Traffic acquisition look cleaner. They should also be reusable by the ad account, SEO keyword map, campaign archive, and later page diagnosis. If not, the team ends up with one story in the ad platform, another in GA4, another in Search Console, and no clear decision about whether to fix links, pages, keywords, or only the archive.

The smallest practical move is to put every important campaign or link into one field reuse table: link fields, GA4 read fields, SEO / content reuse, and archive fields. Then UTM becomes a reusable evidence chain, not just a parameter suffix.

Scenario Link fields GA4 fields SEO / keyword reuse Archive fields Next route
Paid-search keyword Final URL, tracking template, GCLID, utm_content, utm_term, match type, and keyword ID. Traffic acquisition Session campaign, Session source / medium, Manual term, Landing page, and purchase / key event. Reconcile against Search Console query, SERP page type, current landing URL, and owner page in the SEO Advanced keyword intent map. Campaign ID, ad group, keyword layer, launch date, budget window, review date, and whether it enters the SEO content queue. On ads, route to search terms / negatives first. On SEO, enter the keyword intent map only when demand is stable and page ownership is clear.
Paid-social creative utm_source, utm_medium, utm_campaign, utm_content, ad / creative ID, and landing page URL. Session source / medium, Session campaign, Landing page, view_item, add_to_cart, begin_checkout, and purchase. Reuse user language, selling points, and problems only. Do not turn a short-term ad hook directly into an SEO title. Creative ID, hook, proof angle, asset version, page version, stop condition, and next refresh date. When page fit is weak, route to GA4 landing-page analysis or CRO page roles. Do not treat high creative clicks as page success.
Email lifecycle link utm_source=klaviyo / email service, utm_medium=email, utm_campaign, utm_content, and utm_term / segment label. Traffic acquisition, Landing page, coupon, purchase, engaged sessions, and returning users. Pass frequent questions, review language, and purchase reasons to SEO / content. Do not treat discount-email subject lines as long-term keywords. Flow / campaign ID, segment, subject, module position, offer, send window, suppression rule, and review link. Route to Email segmentation or lifecycle email review. GA4 proves the path, not the audience rule.
QR / offline / partner link Full UTM URL, short URL, final landing URL, utm_source, utm_medium, utm_campaign, and partner / QR placement. Realtime / DebugView validation record, Session source / medium, Landing page + query string, and purchase / form submit. If offline questions repeat, record them as content demand or FAQ candidates. Do not treat QR traffic as organic-search demand. Placement, launch date, partner, settlement rule, end date, short-link service, validation record, and responsible lead. Route to launch QA or partner archive first. When parameters are stripped, do not use the data to judge channel quality.

The value of this table is that every link has a known future user before it goes live. Ads reads search terms and creative labels, GA4 reads session and page paths, SEO decides whether there is durable content demand, and the archive lets someone explain the campaign three months later.

Not every traffic source should be manually tagged. Google Ads should usually keep auto-tagging so GCLID can carry ad-click information. Without a clear reason, do not use manual UTMs to override or disturb the ad platform's own click tagging.

When Google Ads uses auto-tagging and manual UTM values together, GA4 traffic-classification dimensions usually use the auto-tagged values. The manually tagged utm_content and utm_term can still populate manual ad content and manual term dimensions. In plain terms, keep manual labels when they help creative or keyword review, but do not expect manual source / medium to rewrite Google Ads auto-tagged attribution.

Email, SMS, creator links, affiliate links, partner content, short links, and QR codes need manual UTMs more often. If they are not tagged, GA4 may not know which list, creator, email block, or creative position produced the click.

Traffic type Default action Launch proof
Google Ads Prefer auto-tagging GCLID reaches the final landing page
Email / SMS Use manual UTM and add content for important modules GA4 shows source / medium / campaign
Creator / affiliate Use manual UTM and name the partner clearly Link, responsible person, and settlement path are traceable
Short link / QR Create the full UTM first, then shorten it; for QR use the QR Code tool after the final URL is ready The final link keeps parameters, and a scan still appears in GA4

Do not wait until the campaign has spent money to discover that parameters were lost. Before launch, run five checks: generate the link from one template; confirm source, medium, and campaign exist; check case, spaces, non-ASCII values, and special symbols; click the final live link; and confirm the source in GA4 Realtime or DebugView.

Launch QA checklist

  • The link comes from one template, not a one-off manual build.
  • Source, medium, and campaign are required. Content and term have clear rules.
  • The final live link still keeps UTM or GCLID.
  • Short links, QR codes, redirects, and in-app browsers do not strip parameters; build the QR code from the final UTM URL, not before the parameters are validated.
  • The responsible person, launch date, end date, budget range, and review link are recorded.

If Realtime does not show the source, or the naming is still under debate, do not use that traffic to make budget conclusions. Fix the link first, then review performance.

Scenario: a 20oz tumbler launch with four traffic sources

Suppose a store launches a 20oz insulated tumbler in the United States. The campaign uses Meta paid social, a Klaviyo email, a creator link, and a QR code in a pop-up retail card. If all four links use different naming habits, GA4 will not show one launch story. It will show several fragments that look unrelated.

A clean setup starts with the same campaign value: us_tumbler_summer_2026_launch. Meta paid social can use utm_source=meta and utm_medium=paid_social. The Klaviyo email can use utm_source=klaviyo and utm_medium=email. The creator link can use utm_source=creator_jane and utm_medium=creator, or a stricter affiliate value if the partner is paid by commission. The QR card can use utm_source=retail_popup and utm_medium=qr. Click that final link first, then use the QR Code tool to generate the offline card code. Each one still shares the same campaign value, so the launch can be reviewed as one campaign while each source remains readable.

Now use utm_content and utm_term carefully. Meta might use utm_content=video_hook_a and utm_term=broad_camping. Email might use utm_content=email_hero_cta. The creator might use utm_content=short_demo_v1. The QR card might use utm_content=counter_card. These labels should help the review answer one narrow question: which creative, placement, audience, or keyword label deserves another test?

The wrong conclusion would be "Meta beat email" after one day of traffic. The better conclusion is: naming passed QA, Meta video hook A produced more product views, email hero CTA produced fewer sessions but stronger add_to_cart, creator traffic needs more sample, and the QR link should be kept separate because its context is offline. UTM does not decide the business action alone; it makes the next GA4, landing-page, funnel, and profit checks possible.

Read UTM in GA4 without overclaiming

After launch, the first GA4 question is not "which channel won?" The first question is "are the traffic labels readable enough to support a decision?" Open Traffic acquisition, check session source / medium, session campaign, and the campaign values you expected. If the report shows many near-duplicate rows, the campaign is not ready for precise budget review. It can still provide a directional signal, but the team must mark the naming issue in the archive.

Separate two report entries before reading the result. Traffic acquisition is session-scoped, so it is better for this campaign's sessions by source / medium or campaign. User acquisition is new-user scoped, so it is better for where users first came from. The question decides the report. Use Traffic acquisition for this campaign review; use User acquisition when the question is new-user source.

Another common trap is (direct) / (none). It usually means GA4 has no clear source information; it does not automatically mean shoppers typed the URL directly. Short links, redirects, in-app browsers, payment hops, and parameter cleanup can push campaign traffic into direct or unassigned rows. When direct rises suddenly, check the final URL, redirect path, referrer, UTM, and GCLID before saying brand demand improved.

Default channel grouping is GA4's rule-based classification, not a column you casually rewrite. If the business needs a separate AI assistant, creator, affiliate, or offline QR channel, create a custom channel group only after the UTM dictionary is stable, the rules are clear, and someone owns future URL and partner-list updates. Otherwise, custom channel groups only wrap naming chaos in another layer.

Use source / medium to compare traffic routes, not creative details. Use campaign to compare the named campaign, not every ad variant. Use content to compare creative or link placement inside one campaign. Use term to compare paid keywords, audience labels, creator labels, or segment labels only after the dictionary explains them. If content and term are empty, do not pretend you know which creative or audience worked. You only know the broader route that produced the session.

There are also limits. UTM tells GA4 where a click says it came from; it does not prove that the channel created incremental demand. It does not prove profit. It does not prove that the landing page message matched the ad promise. It does not prove that the funnel event chain is healthy. That is why this lesson sits before landing-page analysis, funnel analysis, and revenue/profit analysis. Clean labels are the entry ticket for those lessons, not the final answer.

The common wrong move is to repair business strategy with naming data. If utm_content=video_hook_a has more sessions, that does not mean the hook should automatically get more budget. It means the hook deserves a behavior check. Did users reach the right product page? Did they view item, add to cart, begin checkout, and buy at a quality level the business can accept? UTM starts the investigation; it does not close it.

A safe readout has three levels: naming trust, behavior signal, and next route. Example: "Source / medium and campaign naming are trusted for this launch. Meta paid social generated more product views, but email produced stronger add_to_cart rate. Creator content labels are incomplete, so creator traffic is directional only. Next route: check mobile landing-page match before changing budget." This is more useful than declaring a winner too early.

Keyword analysis cannot stop at CTR

A high CTR only says people clicked. It does not prove they wanted to buy, and it does not prove the order quality is good. Review keywords in layers: traffic layer for impressions, clicks, CTR, and CPC; behavior layer for landing page, engagement, view_item, and add_to_cart; conversion layer for begin_checkout, purchase, and AOV; business layer for margin, refund rate, and order-quality samples.

Keyword optimization should not be only on or off. Exploration terms find opportunities. Stable terms support scaling. Defensive terms protect high-intent demand. Negative terms reduce waste.

Keyword layer Main read Common action
Exploration terms Clicks, CPC, engagement, view_item, sample quality Keep a small test budget, add negatives, change the page
Stable terms Order quality, AOV, margin, refund rate Expand close terms, improve the page, raise budget carefully
Defensive terms Brand terms, repeat-purchase terms, competitor interception Keep coverage and review separately
Negative terms Low intent, support, free, wrong category Add negatives, change match type, split ad groups

Run a 30-minute UTM and keyword review

A UTM review should not become a naming argument. Keep it short and force the team to decide whether the data is trusted, directional, or not usable yet.

  1. Minute 0-5, lock the campaign: choose one campaign name and one date range. Do not mix old links, reused campaign names, or partner links that were never archived.
  2. Minute 5-12, check naming health: scan source, medium, and campaign for case drift, spaces, old values, unexpected values, and (not set). If naming is messy, the meeting output is a cleanup task, not a budget decision.
  3. Minute 12-20, read content and term: connect utm_content to creative, email block, CTA, or placement. Connect utm_term to keyword, audience, creator, or segment. Do not turn one creative readout into a channel-level conclusion.
  4. Minute 20-27, connect behavior: check landing page, engagement, view_item, add_to_cart, begin_checkout, purchase, AOV, and order quality samples. This decides whether the next task belongs to naming, landing page, funnel, keyword cleanup, or profit review.
  5. Minute 27-30, archive the decision: write whether the campaign value can be reused, which links must be fixed, who is responsible, and what report should be checked next week.

The final sentence should be plain: "The launch campaign naming is trusted for source and medium, but content labels are incomplete for creator links. We can compare Meta, email, and QR directionally; creator traffic needs link repair before budget conclusions. Next check: landing-page and funnel behavior for mobile paid social."

Copyable lesson notes: turn the UTM issue into an executable review note

Do not end a UTM review with only "naming is messy." That does not tell the next teammate what to check first or which conclusions are unsafe. A better close is a short copyable note with the current pressure, first evidence, this week's action, blocked move, and next route.

UTM and keyword copyable lesson note fields

  • Current pressure: one channel has several source / medium values, campaign names were reused, content / term is missing, or keyword review only has CTR.
  • First evidence: session source / medium, session campaign, content / term, final URL parameters, GCLID, and the campaign archive.
  • This week's action: fix the UTM dictionary and final live links first, then click the real traffic URL and validate source in Realtime or DebugView.
  • Blocked move: do not use this traffic for budget conclusions before naming passes QA; when content / term is missing, do not declare a creative, audience, or keyword winner.
  • Next route: when naming is trusted, move into landing-page, funnel, or profit review; when it is not trusted, this week's output is cleanup.

Archive campaigns after they end

Many teams do have a UTM sheet, but nobody maintains it. A new campaign starts, and the operator, agency, and partner all write names differently. Three months later, GA4 is full of campaign names that look similar but are not the same.

Your UTM table needs a responsible person. New source, medium, or campaign structures should be approved before use. After a campaign ends, record the end date, budget range, review link, and whether the name can be reused.

Archive pollution is especially dangerous before the next promotion. If last month's summer_launch value is reused for a discount push, the team may compare two different offers as if they were one campaign. Reuse is allowed only when the audience, offer, landing page, and review purpose are intentionally the same.

This lesson is responsible for readable naming, verifiable links, and identifiable keyword labels. It does not replace a full ad-attribution model, and it does not replace the profit sheet. Next, move into landing-page analysis or funnel analysis to check whether the page and event chain can carry the traffic.

Back to Course Outline
12
View All Tutorials

After copyable notes

Connect this lesson to the next learning and membership path

Copyable notes are not a download pack. Their job is to carry the decision, evidence, and next action out of the lesson. Continue to the next lesson first; if this page solved a real problem, check whether the member tutorial path can close the rest of the workflow.

Share this tutorial

If this lesson helped, send it to a teammate, friend, or partner before moving on to the next one.