UTM Tags and SubIDs: A Practical Tracking Guide

In Brief

UTM parameters describe where a visit came from and which campaign, placement, or creative produced it. SubIDs serve a similar purpose in affiliate platforms and tracking systems, but their names and behavior are defined by each platform rather than by one universal standard.

A well-tagged link can distinguish an email header button from a footer banner, one creator from another, or a poster QR code from a leaflet. The parameters do not measure a click by themselves: the destination still needs an analytics tag, and CRM attribution requires explicit capture and storage of the values.

The practical rule: use a documented naming convention, keep source and medium consistent, test the complete redirect chain, and never put personal data or secrets in a URL.

What UTM Parameters Are

UTM parameters are query-string parameters added to a destination URL. Analytics systems such as Google Analytics 4 and Yandex Metrica can read them and use their values in acquisition reports.

A complete campaign URL might look like this:

https://example.com/offer?utm_source=customer_newsletter&utm_medium=email&utm_campaign=autumn_sale_2026&utm_content=cta_top

The question mark starts the query string. Each parameter is a key=value pair, and an ampersand separates one pair from the next. If the destination already has a query string, append the first tracking parameter with & instead of adding a second question mark:

https://example.com/offer?plan=pro&utm_source=customer_newsletter&utm_medium=email&utm_campaign=autumn_sale_2026

A fragment belongs at the end of the URL, after the query string:

https://example.com/offer?utm_source=telegram&utm_medium=social&utm_campaign=product_launch#pricing

The parameters usually lead to the same page content, but they still create distinct URL variants. Use the clean canonical URL in canonical tags, internal navigation, and sitemaps; reserve tagged variants for inbound campaign links.

The Five Familiar UTM Parameters

For manually tagged campaigns in GA4, use utm_source, utm_medium, and utm_campaign together. Add utm_content and utm_term only when they describe a real distinction you intend to analyze.

  • utm_source identifies the specific source or publisher: google, instagram, telegram, or customer_newsletter.
  • utm_medium identifies the marketing channel or delivery method: cpc, email, social, referral, or another value from your approved taxonomy.
  • utm_campaign identifies the marketing initiative: autumn_sale_2026 or product_launch.
  • utm_content distinguishes links, placements, ads, or creative variants within the same campaign: cta_top, footer_banner, or video_a.
  • utm_term records a paid-search keyword or another intentionally defined term. Do not populate it merely because the field exists.

Source and medium answer different questions. Source is where the traffic originated; medium is how it arrived. For example, utm_source=customer_newsletter&utm_medium=email is clearer than reversing those values. Analytics products do not always classify custom values into default channels in the same way, so test the vocabulary in the reporting tools your organization actually uses.

Additional Parameters in GA4

  • utm_id is a stable campaign ID. It is useful when names may change or when campaign data and costs are imported from another system.
  • utm_source_platform identifies the platform responsible for directing the traffic, such as an advertising or campaign-management platform.
  • utm_creative_format describes a format such as display, native, video, or search.
  • utm_marketing_tactic describes a tactic such as prospecting or remarketing.

Do not design reports around fields that are not reported

Google documents utm_creative_format and utm_marketing_tactic, but currently states that they are not reported in Google Analytics properties. Confirm current product behavior before making either field essential to your workflow.

Build a Naming Convention Before Building Links

UTM values are case-sensitive and small inconsistencies split one campaign into multiple report rows. A shared dictionary is more valuable than a complicated tagging scheme.

  • use lowercase Latin characters, numbers, and one agreed separator, such as an underscore;
  • define a controlled list of source and medium values instead of inventing them for every campaign;
  • give each campaign a stable name and, where useful, a stable utm_id;
  • document what utm_content describes, such as placement, creative, or both;
  • avoid spaces, inconsistent abbreviations, and values that depend on a person's memory;
  • encode every value with a URL-aware tool rather than concatenating untrusted text by hand.

For example, choose one form such as paid_social and use it consistently. Treat paid-social, Paid_Social, and paidsocial as different values even if a particular report occasionally groups them into the same channel.

What SubIDs Are

SubID is a general name for parameters used by affiliate networks, CPA platforms, and trackers to carry additional identifiers. Common names include sub1, sub2, aff_sub, s2, click_id, and external_id. There is no universal SubID specification: a network may reserve particular names, limit their length, or assign a special meaning to a click ID.

A generic affiliate link might look like this:

https://partner.example/abc123?sub1=cmp_2026_autumn&sub2=email&sub3=cta_top

A project could define the fields this way:

  • sub1 — internal campaign ID;
  • sub2 — placement or channel;
  • sub3 — creative or link position;
  • sub4 — audience segment;
  • sub5 — another non-personal reporting dimension accepted by the network.

That mapping is only an example. Follow the network's documentation before publishing a link. Affiliate conversion matching often depends on a platform-generated click ID, a cookie, or a server-to-server postback. A SubID alone does not guarantee attribution or payment.

UTM parameters and SubIDs can coexist. UTM values support web analytics; SubIDs support the affiliate or tracking platform. Avoid copying a generated click ID into a UTM field because it creates high-cardinality reports and may expose an identifier where it is not needed.

Four Practical Examples

1. An Email Link to a Lead Form

The goal is to identify both the email campaign and the specific link that produced a lead. The real link must be one continuous line; it is wrapped below only for readability.

https://example.com/consultation
    ?utm_source=customer_newsletter
    &utm_medium=email
    &utm_campaign=autumn_consultation_2026
    &utm_content=cta_top
    &utm_id=cmp_2026_10_01

Use the same source, medium, campaign, and campaign ID for other links in that email. Change utm_content to values such as logo, hero_banner, or cta_footer only when those placements need to be compared.

2. A Paid Creator Story

https://example.com/consultation
    ?utm_source=instagram
    &utm_medium=paid_social
    &utm_campaign=autumn_sale_2026
    &utm_content=story_video_a
    &sub1=partner_042

This separates the platform, channel, campaign, creative, and creator. If your primary analytics product does not place paid_social in the desired default channel, adjust the approved taxonomy or create an appropriate custom channel group before launch.

3. Two Calls to Action in One Telegram Post

https://example.com/offer?utm_source=telegram&utm_medium=social&utm_campaign=product_launch&utm_content=cta_top
https://example.com/offer?utm_source=telegram&utm_medium=social&utm_campaign=product_launch&utm_content=cta_bottom

Only utm_content changes, so the report can compare the two placements without fragmenting the rest of the campaign. Yandex Metrica recommends messenger as a medium for messenger traffic; use that value instead if it matches your reporting standard.

4. Poster and Leaflet QR Codes

https://example.com/expo?utm_source=offline&utm_medium=qr&utm_campaign=expo_2026&utm_content=poster
https://example.com/expo?utm_source=offline&utm_medium=qr&utm_campaign=expo_2026&utm_content=leaflet

Generate a different QR code for each URL and scan the printed proofs with more than one device. A custom channel group may be needed if the analytics product does not classify qr as a default channel.

Carry Attribution into a Form and CRM

UTM parameters do not automatically appear on a lead record. The site must deliberately capture them and decide how attribution should work.

  1. Read approved campaign and SubID parameters when the visitor lands on the site.
  2. Store first-touch and latest-touch values separately if the business needs both. Apply consent, retention, and privacy rules to browser storage and cookies.
  3. Populate hidden form fields from the stored values, not only from the current page URL. A visitor may navigate to several pages before submitting.
  4. Validate and limit the values on the server. Hidden fields are user-controlled input and must not be trusted.
  5. Save the fields, landing page, and relevant timestamps in the CRM using dedicated columns rather than one ambiguous note.
  6. For affiliate tracking, return the exact click identifier required by the network in the approved conversion postback or integration.

Define the precedence rules explicitly. For example, first touch can explain how the lead was originally acquired while latest touch can explain which campaign preceded the form submission. GA4, an affiliate network, and a CRM may use different attribution models, so their totals are not expected to match exactly.

Manual Tags and Advertising Auto-Tagging

Advertising platforms may add click identifiers automatically. Linked Google Ads accounts, for example, can use auto-tagging to provide richer platform-specific dimensions than manual UTM parameters alone.

Do not disable or duplicate auto-tagging without a reason. When manual and automatic tags coexist, precedence depends on the platform, integration, consent state, and available click identifier. Test the exact configuration in the acquisition reports and preserve all required parameters through redirects.

Common Mistakes

  • Tagging internal links. Campaign tags on navigation, banners, or buttons within the same site can overwrite or fragment acquisition data. Use analytics events or another internal measurement mechanism instead.
  • Requiring all five familiar fields for every link. Source, medium, and campaign form the practical minimum for a manually tagged GA4 campaign. Content and term are optional and should have a defined purpose.
  • Mixing source and medium. Values such as source=email and medium=newsletter are usually less useful than a specific newsletter source paired with the email medium.
  • Inconsistent spelling and case. instagram, Instagram, and insta can become separate rows.
  • Losing parameters in a redirect or short link. Open the final destination and verify the complete URL after every redirect.
  • Hand-building invalid URLs. A second question mark, a missing ampersand, an unencoded value, or parameters placed after a fragment can prevent correct parsing.
  • Putting personal or confidential data in a URL. URLs can appear in browser history, server logs, analytics, screenshots, support messages, and referrer data. Never use a name, email address, phone number, access token, or other secret as a UTM or SubID value.
  • Assuming tagged-link clicks equal analytics sessions. A visitor may close the page before it loads, refuse consent, block analytics, trigger bot filtering, or click more than once. Different systems count different events.
  • Changing several dimensions during an A/B test. If the goal is to compare creatives, keep the destination, source, medium, and campaign constant and vary only the field that identifies the creative.

Custom Query Parameters

When the built-in UTM fields are insufficient, add clearly named project parameters without pretending that they are standard UTM fields:

audience=vip
geo=vn
funnel_stage=consideration
placement=sidebar

Avoid inventing names with the reserved-looking utm_ prefix, such as utm_group_campaign. Analytics tools will not automatically treat them as campaign dimensions. A tag manager or application must read a custom parameter and send it as an approved event parameter, or the site must store it directly in the CRM or tracker. Register a custom dimension when the analytics product requires one.

Keep every value low-cardinality and useful. Do not send one-off user identifiers, timestamps, email addresses, or unrestricted form input as dimensions.

Prelaunch Checklist

The destination uses HTTPS, loads successfully, and contains the required analytics tag.
Source, medium, campaign, and optional fields follow the shared naming dictionary.
The URL contains one ?, uses & between parameters, and places any #fragment last.
Parameter values contain no personal data, credentials, secrets, or unrestricted user input.
The final URL preserves every required parameter after shorteners, redirects, consent flows, locale redirects, and mobile deep-link handling.
A test visit appears under the expected session source, medium, campaign, and content in the analytics product.
Form submissions carry the intended first-touch or latest-touch values into dedicated CRM fields.
Affiliate tests preserve the network click ID and produce a test conversion or postback where the platform supports one.
Tagged URLs are not used as canonical URLs, sitemap entries, or ordinary internal links.
The campaign sheet records the final URL, owner, launch date, and meaning of every custom value.

Frequently Asked Questions

Should every link in an email have UTM parameters?

Tag the links to pages you own when their performance matters. Keep the campaign-level fields identical and use distinct utm_content values for placements you want to compare. Do not add campaign tags blindly to mailto:, tel:, unsubscribe, authentication, or unrelated third-party links.

Can UTM values contain non-Latin characters?

Yes, when they are correctly URL-encoded, but lowercase Latin slugs are usually easier to type, copy, compare, and exchange between systems. Consistency matters more than the alphabet itself.

What if the destination URL already contains a question mark?

Append the first tracking parameter with an ampersand:

https://example.com/page?
    id=5
    &utm_source=telegram
    &utm_medium=social
    &utm_campaign=product_launch

Will the campaign remain attributed if the visitor returns directly?

It depends on the system, report scope, attribution model, consent state, and retention settings. GA4 can report first-user, session, and event-scoped acquisition differently. A CRM remembers campaign data only if the site explicitly stored it and later attached it to the lead. Do not promise persistent attribution merely because cookies are enabled.

Why does a report show (direct) / (none)?

Direct traffic can be legitimate, such as a typed URL or bookmark. It can also appear when referral or campaign information is unavailable because a link was untagged, a redirect removed parameters, a shortener or offline document hid the referrer, consent was denied, or a blocker interfered with measurement. Test the landing URL before concluding that the report is wrong.

What happens when someone shares a tagged link?

Later visits through the shared URL are normally credited to the values embedded in it, even though the audience has changed. That can distort campaign analysis. Be especially careful with affiliate URLs containing click-specific identifiers: follow the network's rules and never embed personal data.

Can a URL shortener be used?

Yes, if it preserves the complete query string and fragment through every redirect. Test the shortened link on desktop and mobile, and inspect the final address rather than assuming the parameters survived.

Official Documentation


A useful tracking system is not the one with the most parameters. It is the one whose names remain consistent from the published link through analytics, the CRM, and any affiliate postback. Start with source, medium, and campaign; add content, term, IDs, or SubIDs only when they answer a real reporting question; and test the complete journey before launch.