Understanding and creating UTM parameters: the basics of campaign tracking

UTM parameters help you measure campaigns accurately, allocate budgets more effectively, and improve marketing ROI with reliable data.

Last modified on: 26.05.2026 19 minute read
Written by: Christoph Kottmann Senior Performance Consultant (SEO & Analytics) Marcel Schröder Performance & Growth Lead

Inhaltsverzeichnis

  1. Why UTM parameters are revenue-relevant
  2. UTM parameters by channel
  3. Creating UTM parameters
  4. Download: UTM template (Google Sheet)
  5. 'Required' and optional parameters
  6. Example
  7. Analyzing UTM parameters (GA4, Piwik)
  8. Common mistakes in companies

In a nutshell: UTM parameters

  • UTM parameters show which marketing activities generate traffic, conversions, and revenue
  • Consistent UTM structures matter more than maximum detail and prevent inaccurate or distorted reporting
  • utm_source, utm_medium, and utm_campaign form the foundation of any meaningful campaign analysis
  • The most common mistakes include inconsistent naming, ignoring case sensitivity, and the lack of central documentation and governance

The most important UTM parameters briefly explained

UTM parameters are short additions to a URL that allow you to track exactly where your website visitors come from. They are passed to analytics tools like Google Analytics or Piwik Pro and help you measure the success of your marketing efforts accurately.

Dimension Query string Function

Medium

utm_medium

Marketing channel such as cpc, paid_social, or email

Source

utm_source

Traffic source such as google, newsletter, or facebook.com

Campaign

utm_campaign

Specific campaign name

Content

utm_content

Differentiates creatives or links

Term

utm_term

Paid search keyword

Why UTM parameters matter for revenue attribution

UTM parameters are small tracking additions to a URL that allow you to see in web analytics tools like Google Analytics (GA4) or alternatives like Piwik PRO exactly where users are really coming from and which marketing activities are driving revenue. This sounds technical, but in practice it's the simplest lever for measurably better budget allocation.

Marketing budgets are spread across channels like paid social, search, email, and display advertising. If you don't track your campaigns properly, it remains unclear which measures are actually contributing to revenue.

Without UTM parameters, traffic sources often get mixed together. Social traffic, for example, may appear as direct traffic. This is commonly referred to as dark social: visits from apps, messaging tools, or emails that cannot be attributed correctly and therefore incorrectly appear as 'direct' traffic.

With UTMs, you can clearly attribute sessions, leads, purchases, and revenue to a specific source, campaign, or medium. Instead of relying on assumptions or gut feeling, teams can make decisions based on measurable performance.

UTM parameters connect marketing activity to business outcomes. Optimize your marketing ROI by precisely identifying:

  • which channels generate high-quality traffic,
  • which campaigns drive conversions,
  • where revenue is generated,

and which actions should be taken based on that data.

UTM parameters follow the same logic across all platforms. Most differentiation happens through utm_source (e.g. google, facebook.com) and utm_medium (e.g. cpc, social, email) – more on that later.

Moccu: your agency for digital analytics & performance tracking

Need support setting up or optimizing your tracking? We help you measure campaigns accurately, standardize UTM structures, and turn analytics data into actionable business insights.

Using UTM parameters correctly by channel

The logic behind UTM parameters stays the same across channels. However, the recommended setups and use cases vary depending on the platform. The following examples show proven UTM structures for the most important channels.

Google Ads: supplementing auto-tagging strategically

In Google Ads, auto-tagging (GCLID) should always remain enabled. However, additional UTM parameters for Google Ads make sense in certain scenarios, particularly when campaign data is used beyond Google Analytics.

Typical use cases include:

  • using analytics tools other than Google Analytics
  • integration with CRM or BI systems that cannot process GCLID data
  • creating a consistent cross-channel naming convention

Important: manually added UTM parameters can create attribution conflicts with auto-tagging data. Therefore, auto-tagging and UTM logic should always be aligned to avoid inconsistent reporting or data loss. This becomes especially important when multiple teams work with the same campaign data. A shared naming convention ensures everyone works from the same reporting foundation and helps prevent data silos.

Facebook, TikTok & Co.: UTM parameters for social ads

If you run social ads on Facebook, TikTok, or LinkedIn, UTM parameters are essential. Platform dashboards show clicks and platform-side conversions, but UTM tracking shows what users actually do on your website independently of platform attribution models or tracking pixels.

Typical UTM parameter combinations are:

  • utm_source=facebook.com & utm_medium=paid_social
  • utm_source=tiktok & utm_medium=paid_social
  • utm_source=linkedin.com & utm_medium=paid_sociall

Additional parameters like utm_campaign, utm_content and in some cases utm_term can help differentiate campaigns, ad groups, and creatives. You can find out more about this further down in the section on optional and 'required' parameters ↓.

YouTube: video ads between Google Ads and social media

YouTube occupies a unique position in the marketing mix: while ads run through Google Ads and benefit from auto-tagging (GCLID), YouTube simultaneously functions like a social media platform with its own user behavior and video-focused ad formats.

To separate YouTube campaigns from Google Search or display traffic, campaigns should be clearly labeled with dedicated UTM parameters:

  • utm_source=youtube.com & utm_medium=video (or paid_video)

This makes it easier to analyze video campaign performance separately from other Google Ads channels.

As with Google Ads generally, auto-tagging should remain enabled. UTM parameters provide additional structure and cross-channel consistency.

Audio & streaming channels: Spotify & podcasts

Audio campaigns are often considered difficult to measure. This is exactly where UTM parameters provide transparency. With a tagged URL, links in Spotify ads, podcast descriptions, or show notes can be analyzed in Google Analytics or other analytics tools.

Examples:

  • utm_source=spotify & utm_medium=audio
  • utm_source=podcastname & utm_medium=podcast

For podcast campaigns, using the specific podcast name as the source can make it easier to compare performance across different shows. Alternatively, the show name can also be tracked through utm_campaign or utm_content.

Owned Channels

Often underestimated but actually highly relevant is the use of UTMs in owned channels. UTM parameters are often associated mainly with paid campaigns, but they are just as valuable for owned channels. They help measure touchpoint performance and attribute traffic more accurately.

A structured UTM setup helps track:

  • which email campaigns generate the highest conversion rates
  • which QR code placements (flyers, packaging, posters) are actually used
  • which microsites or partner integrations generate traffic

Especially in owned channels, UTM parameters often deliver particularly valuable insights, as this traffic would otherwise frequently end up categorized as 'direct' traffic in Google Analytics.

Important: UTM parameters should only be used for external traffic sources. Internal links on your website should never contain UTMs because they overwrite the original attribution source and distort reporting.

Creating UTM parameters: tools & best practices

UTM parameters can be added to any URL manually. In practice, however, dedicated tools help standardize and simplify the process. The best option depends on campaign volume, team size, and governance requirements.

  • Campaign URL Builder: the standard solution

    Google's Campaign URL Builder is the best-known tool for creating UTM URLs. It is free, browser-based, and does not require a login. Using a form, you simply fill in the destination URL and the desired parameters, such as utm_source, utm_medium, utm_campaign. The tool then automatically generates a correctly formatted tracking URL that can be copied directly into campaigns.

  • Alternative tools for other analytics platforms

    Those who don't work with Google Analytics will sometimes find dedicated URL builders from other providers, such as Matomo or Piwik PRO. Technically, however, these tools work almost identically to Google’s Campaign URL Builder. Parameters are simply appended to the destination URL.

    As a general rule: what matters for tracking is not which tool was used to create the URL, but whether parameters are named correctly and used consistently.

  • Google Sheets or Excel: scalable campaign management

    For recurring campaigns and larger teams, a centralized UTM spreadsheet is usually the best solution. This allows fixed dropdowns, validations, and naming conventions to be defined, preventing typos and inconsistent parameters.

    The benefits:

    • define and enforce UTM conventions centrally
    • create URLs for multiple campaigns simultaneously
    • document tracking links and share them across the team
    • ensure consistency across all channels

    A well-structured sheet typically contains:

    • base URL
    • predefined values for source, medium, campaign
    • automatic URL generation via formula
    • version tracking

Download: our UTM template for consistent parameters

With our UTM template based on Google Sheets, you can hit the ground running: predefined parameters, validations, and automatic URL generation – for individual campaigns or team-wide use.

Download UTM template

Which UTM parameters are required – and which are optional?

UTM parameters are fundamentally optional. Technically, any URL works without them. However, anyone who wants to attribute traffic accurately and analyze campaigns meaningfully will find three parameters practically unavoidable. They have established themselves as the minimum standard for structured tracking.

For reliable tracking, utm_source, utm_medium, and utm_campaign are essential. All other parameters are optional.

The three 'required' parameters

For clean and analyzable tracking, these three parameters are practically essential:

  • utm_source: defines where the traffic comes from e.g. facebook, newsletter, google, partner-site
  • utm_medium: defines the marketing medium or channel type, e.g. cpc, email, social, referral, paid_social
  • utm_campaign: identifies the specific campaign, e.g. summer-sale-2027, product-launch-december-2027, blackfriday

Why these three matter: without them, the basic attribution in analytics tools is missing. Source and medium define the channel; campaign makes individual initiatives comparable. utm_source is technically the bare minimum – if this parameter is not set, everything ends up in 'direct' or '(not set)'. If the other two are missing, it works technically, but is so incomplete that UTM parameters fail to serve their actual purpose.

The two optional parameters

In addition to the required parameters, two optional UTM parameters are commonly used.

utm_content differentiates multiple links or creatives within the same campaign. Typical use cases include:

  • A/B testing creatives: utm_content=video-hero vs. utm_content=carousel-product
  • Different link positions in emails: utm_content=header-cta vs. utm_content=footer-link
  • Multiple banners on a partner site: utm_content=banner-top vs. utm_content=sidebar

utm_term originally comes from paid search and was designed for keyword tracking. Typical use cases include:

  • CRM integration (e.g. passing keyword data into HubSpot)
  • Paid search without auto-tagging: utm_term=running-shoes-men
  • Specific targeting parameters

In practice, utm_term is rarely used, as Google Ads with auto-tagging automatically transfers keyword data (where available).

New GA4 parameters

Google Analytics 4 has introduced three additional parameters in recent years to address the growing complexity in advertising:

  • utm_source_platform: indicates which marketing platform is sending the traffic (e.g. Search Ads 360 or Display & Video 360).
  • utm_creative_format: allows you to record which creative format was clicked (e.g. interstitial, video, sidebar).
  • utm_marketing_tactic: enables tracking of the targeting strategy (e.g. remarketing, prospecting, retention).

In practice, however, these parameters are still rarely used and are primarily relevant in enterprise setups with multiple ad management platforms such as Google Marketing Platform or Search Ads 360. In addition, utm_creative_format and utm_marketing_tactic are not yet available as standard dimensions in many default GA4 reports. To analyze them properly, additional configuration via Google Tag Manager (GTM), custom dimensions, or BigQuery is typically required.

How much complexity makes sense?

The ideal level of detail depends on your campaign structure and reporting requirements. As a general rule: The more parameters you use, the more granular your analysis becomes – but the more governance and consistency you need. Without clear standards, large teams quickly create fragmented naming structures that become difficult to cleanly analyze later on.

Common mistakes in parameter selection

  • Too little detail

    using only source and medium while leaving out campaign makes it impossible to distinguish between different initiatives. Campaign comparisons become impossible and valuable insights are lost.

  • Too much detail

    the opposite extreme is equally problematic. Mapping every minor detail via utm_content creates cluttered reports with hundreds of rows in analytics, making analysis harder rather than easier.

  • Inconsistent usage

    one of the most common mistakes is using optional parameters inconsistently. If utm_content is only set sporadically, comparisons across multiple campaigns are no longer possible. Consistency matters more than completeness.

  • No naming schema

    without a consistent convention, chaos quickly ensues, especially with similar names like 'new-product'. A good schema carries the most important information directly in the name: e.g. [year]-[quarter]-[product]-[goal]. This allows campaigns to be instantly categorized in analytics.

The rule of thumb: as detailed as necessary for analysis, as simple as possible for clarity. If it is unclear whether an additional parameter truly adds analytical value, it is usually better to leave it out initially. UTM structures can always be expanded later once requirements become more sophisticated.

UTM parameters in practice: A concrete example

Before diving into a campaign scenario, it helps to understand the basic structure of a UTM-tagged URL. UTM parameters are appended to a standard destination URL and pass additional information to analytics tools about where a click originated and how it should be categorized.

Technically, a UTM URL always consists of two parts:

  • the destination URL (i.e. the actual page)
  • a series of UTM parameters, starting with a question mark (?) and separated by ampersands (&)

Each individual parameter serves a clearly defined purpose and contributes to making campaigns analyzable in a structured and reliable way later on.

A UTM URL consists of the destination URL, followed by a question mark and the individual UTM parameters, each connected with an '&'.

How to read this URL:

  • utm_source=linkedin.com: the traffic is clearly coming from the LinkedIn platform.
  • utm_medium=paid_social: identifies the click as a paid social media campaign and distinguishes it from organic LinkedIn posts.
  • utm_campaign=digital-analytics-consulting: assigns the click to a higher-level campaign, in this case promoting analytics services.
  • utm_content=ad-carousel: differentiates the specific ad format or creative, in this case a carousel ad compared to a single image ad.

Important: In the example above, you should always use paid_social as the utm_medium parameter. Using utm_medium=social instead, or leaving the parameter out entirely, will result in the traffic being categorized as 'organic social' in GA4. Paid campaigns would therefore be counted as organic traffic. Even more critically, if the same UTM URL is also used for organic posts, that data will flow into the campaign as well and distort the results.

To make the logic behind UTM parameters more tangible, here is a concrete scenario that explains the reasoning behind each parameter choice. The following example intentionally uses a more advanced UTM structure, similar to what is commonly used in professional multi-channel campaigns. Don't worry, not every setup requires this level of detail. The goal here is simply to illustrate the possibilities.

The scenario

An online sportswear shop is launching a product campaign for a new running shoe collection. The campaign runs simultaneously across multiple channels:

  • Facebook ads with various creatives
  • Instagram ads using the same visuals
  • A newsletter sent to existing customers
  • A collaboration with a running blog

The goal is to accurately determine afterward: which channel performed best? Which creative worked best on which platform? And was the blog collaboration worth it?

The UTM structure in detail

UTM logic is easiest to understand through concrete examples. Below are several variations for different use cases.

Facebook ads – video creative


https://shop.example.com/laufschuhe-neuheit?utm_source=facebook.com&utm_medium=paid_social&utm_campaign= laufschuh-launch-q1-2027&utm_content=video-running-city

Why these parameters

  • utm_source=facebook.com: clearly attributes traffic to Facebook.
  • utm_medium=paid_social: distinguishes paid campaigns from organic social posts that may also generate traffic.
  • utm_campaign=running-shoe-launch-q1-2027: provides a clear campaign name including product reference and timeframe.
  • utm_content=video-running-city: identifies the specific creative (a video featuring urban running scenes).

Facebook ads – carousel creative


https://shop.example.com/running-shoes-new?utm_source=facebook.com&utm_medium=paid_social&utm_campaign=running-shoe-launch-q1-2027&utm_content=carousel-product-details

Only utm_content changes here in order to identify the second creative format. This makes it possible to compare ad format performance directly later on.

Instagram ads – video creative


https://shop.example.com/running-shoes-new?utm_source=instagram&utm_medium=paid_social&utm_campaign=running-shoe-launch-q1-2027&utm_content=video-running-city

Why a different source but the same content?

  • utm_source=instagram: although both campaigns run through Meta Business Manager, separating the source allows for direct platform comparison.
  • utm_content=video-running-city: the creative itself is identical to Facebook. Using the same content value allows you to compare how the same visual performs across platforms.

Newsletter


https://shop.example.com/running-shoes-new?utm_source=newsletter&utm_medium=email&utm_campaign=running-shoe-launch-q1-2027&utm_content=header-cta

Why these parameters?

  • utm_source=newsletter: clearly identifies the traffic source.
  • utm_medium=email: uses the standard categorization for email traffic.
  • utm_campaign: matches the social campaign naming for cross-channel comparison.
  • utm_content=header-cta: if multiple links appear in the newsletter (for example in the body copy or footer), this makes it possible to compare which placement performs best.

Blog collaboration


https://shop.example.com/running-shoes-new?utm_source=running-sports-blog&utm_medium=referral&utm_campaign=running-shoe-launch-q1-2027&utm_content=sponsored-post

Why these parameters?

  • utm_source=running-sports-blog: specifies the individual blog name, especially useful if multiple collaborations run simultaneously later on.
  • utm_medium=referral: standard designation for traffic coming from another website.
  • utm_content=sponsored-post: distinguishes paid placements from potential organic mentions.

What this structure enables

With consistent UTM parameter usage like this, the following questions can be answered in Google Analytics (or similar analytics tools):

  • Channel performance

    Which channel (Facebook, Instagram, newsletter, blog) generated the most revenue? → comparison via utm_source

  • Medium comparison

    Do paid social ads perform better than email or referral traffic? → comparison via utm_medium

  • Creative performance

    Does the video creative outperform the carousel format? → comparison via utm_content

  • Cross-platform creative analysis

    Does the video perform better on Facebook than on Instagram? → combination of utm_source and utm_content

  • Campaign ROI

    What was the overall performance of the launch campaign across all channels? → filter by utm_campaign=running-shoe-launch-q1-2027

The key takeaways from this example

  • 01

    Consistent naming conventions

    all campaign parameters follow the same logic (product-action-timeframe), which simplifies comparison and analysis.

  • 02

    Strategic use of utm_content

    only used where it adds real analytical value – for creative variations and link positions, not for every minor detail.

  • 03

    Descriptive parameter values

    using the same campaign name across all channels enables aggregated campaign analysis.

  • 04

    Human-readable parameter values

    video-running-city is much easier to interpret in reports than something like creative-001.

Analyzing UTM parameters

Once the UTM links are in use, the collected data needs to be analyzed. The central place for this is the acquisition report. Here's where to find the data in the most common analytics tools.

Google Analytics 4 (GA4): Analyzing UTM parameters

In GA4, UTM parameters are automatically mapped to predefined dimensions. To view your campaigns, navigate to:

Reports → Acquisition → User acquisition report (or 'first user source') or Traffic acquisition (for a session-based analysis).

  • GA4 typically displays the 'default channel group' dimension first (e.g. 'paid social'). Click the dropdown arrow next to the dimension to switch to 'session source/medium' or 'session campaign.'
  • Use the plus symbol (+) to add a secondary dimension. For example, you can combine source/medium with campaign data to break performance down in more detail.

Piwik PRO: analyzing UTM parameters

Piwik PRO reads UTM data reliably. You can find the analysis under: Analytics → Reports → Acquisition → Channels or Campaigns.

  • In both reports, you can change the primary dimension to 'source / medium' directly above the table.
  • Piwik PRO natively recognizes the standard utm_ parameters. Because the platform is historically related to Matomo, it also supports pk_ (Piwik) and mtm_ (Matomo) parameters (e.g. pk_source).
  • If you work across platforms, it’s still best to consistently use the standard utm_ format. If you migrate from GA4 to Piwik PRO, you don't need to update your links. Piwik recognizes both standards without any issues.

Moccu: your agency for Piwik PRO

We help you use Piwik PRO strategically: with clean tracking, clear UTM structures, and campaign reports that show which measures are truly driving results – privacy-compliant and transparent.

Common mistakes when using UTM parameters

UTM parameters are technically simple to implement, yet many companies struggle with using them consistently and meaningfully. The most common problems are not technical; they stem from missing structure and unclear processes.

FAQs

Let's talk about your tracking.

Marcel Schröder Lead Consultant – Growth & Performance

Thank you!

We’ll get back to you as soon as possible.

Our team of experts

Christoph Kottmann Senior Performance Consultant (SEO & Analytics)

Christoph Kottmann has been an SEO consultant at Moccu since 2022, advising our clients on tracking, reporting, and optimizations. As a photographer and former reporter, he combines a strong understanding of content with a passion for data. When he's not sitting at his laptop somewhere around the world, you'll find him underwater with a diving tank or on the road with his Vespa.

All articles by Christoph Kottmann
Marcel Schröder Performance & Growth Lead

Marcel Schröder is a search & data hacker who's partnered with us for over 10 years as a freelancer in SEO, analytics, and performance. From startups to global players, he lives by the motto: 'Study the data, then trust your gut'. Beyond data, he’s passionate about nature, good food and all things music & podcasts. This passion is also evident in his own podcast format Geschichte im Glas.

LinkedIn

All articles by Marcel Schröder

More insights from our blog

Back to Insights Back to Top