The journal
UTM naming conventions that keep your analytics clean
A clear, practical guide to setting UTM naming conventions for utm_source, utm_medium, utm_campaign, and more. Includes examples, pitfalls to avoid, and a rollout checklist.

UTM naming conventions are the team-wide rules for how you fill the UTM parameters on your URLs (like utm_source, utm_medium, utm_campaign). Good conventions ensure Google Analytics attributes traffic consistently, channel groups work as expected, and any imported campaign data matches exactly. At a minimum, always set utm_source, utm_medium, and utm_campaign, keep values consistent and case-aware, and consider utm_id if you plan to import cost/clicks from non-Google platforms (Google Analytics Help: URL builders; Google Analytics Help: Import campaign data).
Why naming conventions matter
Analytics treats UTM values as case-sensitive, so facebook and Facebook are different. Inconsistent naming fragments reports and can also misclassify traffic in Default Channel Groups. Google recommends a standardized UTM strategy across all campaigns and emphasizes using consistent values for each field to avoid fragmented reporting (Google Analytics Help: URL builders).
If you import campaign cost/clicks from non-Google ad platforms, Analytics joins those rows to sessions using exact matches on utm_source, utm_medium, and date (and, if supplied, utm_id and utm_campaign). Any mismatch (e.g., Facebook vs facebook) lowers your match rate (Google Analytics Help: Import campaign data).

The core fields and simple rules
Required in practice
- utm_source: The referrer or platform (e.g., facebook, newsletter). Use one unique source per distinct platform for granular reporting; unifying sources (e.g., meta) is acceptable if you want aggregation (GA campaign import UTM configuration guide).
- utm_medium: The marketing channel (e.g., email, cpc, paid_social). Use one unique medium per channel so channel grouping remains accurate (GA UTM best practices).
- utm_campaign: The initiative name. Keep it consistent and use a single unique name that matches your ad platform’s campaign name when possible (dynamic insertion helps) (GA UTM best practices).
Highly recommended
- utm_id: A stable campaign ID that you also use in any import files. This makes cost/click joins more reliable (GA campaign data import).
Optional, when useful
- utm_content: Differentiate creatives or link placements within the same campaign (e.g., hero_button, footer_link) (GA URL builders).
- utm_term: Paid keyword for search campaigns (GA URL builders).
A workable naming pattern you can adopt
Pick a single, readable style and document it. One effective approach is all lowercase with underscores, plus a structured campaign name. For example, the University of Illinois recommends lowercase terms, underscores as separators, and a consistent campaign pattern; their guide also shows parameter order and URL construction (University of Illinois UTM Guide).
Example URL (email newsletter link):
https://www.example.com/?utm_source=newsletter&utm_medium=email&utm_campaign=product_launch_fy26_prospects_may
Dynamic UTMs can keep your naming exact across platforms (e.g., utm_campaign=your_campaign_name), but resolve placeholders at the ad platform. GA’s import interface does not accept unresolved dynamic tokens (GA campaign data import).

Conventions to decide and document
- Case policy: Use all lowercase to avoid case-sensitivity splits (GA UTM best practices).
- Separator: Choose underscores or hyphens. If you want readability and avoid spaces, many teams standardize on underscores (Illinois UTM Guide).
- Source dictionary: One value per platform (e.g., fb, insta, tiktok). Decide whether to aggregate sub-platforms under one source (e.g., meta) (GA UTM configuration guide).
- Medium dictionary: Map mediums to your channel strategy (e.g., cpc, paid_social, email) so channel grouping aligns (GA UTM best practices).
- Campaign pattern: Define fields and order (e.g., activity_audience_fy26_offer_date) and keep them consistent (Illinois UTM Guide).
- Dynamic parameters: Where supported, use platform macros to auto-populate names and IDs; ensure values match exactly in any import files (GA campaign data import).
Common pitfalls to avoid
- Mixed case or synonyms: Meta vs meta; SpringSale vs spring_sale. Treat as distinct values in reports (GA UTM best practices).
- Multiple values for a single platform: e.g., fb/cpc and facebook/paid for the same ads. Automated imports don’t support reconciling these; standardize first (GA UTM configuration guide).
- Leaving out source or medium: This leads to (not set) in GA reports. Always include the trio: source, medium, campaign (GA URL builders).
- Unresolved dynamic tokens in imports: Replace macros in the ad platform before importing to GA (GA campaign data import).
Simple examples you can copy
- Email newsletter: utm_source=newsletter, utm_medium=email, utm_campaign=feature_release_june
- Facebook paid: utm_source=fb, utm_medium=paid_social, utm_campaign=summer_sale_wave1
- LinkedIn organic: utm_source=linkedin, utm_medium=social, utm_campaign=thought_leadership_q3
- Search ads: utm_source=bing, utm_medium=cpc, utm_campaign=brand_terms_q2, utm_term=orvus_brand
How to roll this out and keep it clean
- Create a one-page standard defining allowed values for source and medium, your campaign pattern, case, and separator.
- Use a lightweight URL builder (spreadsheet or your ad platform’s dynamic fields) so tags are generated consistently (GA URL builders).
- Validate in GA4 after launch: check Acquisition > Traffic acquisition to confirm values appear as expected. For help, see our guide Which GA4 report shows traffic sources?
- Exclude employee clicks so they don’t skew campaign data. If you haven’t done this yet, start here: Exclude internal traffic in GA4: test before you activate.
- If you import costs from non-Google channels, ensure the import file’s source, medium, date (and optional id/campaign) exactly match your UTMs (GA campaign data import).
Put this into practice
Write a small naming dictionary and validate a sample of real campaign URLs against it. Check capitalisation, spacing and ownership before launch instead of correcting inconsistent labels only after reports have split the same campaign.
Quick checklist: finalizing your UTM naming conventions
Optional FAQs
Do I need utm_id?
Not to attribute sessions, but it is highly recommended if you plan to import cost/click/impressions from non-Google platforms, because GA can join on that stable ID (GA campaign data import).
Hyphens or underscores?
Either can work; pick one and stick to it. A common practice is lowercase with underscores for readability and to avoid broken links from spaces (Illinois UTM Guide).
