Skip to content
Innovialabs

How to Create UTM Tags: Naming Rules and a Ready Template

Practice3 min

In short

Write UTM tags in lowercase Latin letters only, with no spaces, using one approved list of values for source and medium, and rely on dynamic parameters inside ad platforms. Then every channel shows up as one row in reports instead of ten variations.

The short answer

UTM tags are link parameters that tell analytics where a visitor came from. There are five:

ParameterMeaningExample
utm_sourceThe platformgoogle, facebook, yandex, telegram
utm_mediumThe traffic typecpc, paid_social, email, referral
utm_campaignThe campaignbrand_search_2026_10
utm_contentThe ad or creativevideo_15s_a
utm_termKeyword or audiencecrm_for_business

The first three are required. What matters most is not the tags themselves but a shared dictionary: the same channel is always named the same way.

Naming rules

  1. Lowercase only. Analytics is case-sensitive: Facebook and facebook become two sources.
  2. Latin letters, digits, _ or -. No spaces, non-Latin characters or symbols — they get encoded as %D0%... and become unreadable.
  3. One separator company-wide. Pick _ or - and never mix them.
  4. A fixed list for source and medium. Only the person responsible for analytics adds new values.
  5. Build campaign names from blocks: product_goal_geo_date, for example crm_leads_tashkent_2026_10.
  6. Don't repeat information. If the source is google, the campaign name doesn't need "google".
  7. Use standard medium values that GA4 recognizes: cpc for paid search, email, referral, social, or values containing paid for paid social. That way traffic lands in the right channel group. Check the exact grouping rules in the Google Analytics documentation.

A ready template

Keep one shared spreadsheet (Google Sheets is enough) with these columns:

DateChannelsourcemediumcampaigncontenttermBase URLFinal linkOwner

Build the final link (column I) with a formula instead of by hand:

=H2&"?utm_source="&C2&"&utm_medium="&D2&"&utm_campaign="&E2&"&utm_content="&F2&"&utm_term="&G2

If the base URL already contains ?, replace the first ? in the formula with &.

Keep a dictionary of allowed values on a separate sheet and attach dropdown data validation to the source and medium columns, so typos become impossible.

URL builders work too: Google's Campaign URL Builder and Yandex's equivalent. Even then, values come from your dictionary.

Dynamic parameters in ad platforms

Instead of tagging each ad by hand, ad platforms can fill in values themselves.

Google Ads. Turn on auto-tagging (gclid) — it connects Google Ads with GA4. You can add ValueTrack parameters in the tracking template:

{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={creative}&utm_term={keyword}

Meta Ads. In the ad's URL parameters field:

utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{ad.name}}&utm_term={{adset.name}}

If you insert names dynamically, name campaigns in the ad account by the same rules: Latin, lowercase, no spaces.

Yandex Direct. The yclid parameter is added automatically when Metrica is linked. For UTM, use Direct's parameters:

utm_source=yandex&utm_medium=cpc&utm_campaign={campaign_id}&utm_content={ad_id}&utm_term={keyword}

Check each platform's help center for the current list of parameters — it expands over time.

Mistakes that split your data

  • Inconsistent case and spelling: fb, facebook, Facebook.com — three sources instead of one.
  • UTM tags on internal links: a click on an on-site banner overwrites the original source, and a paid visit turns into an "internal" one.
  • Redirects that strip parameters: confirm that the tags are still in the address bar after the redirect.
  • Spaces and non-Latin characters in dynamically inserted campaign names.
  • Organic posts tagged without a system: one team writes instagram, another ig.
  • No record in the spreadsheet: three months later nobody remembers what test2_new meant.

FAQ

For Google Ads and GA4, auto-tagging is usually enough. UTM tags still help when you analyze traffic in other systems — Yandex Metrica, your CRM, end-to-end analytics — that cannot decode gclid.

We can help with this

If you'd rather get the result than figure it all out yourself — this is what we do every day.

Discuss a project

Read next

Have an idea or a task? Tell us about it

We'll reply within one business day and propose a solution. The consultation is free.