UTM Generator
Build tagged campaign links in seconds. Pick a preset for Meta, Google, TikTok, or email, fill in the campaign name, and copy a clean UTM link your analytics will attribute correctly.
The page people land on. Existing query parameters are kept.
Where the traffic comes from: facebook, google, newsletter.
The channel type: paid_social, cpc, email, affiliate.
The promotion or campaign, e.g. spring_sale or launch_q3.
Keyword or audience, optional.
Ad, creative, or link variant, optional.
Your UTM link
- utm_source
- utm_medium
- paid_social
- utm_campaign
- spring_sale
- utm_term
- not set
- utm_content
- not set
Works with Google Analytics, HubSpot, Cometly, and any tool that reads UTM parameters. Free, instant, no sign-up.
The five UTM parameters
Three are expected by every analytics tool; two add detail for testing. Use the same values every time so reports stay clean.
| Parameter | What it records | Example values | Required |
|---|---|---|---|
utm_source | The platform or site the visitor came from. | facebook, instagram, google, tiktok, newsletter | Yes |
utm_medium | The type of channel. | paid_social, cpc, email, affiliate, organic_social | Yes |
utm_campaign | The promotion, product push, or campaign name. | spring_sale, launch_q3, black_friday | Yes |
utm_term | The keyword or audience, mostly for search and testing. | running_shoes, lookalike_1pct | No |
utm_content | The specific ad, creative, or link, to tell variants apart. | video_hook_a, carousel_v2, header_cta | No |
Google Analytics 4 also reads utm_id, utm_source_platform, utm_creative_format, and utm_marketing_tactic, but the five above cover almost every reporting need.
UTM naming conventions that keep reports clean
UTM parameters only work if everyone on the team tags links the same way. Analytics tools are case-sensitive and literal, so Facebook, facebook, and FB become three sources, and spring sale and spring_sale become two campaigns. The generator forces lowercase and replaces spaces by default for exactly this reason.
Decide your vocabulary once and write it down: a short list of allowed sources, a shorter list of mediums, and a campaign naming pattern such as objective_offer_date. Put the thing you compare most often, usually the creative or hook, in utm_content so you can see which ad variant drove the result, not just which platform.
For Meta ads, use the URL parameters field in Ads Manager with dynamic placeholders like {{campaign.name}} and {{ad.name}} so every ad is tagged automatically from its own name. Then keep the ad names themselves consistent and the whole account reports cleanly without editing a single link.
Common UTM mistakes
Mixed capitalization and spaces, which split one campaign into several rows.
Using a platform name as the medium (utm_medium=facebook) instead of the channel type (paid_social).
Tagging links on your own site, which turns real sessions into fake campaign traffic.
Reusing one campaign name forever, so you cannot compare launches or seasons.
Leaving utm_content empty, so you never learn which creative or hook did the work.
UTM Generator FAQ
Keep reading
Guides from the AdStellar blog that go deeper on this topic.
More free tools
Know which ads actually drove the sale
AdStellar launches campaigns to Meta with clean tracking built in, and Creative Analytics shows which creatives, hooks, and audiences earned the results.