UTM Builder &
Taxonomy Generator
Build, validate, and bulk-generate UTM links with naming convention enforcement and GA4 channel grouping preview. Runs entirely in your browser.
Define which values your team is allowed to use. These populate the dropdowns in Tabs 1 & 2.
Click tokens to add them to your naming pattern, then drag to reorder.
No links generated yet
Start building in the Single Builder tab — your links will appear here.Features in this tool
Every feature is built around GA4’s attribution logic and the real naming problems that break campaign reporting — case inconsistency, channel misclassification, and convention drift across teams.
Single Link Builder
Build one tagged URL at a time with dropdowns for source and medium, a live GA4 channel preview, automatic case enforcement, and detection of existing UTM params that would conflict with your new tags.
Bulk URL Generator
Apply the same UTM parameters to up to 200 destination URLs in one pass. Every row gets a GA4 channel prediction and a case-consistency check. Export as CSV for direct upload into your reporting stack.
CSV Import & Enrichment
Upload an existing URL list — with or without UTM params — and the tool will normalise case, build the tagged URLs, add a ga4_channel column, and flag rows that will cause attribution errors in GA4.
Campaign Taxonomy Builder
Define your organisation’s allowed values for source, medium, and campaign prefix. Build a naming convention from drag-and-drop tokens. Save to browser, export as JSON, or export a Google Sheet validation template for your team.
GA4 Channel Grouping Preview
Every generated URL shows which GA4 Default Channel Group it will land in — Paid Search, Email, Paid Social, Display, and so on. Unrecognised medium values flag immediately as Unassigned before they reach your reports.
Link History & Export
Every URL you build is saved to in-browser history with date, source, medium, and campaign. Search, sort, copy individual links, or export the full history to CSV for campaign documentation or handover.
QR Code Generator New
Generate a downloadable QR code for any tagged URL — useful for offline campaigns, print collateral, and events where you need trackable links without visible URLs. Download as PNG in one click.
Preset Campaign Templates New
Six pre-built templates cover the most common campaign types: Google Ads Search, Meta Paid Social, Email Newsletter, LinkedIn B2B, Google Shopping, and Agency Client. Each pre-fills all fields to GA4-correct defaults.
UTM Builder & Taxonomy Generator: The Complete Guide to GA4 Campaign Tracking
A UTM builder creates tagged URLs that tell GA4 exactly where each session comes from. But the tool is only as good as the naming discipline behind it — and most teams break their own attribution data within weeks of launching a new campaign. This guide covers what UTM parameters actually do in GA4, why naming consistency is the single most important variable in campaign reporting, and how to use the Taxonomy Builder to eliminate attribution errors across your entire team.
What UTM Parameters Do in GA4 (and What They Don’t)
UTM parameters are query string values appended to a destination URL. When GA4 receives a session with UTM parameters, it uses those values to populate three key dimensions: Session source, Session medium, and Session campaign. These dimensions feed directly into the Default Channel Grouping report — the top-level attribution view most marketing teams look at first.
What UTM parameters do not do: they do not override GA4’s built-in channel rules. GA4 reads your utm_medium value and maps it against a fixed set of recognized mediums to assign a Default Channel Group. If your medium value isn’t on that list — or is the right value but in the wrong case — the session goes to Unassigned. Your attribution data is silently broken, and there is no retroactive fix.
GA4’s Default Channel Grouping uses medium values to classify traffic. Any utm_medium that doesn’t exactly match a recognized value — including capitalised versions like CPC or Email — routes to Unassigned. The GA4 Channel Preview in this tool shows which channel every URL will land in before you publish it.
The Five UTM Parameters: When to Use Each One
Each UTM parameter serves a distinct attribution purpose. Using them interchangeably — or skipping the ones that feel optional — degrades the granularity of your reporting in ways that compound over time.
| Parameter | Required? | What to put here | GA4 impact |
|---|---|---|---|
utm_source | Yes | The platform or origin: google, facebook, newsletter | Populates Session source dimension |
utm_medium | Yes | The channel type: cpc, email, paid_social, display | Determines Default Channel Grouping |
utm_campaign | Yes | Your campaign name following your naming convention | Populates Session campaign; enables campaign-level reporting |
utm_term | Paid search only | The keyword that triggered the ad — use {keyword} dynamic insertion in Google Ads | Populates Session keyword; enables keyword-level reporting |
utm_content | Optional | Creative variant, CTA placement, or ad format: carousel_v1, cta_header | Enables ad content testing and creative-level attribution |
utm_id | Cost data import only | Your campaign ID — must match the ID in your GA4 cost data upload CSV | Links session data to cost data for ROAS reporting |
GA4 Channel Grouping: The Medium Values That Work
GA4’s Default Channel Grouping is defined by rules that evaluate source, medium, and campaign name in combination. Medium is the primary signal in almost every rule. These are the values that map cleanly to GA4 channels in 2026:
cpc— maps to Paid Search (when source is a recognised search engine) or Paid Other (other sources)organic— maps to Organic Searchemail— maps to Emailpaid_social— maps to Paid Socialorganic_socialorsocial— maps to Organic Socialdisplayorbanner— maps to Displayaffiliate— maps to Affiliatesreferral— maps to Referralvideo— maps to Paid Video (when source is a recognised video platform)
Anything else — including correct values in the wrong case, creative shorthand like ppc, or channel names like social_media — routes to Unassigned. The GA4 Channel Preview badge in this tool fires on every keystroke so you never publish a URL with a broken medium value.
How to Build a Campaign Naming Convention Your Team Will Actually Follow
The most common failure mode in UTM governance isn’t bad intent — it’s the absence of a shared reference. When campaign names aren’t defined and documented, every team member invents their own convention. You end up with brand_search_q2, Brand-Search-Q2-2026, and brandSearch_Google_2026 all referring to the same campaign in GA4, making time-based and cross-channel comparisons impossible.
A working naming convention needs three things: a documented token structure, a separator rule, and a shared place where every team member looks it up before they build a link. The Taxonomy Builder in this tool handles all three.
- Define your tokens in order. Open the Taxonomy tab and build your naming pattern using the available tokens:
brand,channel,objective,audience,date_YYYYMM, andcreative_type. A common agency pattern isbrand_channel_objective_YYYYMM. A common ecommerce pattern isbrand_channel_product_audience_YYYYMM. - Set your separator. Choose underscore (
_) for most cases — it’s URL-safe, readable, and compatible with GA4 filtering. Avoid spaces entirely; they encode as%20in URLs and break regex-based reporting filters. - Define your allowed values. Use the Allowed Values panel to document which source and medium values your team is permitted to use. This prevents the “fb vs facebook vs Facebook” problem by limiting what can be entered at all. Export the taxonomy as JSON and share it with every team member and agency partner.
- Export the Google Sheet template. The Google Sheet Template export creates a CSV with all your allowed values formatted as a validation table. Import it into Google Sheets and apply data validation dropdowns to your campaign planning spreadsheet — your team selects values from a list instead of typing freehand, eliminating errors at the source.
- Save to browser. Use the Save to Browser button on the Taxonomy tab to persist your configuration. It survives browser restarts and loads automatically every time you open the tool, so the dropdowns in Tabs 1 and 2 always reflect your team’s approved values.
Bulk Building and CSV Enrichment for Agencies
For agencies managing multiple clients or running multi-channel campaigns with dozens of landing pages, the Single Builder is too slow. The Bulk Builder solves two distinct workflow problems. Mode A — Same UTM, Multiple URLs — applies a single set of UTM parameters to a list of destination URLs in one pass. This is the right workflow for campaign launches where every ad in a set points to a different landing page but shares the same source, medium, and campaign values.
Mode B — CSV Import and Enrich — handles the messier real-world scenario: you have an existing URL list, possibly from a client or a platform export, with some UTM values already filled in and others missing or inconsistent. The tool normalises case on all existing values, builds the tagged URLs, adds a GA4 channel prediction column, and flags every row that will cause attribution errors. The enriched CSV is ready for QA review without opening a spreadsheet formula.
Every URL you build in this tool is automatically logged to the History tab with date, source, medium, and campaign. For agencies, exporting History to CSV at the end of a campaign build is a fast way to produce a UTM inventory — a record of every tagged URL in the campaign, useful for QA, handover documentation, and retroactive attribution debugging when GA4 data doesn’t match expectations.
Common UTM Mistakes That Break GA4 Attribution
- Uppercase medium values.
Email,CPC, andPaid_Socialall route to Unassigned. GA4’s channel grouping rules are case-sensitive. Force lowercase on every field — this tool does it automatically when the Force Lowercase toggle is on in the Taxonomy tab. - Reusing campaign names across channels. If
summer_sale_2026-06appears in both your Google Ads and Meta campaigns, GA4 will aggregate those sessions under one campaign name. You lose the ability to compare channel performance within the campaign. Include source or channel in your campaign name —summer_sale_google_2026-06versussummer_sale_meta_2026-06. - Putting channel information in the wrong parameter. Using
utm_source=paid_socialinstead ofutm_medium=paid_socialbreaks channel grouping. Source should identify the platform; medium should identify the channel type. They are not interchangeable. - Appending UTM parameters to URLs that already have them. If a destination URL already contains UTM params and you add new ones, the page receives duplicate parameters. Some analytics implementations take the first value, some take the last, and some break. The URL field in this tool automatically detects and strips existing UTM parameters before appending the new ones.
- Using spaces in campaign names. Spaces encode as
+or%20depending on the encoding method. Either can break regex-based filters in GA4 reports. Use underscores or hyphens exclusively. - Building UTM links without a documentation system. UTM links generated and used without a central record make attribution debugging impossible six months later. Use the History tab and export regularly — or connect the exported CSV to your campaign planning spreadsheet to maintain a single source of truth.
utm_medium value — either a custom medium name, an unusual abbreviation, or a correctly-named medium with incorrect capitalisation. GA4’s channel rules are case-sensitive: cpc maps to Paid Search; CPC goes to Unassigned. Use the GA4 Channel Preview in this tool to check every URL before publishing.utm_source identifies where the traffic came from — the specific platform or origin, such as google, facebook, or newsletter. utm_medium identifies the channel type — the category of marketing activity, such as cpc, email, or paid_social. GA4 uses utm_medium as the primary signal for Default Channel Grouping. A common error is putting channel information in the source field: utm_source=paid_social will not trigger GA4’s Paid Social channel rule. Medium must be paid_social.brand_channel_objective_YYYYMM — for example, acme_google_awareness_2026-06. The key rules: always lowercase, use underscores not spaces, include a date token for time-based filtering, and include the channel or source in the name to avoid cross-channel campaign name collisions. Use the Taxonomy Builder in this tool to document and share your convention.- Google Analytics Help — Collect campaign data with custom URLs. Official documentation on UTM parameters, their purpose, and implementation guidance for GA4.
- Google Analytics Help — Default channel groups in GA4. Official documentation on how GA4 assigns Default Channel Groups, including the medium and source rules that determine Paid Search, Email, Paid Social, and Unassigned.
- Google Analytics Developers — GA4 event reference. Technical reference for how GA4 processes session source, medium, and campaign parameters in the data model.
Need Your Campaign Tracking Audited?
AEO Insider audits your GA4 setup, UTM taxonomy, and attribution model — and fixes the Unassigned traffic problem permanently across your whole team.
- Full GA4 UTM audit and Unassigned traffic fix
- Custom taxonomy documentation and team training
- Campaign naming convention implementation
