UTM Builder: create UTM links for every source at once
A UTM builder adds tracking parameters (utm_source, utm_medium, utm_campaign, utm_term, utm_content and utm_id) to a link so Google Analytics 4 knows where each visit came from. Pick your sources, enter the page and campaign, and copy a ready link for each one, with ad-platform macros and the GA4 channel it lands in.
Free, no sign-up, and nothing leaves your browser. Tag one link or a whole campaign: Google Ads, Meta, TikTok, LinkedIn, email, WhatsApp, QR codes and 50+ other sources in one go.
How to use the UTM builder
- Paste the page URL. For several pages, put one URL per line: you get a link for every page and source.
- Enter the campaign name in utm_campaign, and an ID in utm_id if you import costs into GA4.
- Pick the sources. Each preset fills utm_source and utm_medium with values GA4 recognises; you can change them in the result.
- Copy a link, copy only the parameters for an ad platform, download a QR code, or export everything to CSV.
- Save the setup as a template or share it with a link, so the whole team tags campaigns the same way.
What are UTM parameters?
UTM parameters are tags at the end of a link, after the “?”. Google Analytics 4 reads them on the first visit and records the source, medium and campaign of the session. GA4 reads nine of them; three are required in practice. Values are case-sensitive: “Email” and “email” become two rows in your reports.
| Parameter | Required | What it answers | Example |
|---|---|---|---|
utm_source | Yes | Who sent the visit: the site, platform or newsletter. | google, facebook, newsletter |
utm_medium | Yes | The type of traffic; GA4 builds the channel from it. | cpc, paid_social, email |
utm_campaign | Yes | The campaign or promotion. | spring_sale_2026 |
utm_id | Recommended | The campaign ID, used to join cost data imported into GA4. | 2026-q1-001 |
utm_term | No | The paid keyword or audience. | crm_for_sales |
utm_content | No | Which ad, button or link inside the campaign was clicked. | banner_a, footer_link |
utm_source_platform | No | The buying platform that ran the campaign. | google_ads, dv360 |
utm_creative_format | No | The creative type. GA4 does not report it yet. | video, carousel |
utm_marketing_tactic | No | The targeting tactic. GA4 does not report it yet. | remarketing, prospecting |
Which GA4 channel will my link land in?
GA4 sorts every tagged visit into a default channel by fixed rules, checked from top to bottom; the first match wins. The rules look at utm_source, utm_medium and utm_campaign, and at Google’s published lists of search, social, video and shopping sites. This builder applies the same rules to each link, so you see the channel before you launch.
Three results surprise people most often:
- Some well-known sources are not on Google’s lists. “telegram” and “x” are missing, while “t.me” and “twitter” are listed. So telegram / cpc lands in Paid Other, and t.me / cpc in Paid Social.
- Source beats medium. The social rule runs before the email rule, so facebook / email is Organic Social, not Email.
- Offline has no channel. QR codes on flyers or event links end up as Unassigned unless you create a custom channel group in GA4.
| GA4 channel | Rule for tagged links | Example |
|---|---|---|
| Paid Search | Source is a search engine (google, bing, yandex…) and the medium matches cpc, ppc, retargeting or paid… | google / cpc |
| Paid Social | Source is a social network (facebook, instagram, linkedin, tiktok…) and the medium is paid | facebook / paid_social |
| Paid Video | Source is a video site (youtube, vimeo…) and the medium is paid | youtube / cpv |
| Paid Shopping | Source is a shopping site or the campaign name contains “shop”/“shopping”, and the medium is paid | google / cpc / spring_shopping |
| Display | Medium is display, banner, expandable, interstitial or cpm | google / display |
| Paid Other | The medium is paid but the source is on none of Google’s lists | telegram / cpc |
| Organic Social | Source is a social network, or the medium is social, social-network, social-media, sm | linkedin / social |
| Organic Video | Source is a video site, or the medium contains “video” | youtube / video |
| Organic Search | Source is a search engine, or the medium is organic | google / organic |
| AI Assistant | Medium is ai-assistant | chatgpt.com / ai-assistant |
| Referral | Medium is referral, app or link | partner-site / referral |
| Source or medium is email, e-mail, e_mail or “e mail” | newsletter / email | |
| Affiliates | Medium is affiliate | partner / affiliate |
| Audio | Medium is audio | spotify / audio |
| SMS | Source or medium is sms | sms / sms |
| Mobile Push Notifications | Medium ends with “push” or contains “mobile” or “notification”, or source is firebase | app / push |
| Unassigned | Nothing above matched | print / qr |
Dynamic UTM parameters: ad-platform macros
Ad platforms can put the campaign, ad group, ad or keyword into the link at click time. You write a macro, such as {campaignid} or {{campaign.name}}, and the platform replaces it. The builder adds these macros to the fields you leave empty and never encodes them, so they reach the platform intact. Each platform below links to its own documentation.
| Platform | Source and medium | Macros in the link | Where to paste |
|---|---|---|---|
| Google Ads | utm_source=google&utm_medium=cpc |
utm_id={campaignid}utm_term={keyword}utm_content={creative} |
Final URL suffix |
| Microsoft Ads (Bing) | utm_source=bing&utm_medium=cpc |
utm_id={CampaignID}utm_term={keyword}utm_content={AdID} |
Final URL suffix |
| Yandex Direct | utm_source=yandex&utm_medium=cpc |
utm_campaign={campaign_name_lat}utm_id={campaign_id}utm_term={keyword}utm_content={ad_id} |
Website URL |
| Google Shopping | utm_source=google&utm_medium=cpc |
utm_id={campaignid}utm_content={creative} |
Final URL suffix |
| Meta Ads — Facebook | utm_source=facebook&utm_medium=paid_social |
utm_campaign={{campaign.name}}utm_id={{campaign.id}}utm_term={{adset.name}}utm_content={{ad.name}} |
URL parameters |
| Meta Ads — Instagram | utm_source=instagram&utm_medium=paid_social |
utm_campaign={{campaign.name}}utm_id={{campaign.id}}utm_term={{adset.name}}utm_content={{ad.name}} |
URL parameters |
| TikTok Ads | utm_source=tiktok&utm_medium=paid_social |
utm_campaign=__CAMPAIGN_NAME__utm_id=__CAMPAIGN_ID__utm_term=__AID_NAME__utm_content=__CID_NAME__ |
URL parameters |
| YouTube Ads | utm_source=youtube&utm_medium=cpv |
utm_id={campaignid}utm_content={creative} |
Final URL suffix |
| Google Display | utm_source=google&utm_medium=display |
utm_id={campaignid}utm_content={creative}utm_term={placement} |
Final URL suffix |
UTM naming conventions that keep reports clean
- Lowercase only. GA4 is case-sensitive, so one capital letter splits a source in two.
- One separator. Pick underscores or hyphens and use them everywhere: spring_sale, not “Spring Sale”.
- A fixed list of mediums. cpc, paid_social, social, email, referral, affiliate, display, sms, push. Anything else may end up in Unassigned.
- Readable campaign names. Product, offer, month: crm_trial_2026_03. The same name on every source makes the campaign comparable across channels.
- utm_content for variants. Use it to tell two banners or two links in one email apart.
- Latin letters. Accents and Cyrillic are encoded as %D0%… and are hard to read and filter.
Common UTM mistakes
- UTM tags on internal links. A tagged link from your own menu or blog starts a new session source and wipes the real one. Tag only links that lead to your site from outside.
- Parameters after the #. In https://site.com/#pricing?utm_source=… GA4 ignores the tags. The builder puts them before the #.
- Two question marks. If the page already has ?ref=1, the tags must be joined with &, not a second “?”. The builder merges them.
- Tagging Google Ads twice. With auto-tagging, Google Ads adds gclid by itself; use UTM tags for the campaign name and ID you want to see in other tools.
- Different names in different places. “Newsletter”, “newsletter” and “news-letter” are three sources. Templates and the lowercase rule prevent this.
Example: one campaign, three sources
The page https://salesbond.app/pricing/, campaign spring_sale, three sources:
- Google Ads (paste into Final URL suffix):
utm_source=google&utm_medium=cpc&utm_campaign=spring_sale&utm_id={campaignid}&utm_term={keyword}&utm_content={creative} - Meta Ads (paste into URL parameters):
utm_source=facebook&utm_medium=paid_social&utm_campaign=spring_sale&utm_id={{campaign.id}}&utm_term={{adset.name}}&utm_content={{ad.name}} - Newsletter:
https://salesbond.app/pricing/?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale
In GA4 they arrive as Paid Search, Paid Social and Email, all under the campaign spring_sale.
Frequently asked questions
What is a UTM builder?
A UTM builder is a tool that adds UTM parameters to a link: utm_source, utm_medium, utm_campaign and optional utm_term, utm_content and utm_id. Analytics tools such as Google Analytics 4 read these tags to show which source, channel and campaign brought each visit.
Which UTM parameters are required?
In practice three: utm_source, utm_medium and utm_campaign. Without a source GA4 shows (not set); without a medium the visit gets no channel. utm_id is recommended if you import cost data. utm_term, utm_content and the other parameters are optional.
Are UTM parameters case-sensitive?
Yes. GA4 treats “Facebook”, “facebook” and “FACEBOOK” as three different sources. The channel rules ignore case, but your source, medium and campaign reports do not. Use lowercase everywhere; this builder lowercases by default.
What utm_medium should I use for paid social?
Use a value that matches GA4’s paid rule, such as paid_social or cpc, with a source on Google’s social list, such as facebook, instagram, linkedin or tiktok. Then GA4 files the visit under Paid Social. With medium social it becomes Organic Social.
Why does my campaign show as Unassigned in GA4?
The source and medium matched none of GA4’s channel rules. Usual causes: an unknown medium (for example “qr”, “offline” or “influencer” with an unlisted source), a typo, or a medium in capitals in older data. Pick a standard medium, or create a custom channel group in GA4 for offline traffic.
Can I add UTM parameters to Google Ads?
Yes. Put the parameters into the Final URL suffix at account, campaign or ad group level, and keep auto-tagging on. Google Ads has no macro for the campaign name, so type it in utm_campaign; {campaignid}, {keyword} and {creative} fill in the IDs, keyword and ad.
Is this UTM generator free?
Yes. It is free, needs no sign-up, and builds the links in your browser: the URLs you enter are not sent to our servers. Templates are saved only in your browser.
For more on sales pipeline and team performance, read the SalesBond blog or see what SalesBond does.
Official documentation
- Google Analytics: URL builders and UTM parameters
- Google Analytics: default channel group rules and source list
- Google Ads: ValueTrack parameters
- Microsoft Advertising: URL tracking
- Meta: URL parameters for ads
- TikTok Ads: UTM parameters
- LinkedIn: dynamic UTM tracking
- Yandex Direct: dynamic parameters
Updated 2026-11-05. The channel shown is a forecast by Google’s published default rules and source list as of that date. Your property may use a custom channel group, and ad platforms may change their macros; check the official documentation before a large launch.
