Our Blog

UTM Naming Conventions for GA4: A Template, Examples and Mistakes to Avoid

Consistent UTM names are what make GA4 campaign reports usable. Use lowercase, one separator, a fixed list of sources, and only the mediums GA4's default channel group recognises. Here is a copy-ready template with examples for Google Ads, Meta, email, WhatsApp, influencers and QR print.

Quick takeaways

  • Always set utm_source, utm_medium and utm_campaign; Google also strongly recommends utm_id and utm_source_platform.
  • UTM values are case-sensitive: use lowercase and no spaces.
  • Choose utm_medium only from values GA4's default channel group recognises, or traffic lands in Unassigned.
  • For QR and print, use medium=qr with a GA4 custom channel group, and a separate short link per placement.
  • utm_creative_format and utm_marketing_tactic are not currently reported in GA4.

Short answer: a good UTM naming convention uses lowercase only, one separator (for example underscores between parts and hyphens inside a part), a fixed list of sources (google, facebook, instagram, newsletter, whatsapp…), and only the utm_medium values that GA4's default channel group recognises (cpc, paid_social, social, email, referral, sms…). Name campaigns with a template such as yyyy-mm_market_offer, and keep every link in a shared register. The free UTM builder applies these rules and warns you when a value will split or fall into "Unassigned".

Which UTM parameters does GA4 use?

Google Analytics documents five classic parameters and four newer ones. Google says you should always set source, medium and campaign, and it strongly recommends utm_id and utm_source_platform (Google Analytics Help).

ParameterUse it forExample
utm_source (required)Who sent the visit: the platform, site or listinstagram, newsletter
utm_medium (required)The type of channel; drives GA4's channel groupingpaid_social, email
utm_campaign (required)The promotion or initiative2026-11_ksa_white-friday
utm_termPaid keyword or audiencerunning-shoes
utm_contentWhich creative, link or placementvideo-15s, header-button
utm_id (strongly recommended)Your campaign ID, used to join imported cost datacmp-0142
utm_source_platform (strongly recommended)The platform that manages buying or organic trafficmeta_ads, google_ads
utm_creative_formatThe creative typevideo, display
utm_marketing_tacticThe targeting approachremarketing, prospecting

Google notes that utm_creative_format and utm_marketing_tactic are not currently reported in Google Analytics properties. Use them only if another tool reads them. Missing values show as "(not set)" in reports.

Which utm_medium values does GA4 recognise?

GA4 sorts traffic into channels with the rules in its default channel group. Those rules are not case-sensitive, but if your medium matches none of them, the visit lands in Unassigned.

utm_mediumGA4 channel
cpc, ppc, retargeting, or anything starting with paid (paid_social…)Paid Search, Paid Social, Paid Video or Paid Shopping, depending on the source; otherwise Paid Other
display, banner, expandable, interstitial, cpmDisplay
social, social-network, social-media, smOrganic Social
email, e-mail, e_mailEmail
affiliateAffiliates
referral, app, linkReferral
any value containing videoOrganic Video (or Paid Video with a paid medium)
smsSMS
audioAudio
ends with push, or contains mobile or notificationMobile Push Notifications
qr, print, offline, whatsapp, influencer…Unassigned, unless you create a custom channel group

Note the last row. Values such as qr or offline are useful labels, but GA4's default group does not know them. If you want a "QR & Print" channel, create a custom channel group with a rule such as "medium exactly matches qr" and place it above the default rules. Standard GA4 properties can have two custom channel groups, and they apply to past data too.

What naming template should you use?

Write the rules down once and share them with everyone who creates links. This template works for most small teams:

  • Everything lowercase. GA4 treats Instagram and instagram as two different values.
  • No spaces. Use underscores between parts and hyphens inside a part: 2026-11_ksa_white-friday.
  • utm_source = the platform or list, from a fixed list: google, facebook, instagram, tiktok, snapchat, x, linkedin, youtube, newsletter, whatsapp, or the partner's domain.
  • utm_medium = the channel type, only from the GA4 list above (plus qr if you add a custom channel group).
  • utm_campaign = yyyy-mm_market_offer, such as 2026-03_uae_ramadan-iftar or 2026-09_global_back-to-school.
  • utm_content = creative or placement, such as story-video-a, reel-15s, menu-table-card, window-sticker.
  • utm_term = keyword or audience, only when you need it.
  • utm_id = the ID from your register or ad platform, so the same campaign keeps one ID in every link.

What about Arabic? GA4 can store Arabic values, and the Rabetly builder keeps Arabic letters when it cleans values. In practice, Latin values are easier to filter and compare, and mixing scripts (رمضان vs ramadan) splits one campaign into two rows. Keep source and medium in Latin, because they must match GA4's rules, and pick one script for campaign names.

What do good UTM links look like for each channel?

ChannelsourcemediumcampaigncontentGA4 channel
Google Adsgooglecpc2026-11_ksa_white-fridaysearch-brandPaid Search
Meta ads (Instagram)instagrampaid_social2026-11_ksa_white-fridayreel-15s-aPaid Social
Email newsletternewsletteremail2026-11_ksa_white-fridayhero-buttonEmail
WhatsApp broadcast or statuswhatsappsocial2026-11_ksa_white-fridaybroadcast-1Organic Social
Influencer (unpaid post)instagramsocial2026-11_ksa_white-fridaycreator-nameOrganic Social
Influencer (paid partnership)instagrampaid_social2026-11_ksa_white-fridaycreator-namePaid Social
QR code on a flyerflyerqr2026-11_ksa_white-fridaymall-entranceUnassigned, or "QR & Print" with a custom group

Two notes. For Google Ads, keep auto-tagging on: Google says GA4 prioritises auto-tagging (the gclid) over manual UTM tags (Google Ads Help), so manual tags there are mainly a backup. For WhatsApp, tag the landing page you send people to, not the wa.me chat link itself; see how to create a WhatsApp link. Rabetly's Influencer preset starts from source=influencer and medium=social; if you want platform-level reports, put the platform in source and the creator in utm_content, as above.

How do you build consistent UTM links with Rabetly?

  1. Open the UTM campaign builder and paste the landing page URL. Existing query parameters and #fragments are kept.
  2. Start from a preset: Google Ads, Facebook/Instagram Ads, Organic Social, Email, Influencer, WhatsApp or QR Print. Then adjust the values to your template.
  3. Turn on "Clean values" and choose your separator. The builder lowercases, removes symbols that split reports, and warns about capitals, spaces and mediums GA4 will not recognise.
  4. Open Advanced options to add utm_id and the other GA4 fields, or custom parameters such as ref=partner_a.
  5. Copy, test and shorten. Open the URL once, then use "Shorten with Rabetly" for a clean link or a QR code. Save campaigns and compare channels in Rabetly campaign tracking.

Already have a tagged link? Paste it into "Parse a tracked URL" to load its values. The builder also removes ad click IDs such as gclid, so a copied ad link does not attribute every future visit to one old click.

What are the most common UTM mistakes?

Mixed case and spaces

Facebook, facebook and face book become three rows. Lowercase everything and never use spaces.

Invented mediums

Mediums such as ig, story or whatsapp send traffic to Unassigned. Put the detail in source or content instead.

Tagging internal links

UTMs on links inside your own site overwrite the real source of the visit. Use them only on links from outside.

Long tagged URLs in QR codes

They make the code dense and hard to scan. Shorten the tagged URL first, as explained in static vs dynamic QR codes.

One link for every placement

Use utm_content and a separate short link per placement. Our QR code UTM guide shows this for print.

No register

Keep a shared sheet with the destination, every UTM value, utm_id, the short link, where it was used and the date.

Checklist

Written rules

A one-page convention with allowed sources, mediums and the campaign pattern.

Lowercase, no spaces

One separator style, used everywhere.

GA4-friendly mediums

cpc, paid_social, social, email, referral, sms… or a custom channel group.

utm_id for every campaign

The same ID in all links of one campaign.

Shared register

Destination, UTMs, short link, placement and dates in one sheet.

Frequently asked questions

Are UTM parameters case-sensitive in GA4?

Yes. Google states that utm_source=google and utm_source=Google are different values, so they appear as separate rows. The channel grouping rules themselves are not case-sensitive, but your reports are.

Should I use hyphens or underscores?

Either works for UTMs, as long as you are consistent. A common pattern is underscores between parts and hyphens inside a part, for example 2026-11_ksa_white-friday.

What utm_medium should I use for QR codes?

GA4's default channel group has no QR channel, so medium=qr shows as Unassigned. Use medium=qr anyway for clarity and add a custom channel group with a rule for it.

What utm_medium should I use for WhatsApp?

Use source=whatsapp with medium=social, which GA4 groups as Organic Social. Avoid medium=whatsapp, which GA4 does not recognise.

Do I need UTMs for Google Ads?

Usually not. Keep auto-tagging on; Google says GA4 prioritises auto-tagging over manual UTM tags.

Can UTM values be in Arabic?

They can, but Latin values are easier to filter and compare. Keep source and medium in Latin and use one script consistently for campaign names.

Sources

Build your next campaign link

Use presets, clean values and GA4 fields, then shorten the link or turn it into a QR code.

Open Rabetly
Back to Posts