Setting up UTM Conventions for Channel Tracking in 6 Easy Steps
UTM conventions sound boring—until you’re staring at a GA4 report full of “(other)” sources and duplicate campaign names. I’ve been there. In one setup I inherited, we had 3 different naming rules across 5 channels (email, paid social, search, affiliates, and webinars). The result? We couldn’t tell whether “Spring Promo” was the same campaign across teams—or three different ones with the same name. Fixing it wasn’t about adding more tracking. It was about agreeing on a simple system and enforcing it.
That’s what this guide is for: if you’re managing multiple campaigns (or you’re the person everyone asks, “Which UTM should we use for this?”), you’ll get a practical convention you can actually maintain. I’ll show you how I set mine up—plus the rules I use to keep data clean when people inevitably paste URLs the “wrong” way.
By the end, you’ll have six concrete steps to standardize UTM creation, documentation, QA, and reporting—so your channel tracking stops being a guessing game.
Key Takeaways (With Real Rules)
- Pick a naming framework first (source/medium/campaign) and document it in one place your team can access. I like a single sheet with “Allowed Values” lists so nobody invents new terms.
- Use only the UTM parameters you’ll report on. Start with utm_source, utm_medium, and utm_campaign. Add utm_content only for creative/link differentiation and utm_term only when you truly need keyword/targeting-level detail.
- Standardize formatting: lowercase only, spaces replaced with underscores, no extra punctuation. Example: paid_social not “Paid Social” and spring_sale_2026 not “Spring Sale 2026!”
- Build with a URL builder and test before launch. Every time I’ve skipped this, it’s been because someone typed a parameter name wrong (like utm_campain) or forgot encoding.
- Run a quick audit after publishing. I check: (1) are the UTMs showing in GA4, (2) are they being grouped under the right source/medium, and (3) do I see duplicates caused by inconsistent naming.
- Keep a “UTM QA checklist” and reuse it. Consistency isn’t a one-time task—it’s a process.
![]()
1. Build a UTM Framework Your Team Can Actually Follow
Before you touch utm_source or utm_medium, decide what you’re tracking and why. In my experience, that’s where most teams lose time—because they start writing UTMs before they know what decisions they want to make from the data.
Here’s what I recommend you lock in first:
- Channels you’ll tag: Google Ads, Meta/Facebook, LinkedIn, email, affiliates, webinars, etc.
- Campaign naming rule: what makes something “the same campaign” versus a new one.
- Formatting rule: lowercase only, underscores for spaces, no special characters.
- Ownership: who creates UTMs, who approves them, and who maintains the “allowed values” list.
Then document it. Not in a vague doc nobody opens—use a spreadsheet or a simple internal page. I use a sheet with columns like:
- channel (e.g., email, paid_social)
- utm_source (e.g., mailchimp, newsletter, facebook, linkedin)
- utm_medium (e.g., email, paid_social, cpc, affiliate)
- utm_campaign (e.g., spring_sale_2026)
- utm_content (e.g., ad_variant_a, button_cta)
- landing_page (full URL)
- utm_link (full tracked URL)
- notes (where it’s used + who requested it)
Example row (what I’d actually put in the sheet):
- channel: paid_social
- utm_source: facebook
- utm_medium: paid_social
- utm_campaign: spring_sale_2026
- utm_content: creative_a_discount_20
- landing_page: https://example.com/sale
One more thing: configure GA4 so it doesn’t treat your UTM values like random text you can’t use. Make sure your URL parameters are being captured and that your reports are actually showing them in the right dimensions (source/medium/campaign). If you’re using redirects, test that UTMs survive the redirect.
2. Choose the Right UTM Parameters (and Don’t Overstuff Them)
Yes, you can add more UTM parameters. No, you shouldn’t just because you can.
I treat UTM parameters like a data contract. If you add fields you never report on, you’ll create noise and future confusion. Here’s the “default” I use:
- utm_source (who sends traffic): facebook, linkedin, mailchimp, newsletter
- utm_medium (how it arrives): email, paid_social, cpc, affiliate
- utm_campaign (the campaign name): spring_sale_2026, webinar_march_2026
Then only add optional ones when you have a real use case:
- utm_term: keyword/targeting detail for paid search (when you actually need it). If you don’t plan to analyze terms, skip it.
- utm_content: creative or link differentiation. This is the one I use most often for A/B tests and “which button worked” questions.
Also, don’t ignore privacy constraints. UTMs are still useful for first-party measurement, but you should avoid putting personal data in UTMs (names, emails, anything that could identify a person). Keep values descriptive and campaign-level.
My rule: If you can’t explain how you’ll use a parameter in a report, don’t include it in the URL.
3. Create UTM Links the Same Way Every Time (Plus QA)
Here’s the workflow I actually follow. It’s fast, but it prevents the most common mistakes.
Step A: Start with the landing page
Pick the exact destination URL you want to attribute. If you’re using a tracking redirect, make sure you know which URL gets UTMs attached (the final destination or the redirect URL).
Step B: Fill in utm_source, utm_medium, utm_campaign
Use your allowed-value lists from Step 1. Example:
- utm_source = facebook
- utm_medium = paid_social
- utm_campaign = spring_sale_2026
Step C: Add utm_content only if you need it
For A/B tests, I use utm_content like creative_a_discount_20 and creative_b_free_shipping. It’s specific enough to compare performance, but not so long that nobody can read it.
Step D: Use a URL builder (and verify the output)
Use Google’s Campaign URL Builder to generate the final link. In my opinion, this is the easiest way to avoid silly parameter formatting issues.
You can use this tool: Google Campaign URL Builder.
Example tracked URL:
Step E: QA before you publish
This is where I’ve saved teams from losing attribution.
- Check spelling: utm_source/utm_medium/utm_campaign (exact names).
- Check formatting: lowercase + underscores.
- Click-test the link and confirm UTMs show up in GA4 (don’t just trust the builder).
- Watch for redirects: some platforms strip query strings unless configured properly.
Step F: Record the link in your master sheet
Every time. That way, if someone asks “Which URL did we use for campaign spring_sale_2026 on LinkedIn?”, you can answer immediately.
![]()
4. Document the Rules (and Enforce Them with “Allowed Values”)
Documentation is only useful if it reduces decisions. So I don’t write “use consistent naming.” I write what “consistent” means.
Here are the enforcement rules I recommend:
- Lowercase only for utm_source/medium/campaign/content.
- Spaces → underscores (spring sale → spring_sale).
- No punctuation (no commas, no exclamation points).
- One medium per channel type (email stays email, paid social stays paid_social).
- Campaign naming format: campaign_theme_year (e.g., summer_launch_2026, webinar_march_2026).
To enforce this, create an “Allowed Values” tab (or section) and link it from your team doc. When someone requests a new campaign, they shouldn’t invent a new medium like “Paid Social - Meta” on the fly.
Quick example of what causes trouble: “paid_social”, “Paid Social”, and “paid social” all look similar to humans—but they’re completely different values in GA4. That’s how you end up with fragmented reporting.
5. Make UTM Creation Hard to Mess Up (Process, Not Heroics)
Let’s be honest: people will paste URLs. Sometimes they’ll paste the wrong one. Sometimes they’ll edit it manually. Your process should assume that.
What I do:
- Create UTMs from a template (either in a sheet or a form) instead of “free typing.”
- Require a note in your sheet: where the link will be used (ad name, email name, landing page, etc.).
- Do a pre-launch check for every new campaign: verify UTMs, test click, confirm GA4 dimensions update.
- Assign a single “UTM owner” for approvals if you have multiple teams.
Edge cases I’ve had to handle:
- Spaces and capitalization in manual edits—solved by lowercase + underscores rules.
- UTM overwrite when a link already has query parameters—solved by building from the final URL and not double-attaching UTMs.
- Redirect stripping query strings—solved by testing each redirect path and confirming the query survives.
6. Review UTMs Regularly (and Fix Problems Before They Spread)
Once your UTMs are live, don’t “set and forget.” I run a lightweight audit on a schedule—usually after major launches and then weekly for active campaigns.
My audit checklist:
- Are the top sources/mediums stable? If you see new unexpected values, something changed.
- Do campaigns group correctly? Example: “spring_sale_2026” should roll up together, not split into “spring_sale-2026”.
- Are you using utm_content consistently? If creatives don’t map cleanly, you won’t trust the A/B results.
- Are there broken or missing UTMs? Check for typos like utm_campaing (yes, people do this).
Then optimize based on what you actually track. If medium-level performance tells you paid_social is outperforming cpc, you can shift budget. If utm_content shows creative_a beats creative_b, you can scale the winner.
7. Common UTM Problems (and How to Fix Them Fast)
Inconsistent naming is the #1 issue. It’s also the one that’s hardest to clean up later—because you can’t merge values that were created differently.
Fix: enforce allowed values and run quick audits after every campaign publish.
Another common problem is broken links or typos. If the URL builder created a link but the campaign team changed it in the ad platform, you might end up with missing parameters.
Fix: test each link by clicking through, then confirm the UTMs show up in GA4. Don’t guess.
Some teams also run into privacy and compliance concerns (GDPR, CCPA). The simplest approach is to avoid personal data in UTMs and only capture campaign-level context.
Fix: keep UTMs descriptive, not identifying.
Finally, if your UTM data isn’t giving you insights, it usually means you didn’t track the right dimension. Maybe you overused utm_content when you needed utm_campaign, or you didn’t differentiate enough at the creative level.
Fix: revisit your reporting questions and adjust the convention—then document the change.
Regular audits help you catch these issues early—before you build dashboards on messy data.
8. Examples of UTM Tracking Success in 2025 (Concrete Setups)
I’ve seen UTM conventions improve decision-making in very practical ways—usually because teams stop arguing about which campaign “counts.” Here are a few examples with the kind of UTMs I’d expect to see.
E-commerce example (creative-level optimization): We set up:
- utm_source: facebook
- utm_medium: paid_social
- utm_campaign: spring_sale_2025
- utm_content: creative_a, creative_b, creative_c
Before the change, creative performance was mixed together under one campaign name. After the change, we could tell that creative_b generated 1.8x more add-to-carts than creative_a in the first 10 days. We shifted budget accordingly and reduced spend waste in the next flight.
SaaS example (channel clarity): We used:
- utm_source: linkedin
- utm_medium: paid_social
- utm_campaign: q2_webinar_series_2025
- utm_content: ad_variant_1, ad_variant_2
That let the team see exactly which platform drove conversions without guessing. The biggest win wasn’t “more data”—it was fewer conflicting interpretations of what was working.
Follow-up personalization example: If a visitor came from:
- utm_source: email
- utm_medium: email
- utm_campaign: product_update_may_2025
- utm_content: segment_enterprise
…you can tailor the next message based on the segment implied by utm_content. It’s not magic, but it makes your retargeting and nurture sequences more consistent.
If you want more marketing process ideas, you can also check: effective marketing strategies.
9. Final Tips for Mastering UTM Tracking in 2025
Here’s what I’d do if I were starting fresh again:
- Use a consistent naming format across channels and teams. If you can’t summarize it in one sentence, it’s too complicated.
- Rely on a URL builder for accuracy. Manual edits are where typos creep in. (Tool: Google Campaign URL Builder)
- Test every new URL and confirm UTMs appear in GA4. A quick click-through beats a week of debugging later.
- Audit after launches. I usually look for new unexpected values in source/medium first—those are the early warning signs.
- Document changes. If you change allowed values or campaign naming rules, note the date and what changed so reporting comparisons make sense.
If you’re building a broader tracking or campaign process (or you’re trying to organize work for a marketing team), you might also like: how to create a course outline.
FAQs
Define your tracking goals and choose a framework (what you’ll tag and how you’ll name it). Then decide the exact parameters you’ll use—usually utm_source, utm_medium, and utm_campaign.
Use the same values every time: utm_source for the platform, utm_medium for the channel type, and utm_campaign for the campaign name. If you need creative-level comparisons, add utm_content. I recommend using Google’s Campaign URL Builder and then clicking the link to confirm it shows up in GA4.
Lock down naming rules (lowercase, underscores, allowed values) and document them in one place. Then audit after launches to catch typos or new unexpected values before they multiply.
Because campaigns change, teams change, and reporting needs evolve. Monitoring helps you spot when UTMs stop matching your conventions, so you can correct the system and keep attribution trustworthy.