What Is a UTM Parameter?
A UTM parameter is a name-value pair added to the query string of a link, such as utm_source=example-podcast, that tells Google Analytics which source, medium and campaign sent the visit.
Google describes the mechanism in URL builders: Collect campaign data with custom URLs: “By adding utm campaign parameters to the destination URLs you use in referral links and ad campaigns, you can view which campaigns refer traffic. When a user clicks a referral link, the URL parameters are sent to Analytics, and the parameter values are visible in the Traffic acquisition report.” GA4 reads the values from the page URL the visitor lands on, which Google calls the document location (Campaigns and traffic sources). If the parameters are not in the address bar when your page loads, GA4 cannot see them.
For earned media this matters because a link from a news article or a podcast's show notes is otherwise reported only as a referral from the publisher's domain. A tag lets you separate one placement from another on the same site, group several placements into one campaign, and tell a show-notes link from an author-bio link.
The parameters GA4 documents, with Google's own descriptions:
| Parameter | Google's description | Use for press and podcast links |
|---|---|---|
utm_source | “Referrer, for example: google, newsletter4, billboard” | The publication or show, e.g. example-trade-journal |
utm_medium | “Marketing medium, for example: cpc, banner, email” | Usually referral; see Step 3 |
utm_campaign | “Product, slogan, promo code, for example: spring_sale” | The announcement or placement push, e.g. 2026-10-product-launch |
utm_id | “Campaign ID. Used to identify a specific campaign or promotion.” | Optional internal campaign code |
utm_content | “Use to differentiate creatives” | Link position, e.g. show-notes or author-bio |
utm_term | “Paid keyword” | Usually left blank for earned media |
utm_source_platform | “The platform responsible for directing traffic”, such as Search Ads 360 or Display & Video 360 | Usually not applicable to earned links |
utm_creative_format, utm_marketing_tactic | Accepted, but “isn't currently reported in Google Analytics properties” | Skip |
How to Track Press and Podcast Links at a Glance
| Step | Action | Expected result |
|---|---|---|
| 1 | List the external links you can tag, and exclude internal links | A short list of links you supply to publishers and hosts |
| 2 | Write a lowercase naming convention for source, medium, campaign and content | One agreed spelling for every value |
| 3 | Pick a utm_medium that matches a GA4 channel rule | Placement visits land in Referral, Email or another intended channel, not Unassigned |
| 4 | Build each URL in Google's Campaign URL Builder | A tagged URL per placement and link position |
| 5 | Open the URL and check that the parameters survive redirects | The address bar still shows the utm_ values on the final page |
| 6 | Send the URL to the publisher or host and log it | A record of which placement got which URL |
| 7 | Read Traffic acquisition by Session campaign and Session source / medium | A row per campaign and per source after processing |
| 8 | Read untagged referral rows from the same publishers | Placement traffic counted even where the tag was dropped |
Time: about 30 minutes to set up the convention, then a few minutes per placement (our estimate). Tools: a browser, the Campaign URL Builder, Google Analytics 4 and a spreadsheet. Cost: none. Skill level: beginner; Step 8 and explorations are intermediate.
What You Need Before Starting
- A GA4 property collecting data on the site you will link to, with access to Reports.
- The exact landing page for each placement, and confirmation that it loads at its final URL without a further redirect.
- A list of the publications, podcasts and newsletters where you expect a link, with a contact for each.
- A shared spreadsheet to log every tagged URL.
- Agreement inside the team on campaign names, so that two people do not invent two spellings.
Step 1: List the External Links You Can Tag, and Leave Internal Links Alone
Identify every link you supply to someone else: the URL in a press release, the link in a contributed article's author bio, the URL you send a podcast producer for the show notes, a newsletter mention you arranged. These are the links UTM tags were made for. Google's legacy Universal Analytics guidance put it this way: “if you want to associate a campaign name or ad type (such as ‘banner_ad’) with referral traffic, you should tag links on referral sites” (Google, legacy best practices).
Why internal links are excluded: GA4 assigns one source per session. Google says “a new session is not started when Google Analytics encounters a new campaign or traffic source”; values sent mid-session are attached to the events for which they were collected and used in event-based attribution, but not to the session (Campaigns and traffic sources). In Google's own worked example, a visitor clicks a link tagged utm_source=internal_promotion in the middle of a session; the session keeps its original source, but the tagged values enter the key-event paths, and a later bookmarked visit is credited to UTM values rather than to direct. Google explains: “Sessions initiated by direct entrance are attributed to the UTM values for that user” (Scopes of traffic-source dimensions). An internal tag therefore replaces the press or podcast credit you were trying to measure. For links between your own domains, Google provides cross-domain measurement instead (Set up cross-domain measurement).
Expected result: a list of external link slots, each with a landing page. How to verify: no URL on the list points from your site to your site. Common mistake: tagging homepage banners or navigation to “see which button works”; use GA4 events for that.
Step 2: Set a Lowercase Naming Convention Before You Build Anything
Write down one spelling for each value before creating the first URL. GA4 treats every variation as a separate row: Google says “Keywords with different capitalization, such as Meta and meta, are treated as different values. Use lowercase as a standard practice,” and that “SpringSale and Spring_Sale are considered distinct” (GA4 UTM best practices).
Google's best-practice table asks for one unique utm_source per platform, one utm_medium per channel, one campaign name per marketing effort, and consistent utm_content values. A convention that fits earned media:
| Placement | utm_source | utm_medium | utm_campaign | utm_content |
|---|---|---|---|---|
| Feature in a trade publication | example-trade-journal | referral | 2026-10-product-launch | article-body |
| Contributed article | example-business-site | referral | 2026-q4-thought-leadership | author-bio |
| Podcast guest episode | example-show-podcast | referral | 2026-10-product-launch | show-notes |
| Newsletter mention | example-newsletter | email | 2026-10-product-launch | mention |
| Press release | press-release | referral | 2026-10-product-launch | body-link |
Use hyphens or underscores consistently, never spaces. Google notes that special characters “must be URL encoded” (How traffic source dimensions are updated), so a space becomes + or %20, which is easy to get wrong by hand. Expected result: a one-page convention. How to verify: two people building the same placement URL produce identical strings. Common mistake: using the outlet's display name one week (ExampleJournal) and its domain the next.
Step 3: Choose a utm_medium That Lands in the Right GA4 Channel
Choose the medium from GA4's documented channel rules, not from what describes the placement best. GA4 sorts traffic into default channels using source and medium, and Google says the definitions “aren't case sensitive and can't be edited” (Default channel group). The rules for manually tagged traffic that matter here:
| utm_medium value | GA4 rule (paraphrased from Google) | Default channel |
|---|---|---|
referral, link or app | Medium is one of “referral”, “app”, or “link” | Referral |
email (also e-mail, e_mail, e mail) | Source or medium equals one of these | |
social, social-media, sm and listed variants | Medium is one of the listed social values, or source is on Google's social list | Organic Social |
audio | Medium exactly matches audio | Audio (Google: ads on audio platforms such as podcast platforms) |
affiliate | Medium = affiliate | Affiliates |
Anything starting paid, containing cp, or ppc | Medium matches ^(.*cp.*|ppc|retargeting|paid.*)$ | A paid channel: usually Paid Other, or Paid Search, Paid Social, Paid Video or Paid Shopping if the source is on Google's lists |
podcast, pr, press, earned | No rule matches | Unassigned |
Google describes Unassigned as “the value Analytics uses when there are no other channel rules that match the event data.” The campaign data is still recorded, but channel-level reports will not show it where you expect. Expected result: one medium per placement type, written into the convention. How to verify: check each value against the channel definitions before use. Common mistake: using audio for an unpaid guest appearance. Google defines the Audio channel as visits “via ads on audio platforms”, so mixing earned show-notes clicks into it misstates your paid audio results.
Step 4: Build Each URL in Google's Campaign URL Builder
Open the Campaign URL Builder, which Google's help names as the tool for links to websites, and fill in the fields. The builder marks website URL, campaign source and campaign medium as required, and its help text says “One of campaign name or campaign id are required.” Google's help article goes further: “When you add parameters to a URL, you should always use utm_source, utm_medium, and utm_campaign.”
The builder produces a URL such as:
https://example.com/launch?utm_source=example-show-podcast&utm_medium=referral&utm_campaign=2026-10-product-launch&utm_content=show-notes
If you build URLs by hand, Google's rules are: separate the parameters from the URL with a question mark, join each name and value with an equals sign, separate pairs with an ampersand, and add them in any order. If the landing URL already has a query string, add the UTM pairs after an ampersand, not a second question mark.
Fill in the gaps deliberately. Google says that if you set one UTM parameter, it “strongly recommend[s]” setting all relevant ones, “especially utm_source, utm_medium, utm_campaign, utm_id, and utm_source_platform. Missing UTM parameters will result in (not set) values being present in reporting.” For earned links, utm_source_platform and utm_term usually have no honest value, so expect (not set) in the dimensions they feed. Expected result: one URL per placement and link position. Common mistake: ticking the builder's option to put parameters in the URL fragment, which the tool itself labels “not recommended”.
Step 5: Test the Tagged URL Before You Send It
Paste the tagged URL into a private browser window and check the address bar after the page finishes loading. The utm_ values must still be there, because GA4 reads them from the page location. Redirects are the usual reason they disappear: an http to https hop, a trailing-slash rule, a vanity path or a link shortener that forwards without the query string.
Check the landing page's canonical at the same time. A tagged URL is a second URL for the same page. Google's canonical documentation uses exactly this case: signals from links to a URL with a tracking parameter (its example is ?gclid=ABCD) are consolidated with the clean URL “if the latter becomes canonical” (Google, How to specify a canonical URL). A self-referencing rel="canonical" on the landing page pointing to the clean URL handles this; see what a canonical URL is and how Google chooses one.
Expected result: the final URL shows all parameters and the page has a canonical to the untagged URL. How to verify: in GA4's Realtime report, a view of the landing page appears within minutes. Google notes that Realtime shows user-scoped (first-user) acquisition and only for users already processed, so a test click from a new browser may not show its campaign there; confirm the campaign in Step 7. Common mistake: testing the clean URL instead of the tagged one.
Step 6: Give the URL to the Publisher or Host, and Log It
Send the exact tagged URL to the editor, producer or host, in writing, with the plain landing URL alongside it. Ask whether they can use the tagged version; some publications have their own link rules, and podcast producers often paste links into the episode description of their hosting platform. Then log the placement, the outlet, the date, the full tagged URL and who received it.
For podcasts, plan for the spoken mention too. A host cannot read a 150-character URL on air. A short path on your own domain, such as example.com/show, that redirects to the tagged URL lets listeners type something memorable while still arriving with tags. Test it as in Step 5. If you use the Campaign URL Builder's shorten-link option, it connects to Bitly; any shortener adds a redirect you need to test. For preparing the appearance itself, see how to pitch yourself as a podcast guest.
Expected result: each placement has a logged URL. How to verify: when the piece goes live, open the published article or episode page and click your link. Common mistake: assuming the link was used because it was sent.
Step 7: Read the Results in the Traffic Acquisition Report
Open Reports, then Acquisition > Traffic acquisition, the path Google gives in its Traffic acquisition report help. The report's default dimension is Session default channel group; switch it to Session campaign to see your campaign names, or to Session source / medium to see rows such as example-show-podcast / referral. Google's UTM article confirms you can view “Session source/medium, Session medium, Session source, and Session campaign in the Acquisition > Traffic acquisition report.” You can also type a value into the search bar above the table.
Two details shape what you see. First, these are session-scoped dimensions: Google says they describe where users come from “when they start new sessions”, and the User acquisition report shows first-user values instead (Scopes of traffic-source dimensions). Second, Google says “Data processing can take 24-48 hours” (Data freshness). For utm_content, add the Session manual ad content dimension in an exploration; Google maps utm_content to the Manual ad content dimensions (Traffic-source dimensions, manual tagging, and auto-tagging).
Hours, upper end of each stated processing time, from Google's Data freshness page, read October 10, 2026
Source: Google Analytics Help, Data freshness.
The Realtime report is typically a few minutes behind, too short to show on this scale. Daily processing is 12 hours for standard and normal-size 360 properties; very large 360 properties take longer. Read campaign rows in Traffic acquisition after the full 24 to 48 hours.
Expected result: a Session campaign row for each campaign, with sessions, engaged sessions and key events. Common mistake: looking for UTM values in Landing page + query string. Google says UTM parameters are omitted from that dimension and from Page path + query string, and appear in Page location instead.
Step 8: Account for Placement Traffic That Arrives Untagged
Search the same Traffic acquisition report for each publisher's domain, such as exampletradejournal.com / referral. A link the publisher created without your tags is still a referral: Google's Referral channel covers visits “via non-ad links on other sites/apps (e.g., blogs, news sites).” Add those sessions to the tagged ones in your log, marked as untagged.
Some placement traffic will not appear as either. Listeners who hear a podcast and search for you arrive through search; people who copy a URL into a new tab, or open it from some apps, may arrive as Direct, which Google defines as source “(direct)” with medium “(none)” or “(not set)”. Readers who later reach the article through an AI assistant arrive with that assistant's own tags; see how to track AI referral traffic in GA4. Clicks also fade quickly after publication, so read results over a fixed window; our report on what happens to a placement's traffic after the first week covers the decay research, and how to measure whether placement worked covers what clicks cannot show.
Expected result: a total per placement split into tagged and untagged referral sessions. Common mistake: reporting tagged clicks as the whole effect of a placement.
How to Choose a utm_medium for Each Placement Type
| Situation | Recommended utm_medium | Why |
|---|---|---|
| Earned article, interview or review with a link | referral | Matches the Referral rule; keeps it alongside untagged referrals |
| Podcast guest episode, link in show notes | referral | Earned, not an ad; podcast would be Unassigned |
| Paid audio ad read on a podcast | audio | Google's Audio channel is for ads on audio platforms |
| Sponsored or paid article | A value starting paid, e.g. paid-article | Matches the paid regex, so paid placements are not counted as earned referrals |
| Newsletter mention you arranged | email | Matches the Email rule |
| Link the publisher posts on social media | social | Matches the Organic Social rule |
How to Verify It Worked
- Before launch: the tagged URL opens the right page and the address bar still shows every
utm_pair after redirects. - On publication: clicking the link on the live article or episode page shows the same tagged URL.
- Within minutes: the Realtime report shows views of the landing page.
- After 24–48 hours: Traffic acquisition, with Session campaign as the dimension, shows your campaign name; Session source / medium shows
your-source / referral; Session default channel group puts it in the channel you planned, not Unassigned.
Common Problems and Fixes
| Problem | Likely cause | Fix |
|---|---|---|
Campaign shows as (not set) | A parameter, usually utm_campaign, was left out | Set source, medium and campaign on every URL; Google says missing parameters produce (not set) |
| Same campaign split across two rows | Different capitalisation or spelling | Use the lowercase convention from Step 2; GA4 treats variations as different values |
| Placement traffic in Unassigned | Medium such as podcast or pr matches no channel rule | Use a medium from the channel definitions, such as referral |
| Publisher referrals but no campaign rows | The publisher linked without your tags | Count the untagged referral rows (Step 8); ask for the tagged URL next time |
| Parameters vanish on arrival | A redirect or shortener drops the query string | Link to the final URL, or configure the redirect to keep the query string |
| Source counted as Organic Social, not Referral | utm_source is a social network name on Google's social list | Use the publication's name as source, not the platform it was shared on |
| Campaign credited for visits it did not cause | Internal links carry UTM tags | Remove tags from links between your own pages |
What Not to Do
- Do not tag internal links. Mid-session campaign values feed event attribution and later direct sessions. Consequence: placement credit goes to your own banner. Correction: tag only links on other sites.
- Do not invent a new medium per placement. Consequence: Unassigned traffic and a channel report nobody trusts. Correction: a fixed list of mediums mapped to channels.
- Do not use the fragment option. The builder labels it “not recommended”. Correction: keep parameters in the query string.
- Do not change names mid-campaign. Consequence: one campaign split into several rows. Correction: freeze the convention before the first URL goes out.
- Do not treat tagged clicks as the result. Consequence: undercounting, because untagged links, search and spoken mentions are missed. Correction: report tagged and untagged referrals together, with their limits.
Frequently Asked Questions
Which UTM parameters are required for GA4?
Google's help says you “should always use utm_source, utm_medium, and utm_campaign.” The Campaign URL Builder requires source and medium plus either a campaign name or a campaign ID.
Are UTM values case sensitive in GA4?
Yes. Google says utm_source=google is different from utm_source=Google, and recommends lowercase as standard practice.
What utm_medium should I use for a podcast guest appearance?
referral for the show-notes link. podcast matches no default channel rule and is reported as Unassigned, and audio is the channel Google defines for ads on audio platforms.
Why is my tagged campaign showing as Unassigned?
Its utm_medium matches none of GA4's default channel rules. Google says Unassigned is used “when there are no other channel rules that match the event data.”
How long does UTM campaign data take to appear in GA4?
Google says data processing can take 24–48 hours. The Realtime report shows activity sooner, but it uses first-user acquisition and only for users already processed.
Do UTM parameters hurt SEO?
Google treats a URL with extra parameters as a separate URL. A rel="canonical" on the landing page pointing to the clean URL lets Google consolidate signals, and Google's URL guidance suggests trimming parameters that do not change content.
Can I use UTM tags on links between my own websites?
Google's documentation points to cross-domain measurement for that. A UTM tag mid-session does not start a new session and can replace the source credited for later visits.
Will UTM tags count people who heard a podcast but did not click?
No. A tag only identifies visits that load the tagged URL. Listeners who search for you or type your domain arrive as search or direct traffic, unless a spoken short URL redirects to a tagged one.
Where do I see utm_content in GA4?
Google maps utm_content to the Manual ad content dimensions, including Session manual ad content, which you can add in an exploration.
Sources and Methodology
This guide is built from Google Analytics Help articles, the Campaign URL Builder and Google Search Central documentation, all read on October 7, 2026. Parameter descriptions, channel rules and report names are quoted or paraphrased from those pages; the Campaign URL Builder's field labels were read from the tool's published page code because the page renders with JavaScript. The naming convention, medium recommendations and time estimate are our own, derived from Google's rules. We did not run a test campaign for this guide. We did not find a current GA4 help page with a one-line rule against tagging internal links; the advice in Step 1 is drawn from Google's documented session and attribution behaviour. Channel rules may change: Google says its definitions “may evolve as the market changes.”
- official Google Analytics Help, URL builders: Collect campaign data with custom URLs. Read October 7, 2026.
- official Google Analytics Help, Default channel group. Read October 7, 2026.
- official Google Analytics Help, Traffic-source dimensions, manual tagging, and auto-tagging. Read October 7, 2026.
- official Google Analytics Help, Campaigns and traffic sources. Read October 7, 2026.
- official Google Analytics Help, Scopes of traffic-source dimensions. Read October 7, 2026.
- official Google Analytics Help, [GA4] Traffic acquisition report. Read October 7, 2026.
- official Google Analytics Help, [GA4] Realtime report. Read October 7, 2026.
- official Google Analytics Help, Data freshness. Read October 7, 2026.
- official Google Analytics Help, [GA4] How traffic source dimensions are updated. Read October 7, 2026.
- official Google Analytics Help, Set up cross-domain measurement. Read October 7, 2026.
- official Google Analytics Help, [UA] Best Practices for collecting campaign data with custom URLs [Legacy]. Read October 7, 2026; Google marks it as a legacy Universal Analytics article.
- official Google Analytics Demos & Tools, Campaign URL Builder. Read October 7, 2026.
- official Google Search Central, How to specify a canonical with rel="canonical" and other methods. Read October 7, 2026.
- official Google Search Central, URL structure best practices for Google Search. Read October 7, 2026.