UTM Examples: Real Tracking URLs for Email, Social, Ads & More
Thirty-two tagged URLs across eight channel types, each with the reasoning behind its values. Find the scenario closest to yours, copy the pattern, swap in your own campaign name.
Every example follows one convention: lowercase values, underscores as separators, and medium values that GA4 recognises. That consistency is deliberate mixing styles across campaigns is the fastest way to fragment your reporting. If you want the reasoning behind the convention itself, see UTM naming conventions.
Destination URLs are shown in full on the first example of each category and abbreviated afterwards.
| Scenario | Source | Medium | Campaign | Content |
| Weekly newsletter, lead story | newsletter | weekly_digest | lead_story | |
| Promotional send | newsletter | summer_sale_2026 | hero_cta | |
| Welcome sequence, email 2 | lifecycle | welcome_series | email_2_setup | |
| Product announcement | product_updates | builder_v2_launch | announcement_banner |
https://onlinetoolpot.com/blogs/utm-parameters?utm_source=newsletter&utm_medium=email&utm_campaign=weekly_digest&utm_content=lead_story
/tool/campaign-url-builder?utm_source=newsletter&utm_medium=email&utm_campaign=summer_sale_2026&utm_content=hero_cta
/tool/campaign-url-builder?utm_source=lifecycle&utm_medium=email&utm_campaign=welcome_series&utm_content=email_2_setup
/tool/campaign-url-builder?utm_source=product_updates&utm_medium=email&utm_campaign=builder_v2_launch&utm_content=announcement_banner
Why these values. The source names the list, not the sending tool Mailchimp or Klaviyo delivers the message, but the audience is yours. Three distinct sources appear here because a newsletter subscriber, a lifecycle-automation recipient, and a product-updates subscriber are genuinely different audiences worth comparing; if you only send one kind of email, one source value is enough.
utm_medium=email is fixed across all four. GA4 classifies a session as Email when the source or medium matches an email variant, so this value is doing real work.
utm_content earns its place here because email is the channel most likely to contain several links to the same destination. Naming the placement is what tells you whether the hero button or the footer link did the work.
Paid Social
| Scenario | Source | Medium | Campaign | Content |
| Meta conversion ad | paid_social | q3_signups | video_ad_a | |
| Instagram story ad | paid_social | q3_signups | story_swipe_up | |
| LinkedIn sponsored post | paid_social | webinar_launch | carousel_v1 | |
| TikTok in-feed ad | tiktok | paid_social | brand_awareness_q3 | ugc_creator_cut |
https://onlinetoolpot.com/tool/campaign-url-builder?utm_source=facebook&utm_medium=paid_social&utm_campaign=q3_signups&utm_content=video_ad_a
/tool/campaign-url-builder?utm_source=instagram&utm_medium=paid_social&utm_campaign=q3_signups&utm_content=story_swipe_up
/tool/campaign-url-builder?utm_source=linkedin&utm_medium=paid_social&utm_campaign=webinar_launch&utm_content=carousel_v1
/tool/campaign-url-builder?utm_source=tiktok&utm_medium=paid_social&utm_campaign=brand_awareness_q3&utm_content=ugc_creator_cut
Why these values. The platform name goes in source, always facebook, not meta, and never social. Meta owns both Facebook and Instagram, but they're separate sources here because their audiences and placements perform differently and you'll want to compare them.
paid_social is not a stylistic choice. GA4's paid channel conditions match mediums that contain cp, or equal ppc or retargeting, or begin with paid so paid_social classifies correctly while a descriptive-looking value like fb_ads silently lands in Organic Social. Your paid spend would be reported as unpaid, with no error.
Note the first two examples share utm_campaign=q3_signups across two platforms. That's what makes cross-channel comparison possible one campaign name, many sources.
→ Build a paid social tracking URL
Organic Social
| Scenario | Source | Medium | Campaign | Content |
| LinkedIn company post | organic_social | utm_guide_promo | post_2026_08_21 | |
| Facebook page post | organic_social | utm_guide_promo | post_2026_08_21 | |
| Instagram bio link | organic_social | bio_link | profile_permanent | |
| YouTube video description | youtube | organic_social | tutorial_series | ep4_description |
https://onlinetoolpot.com/blogs/utm-parameters?utm_source=linkedin&utm_medium=organic_social&utm_campaign=utm_guide_promo&utm_content=post_2026_08_21
/blogs/utm-parameters?utm_source=facebook&utm_medium=organic_social&utm_campaign=utm_guide_promo&utm_content=post_2026_08_21
/tool/campaign-url-builder?utm_source=instagram&utm_medium=organic_social&utm_campaign=bio_link&utm_content=profile_permanent
/blogs/utm-parameters?utm_source=youtube&utm_medium=organic_social&utm_campaign=tutorial_series&utm_content=ep4_description
Why these values. The source values are identical to the paid social examples above. That is the entire point same source, different medium, and now you can compare paid against organic on the same platform in one report.
organic_social works because GA4 classifies a session as Organic Social when the source matches a recognised social site or the medium matches its organic social list. Your source is doing the classifying here; the medium is doing the reporting clarity.
The Instagram bio link is a special case worth calling out: it's permanent rather than campaign-bound, so bio_link as the campaign is honest. Don't attach a time limited campaign name to a link that will sit in your profile for two years.
→ Build an organic social tracking URL
Paid Search
Read this before copying. If you're running Google Ads with auto tagging enabled, you generally should not add manual UTMs to those URLs. Google Ads documentation states that in GA4, auto tagging is prioritised over manual tagging because there is no override option so your manual values won't change what GA4 reports, and turning auto tagging off to force them through costs you ad group and keyword detail that manual tagging cannot replace.
These examples are for search platforms without an Analytics integration, or for feeding a separate system such as a CRM or internal dashboard.
| Scenario | Source | Medium | Campaign | Term |
| Microsoft Ads, brand terms | bing | cpc | brand_defence_2026 | onlinetoolpot |
| Microsoft Ads, non-brand | bing | cpc | utm_tools_generic | utm_builder_free |
| Search retargeting | bing | retargeting | cart_recovery_q3 | — |
| Non-integrated search platform | duckduckgo | cpc | privacy_audience_test | campaign_url_builder |
https://onlinetoolpot.com/tool/campaign-url-builder?utm_source=bing&utm_medium=cpc&utm_campaign=brand_defence_2026&utm_term=onlinetoolpot
/tool/campaign-url-builder?utm_source=bing&utm_medium=cpc&utm_campaign=utm_tools_generic&utm_term=utm_builder_free
/tool/campaign-url-builder?utm_source=bing&utm_medium=retargeting&utm_campaign=cart_recovery_q3
/tool/campaign-url-builder?utm_source=duckduckgo&utm_medium=cpc&utm_campaign=privacy_audience_test&utm_term=campaign_url_builder
Why these values. cpc is the long standing convention for paid search and it satisfies GA4's paid conditions. retargeting is listed by Google as a recognised paid medium, which is why the third example can use it directly rather than inventing something descriptive.
utm_term appears here and nowhere else in this library. It carries the keyword, and it's only worth setting where the platform doesn't already report keywords natively. The retargeting example omits it because there is no keyword an audience was targeted, not a search.
→ Build a paid search tracking URL
Partner & Referral
| Scenario | Source | Medium | Campaign | Content |
| Affiliate placement | partner_acme | affiliate | affiliate_programme | sidebar_banner |
| Integration partner listing | partner_zapier | referral | integration_directory | directory_listing |
| Co-marketing webinar | partner_acme | referral | co_marketing_q3 | partner_email |
| Review site listing | g2 | referral | review_profiles | category_page |
https://onlinetoolpot.com/tool/campaign-url-builder?utm_source=partner_acme&utm_medium=affiliate&utm_campaign=affiliate_programme&utm_content=sidebar_banner
/tool/campaign-url-builder?utm_source=partner_zapier&utm_medium=referral&utm_campaign=integration_directory&utm_content=directory_listing
/tool/campaign-url-builder?utm_source=partner_acme&utm_medium=referral&utm_campaign=co_marketing_q3&utm_content=partner_email
/tool/campaign-url-builder?utm_source=g2&utm_medium=referral&utm_campaign=review_profiles&utm_content=category_page
Why these values. Each partner gets its own source, prefixed partner_ so partner traffic groups together in an alphabetical report while individual partners stay comparable. g2 breaks that pattern deliberately a review directory is a recognisable brand in its own right, not a partner you signed.
The medium distinguishes commercial arrangements: affiliate for revenue-share relationships, which GA4 classifies into the Affiliates channel on an exact match, and referral for everything else. Note that the same partner appears with two different mediums in examples one and three the relationship changed, the source didn't. That's sources behaving as they should.
→ Build a partner tracking URL
Influencer & Creator
| Scenario | Source | Medium | Campaign | Content |
| Paid creator post | creator_janedoe | paid_social | spring_launch | instagram_reel |
| Gifted / unpaid mention | creator_samlee | organic_social | seeding_q3 | youtube_mention |
| Long-term ambassador | creator_janedoe | paid_social | ambassador_2026 | monthly_post_08 |
| Newsletter sponsorship | creator_thedailybyte | sponsorship | newsletter_sponsorships | issue_142 |
https://onlinetoolpot.com/tool/campaign-url-builder?utm_source=creator_janedoe&utm_medium=paid_social&utm_campaign=spring_launch&utm_content=instagram_reel
/tool/campaign-url-builder?utm_source=creator_samlee&utm_medium=organic_social&utm_campaign=seeding_q3&utm_content=youtube_mention
/tool/campaign-url-builder?utm_source=creator_janedoe&utm_medium=paid_social&utm_campaign=ambassador_2026&utm_content=monthly_post_08
/tool/campaign-url-builder?utm_source=creator_thedailybyte&utm_medium=sponsorship&utm_campaign=newsletter_sponsorships&utm_content=issue_142
Why these values. The creator's name goes in source because their audience is what you borrowed. This scales properly: every creator becomes a comparable row in one report, and the creator_ prefix keeps them grouped.
The medium reflects the commercial arrangement, not the platform paid placements use paid_social, gifted mentions use organic_social. That distinction matters because it's the only way to work out cost per acquisition for the paid ones.
One caveat on the fourth example. sponsorship is descriptive but has no defined GA4 channel, so it will likely fall into Unassigned. If channel reporting matters more to you than the label, use referral and move the detail into utm_content. Verify where it lands in your own property before standardising on it.
→ Build a creator tracking URL
QR Codes & Offline
| Scenario | Source | Medium | Campaign | Content |
| Conference booth signage | conference_saastr | qr | saastr_2026 | booth_backdrop |
| Printed flyer | flyer_local_dist | local_awareness_q3 | flyer_v2 | |
| Magazine print ad | magazine_martechweekly | print_test_2026 | full_page_p12 | |
| Packaging insert | packaging | qr | post_purchase_onboarding | insert_card |
https://onlinetoolpot.com/tool/campaign-url-builder?utm_source=conference_saastr&utm_medium=qr&utm_campaign=saastr_2026&utm_content=booth_backdrop
/tool/campaign-url-builder?utm_source=flyer_local_dist&utm_medium=print&utm_campaign=local_awareness_q3&utm_content=flyer_v2
/tool/campaign-url-builder?utm_source=magazine_martechweekly&utm_medium=print&utm_campaign=print_test_2026&utm_content=full_page_p12
/tool/campaign-url-builder?utm_source=packaging&utm_medium=qr&utm_campaign=post_purchase_onboarding&utm_content=insert_card
Why these values. Offline has no referring website, so the source is your only record of which physical placement drove the visit. Be specific: conference_saastr is useful, event is not. If you print three different flyers, utm_content is what tells them apart.
Important limitation. qr and print have no defined GA4 default channel and will most likely appear as Unassigned. That's a reporting inconvenience, not a data loss your source, medium and campaign values are all recorded and available in the Traffic acquisition report. If Unassigned traffic is a problem for your reporting, a custom channel group can capture these. Check your own property before rolling this out at scale.
Also keep offline URLs short. Someone may have to type one, and a long query string is a barrier use a short redirect that preserves the parameters, and test that it actually preserves them.
→ Build an offline tracking URL
Content Promotion
| Scenario | Source | Medium | Campaign | Content |
| Syndicated blog post | medium | referral | content_syndication | utm_guide_repost |
| Ebook download CTA | newsletter | ebook_campaign_tracking | chapter_3_cta | |
| Webinar registration push | paid_social | webinar_launch | registration_ad | |
| Community / forum share | referral | template_download | r_analytics_thread |
https://onlinetoolpot.com/blogs/utm-parameters?utm_source=medium&utm_medium=referral&utm_campaign=content_syndication&utm_content=utm_guide_repost
/tool/campaign-url-builder?utm_source=newsletter&utm_medium=email&utm_campaign=ebook_campaign_tracking&utm_content=chapter_3_cta
/tool/campaign-url-builder?utm_source=linkedin&utm_medium=paid_social&utm_campaign=webinar_launch&utm_content=registration_ad
/tool/campaign-url-builder?utm_source=reddit&utm_medium=referral&utm_campaign=template_download&utm_content=r_analytics_thread
Why these values. All four reuse patterns from earlier categories, which is the point content promotion isn't a channel, it's a reason. The channel is still email, social, or referral, and the campaign name is what identifies the content being promoted.
The Reddit example uses referral rather than organic_social deliberately: Reddit sits in GA4's recognised social source list, so it would classify as Organic Social either way, but referral describes a link dropped in a discussion thread more honestly than a value implying a published post. Where both are defensible, pick the one that will still make sense to whoever reads the report.
utm_content identifies the specific thread or placement, which matters here because community links are usually one-offs and you'll want to know which one worked.
→ Build a content promotion URL
Bad vs Better
Six corrections, each drawn from the categories above.
| Bad | Better | Why it matters |
| utm_source=social | utm_source=linkedin | A category erases which platform delivered the visit. That information is gone permanently no report recovers it. |
| utm_medium=facebook_ads | utm_medium=paid_social | facebook_ads matches none of GA4's paid conditions, so your paid traffic is classified as Organic Social. |
| utm_campaign=Summer Sale | utm_campaign=summer_sale_2026 | Capitals create a second value; the space encodes as %20; no year means it collides with next summer. |
| utm_source=mailchimp | utm_source=newsletter | Mailchimp sends the email. The audience is your list. The tool isn't the source. |
| utm_campaign=linkedin_ad | utm_campaign=webinar_launch | Naming the channel in the campaign field means you can't compare channels within one campaign. |
| utm_content=summer_webinar | utm_content=hero_cta | Repeating the campaign name in content wastes the one field that could tell you which link was clicked. |
| Tagging your own inline CTA utm_source=google&utm_medium=organic | Track the click as an event instead | Tagging an internal link means that URL gets bookmarked and shared and every later visit records one of your own pages as the acquisition source. |
Build Your Own
Every example here was built from the same three decisions: whose audience, what method, which initiative. Once you've made them, the URL is mechanical and worth generating rather than typing, because a stray capital or a missing & costs you the data.
Where to go next:
- Unsure which field a value belongs in? → Source vs medium vs campaign
- Want your whole team using these values consistently? → UTM naming conventions
- Need the definition of each parameter? → UTM parameters reference
- Ready to check the data arrived? → How to track UTM campaigns in GA4
- New to campaign tracking? → Complete campaign URL guide






