UTM tracking in Matomo
Matomo supports campaign tracking through its own mtm_ parameters and can also be configured to read the standard utm_ parameters. The mtm_campaign and mtm_keyword tags map to Matomo's Campaigns reports, while utm_ values can be mapped via Matomo's campaign parameter settings. This page covers how Matomo consumes both schemes and where the data surfaces.
mtm_ versus utm_
Matomo's native campaign parameters are mtm_campaign, mtm_keyword, mtm_source, mtm_medium, mtm_content, and mtm_group. Matomo also ships with the ability to recognise the legacy/standard parameters, including utm_, through its campaign parameter configuration.
If your organisation already uses utm_ everywhere, map those in Matomo rather than re-tagging every link with mtm_.
- Native: mtm_campaign, mtm_keyword, mtm_source, mtm_medium
- Standard utm_ can be mapped in Matomo's settings
- Reports: Acquisition → Campaigns
Where campaigns appear
Tagged visits show in Matomo's Acquisition → Campaigns report, with keyword-level detail where mtm_keyword/utm_term is present. Multi-channel reports then let you compare campaigns against other channels.
Pick one scheme (utm_ or mtm_) and configure Matomo to read it, so you do not split the same campaign across two parameter families.
How it appears in analytics and logs
In Matomo, a tagged visit populates the Campaign and Keyword dimensions in the Campaigns report. If campaigns are missing, Matomo may be configured for mtm_ while your links use utm_, or vice versa — the parameter names must match Matomo's configured campaign parameters.
Diagnostic use case
Tag links so campaigns appear in Matomo's acquisition and Campaigns reports, and decide whether to use Matomo's native mtm_ parameters or map the standard utm_ ones.
What WebmasterID can help detect
WebmasterID reads UTM parameters server-side regardless of whether Matomo is configured for utm_ or mtm_, giving a parallel campaign view that does not depend on a single tool's parameter configuration.
Common mistakes
- Using utm_ links while Matomo is configured only for mtm_ (or vice versa).
- Mixing mtm_ and utm_ for the same campaign, splitting the report.
- Assuming Matomo reads utm_ by default without enabling the mapping.
- Forgetting keyword detail needs mtm_keyword or utm_term present.
Privacy and accuracy notes
Matomo can be run privacy-respecting (self-hosted, IP anonymisation, no cookies mode). Campaign UTM/MTM parameters describe the link, not the person, and do not change Matomo's separate visitor-privacy settings.
Related pages
- UTM tracking in Plausible Analytics
Plausible is a privacy-first, cookieless analytics tool that reads the standard utm_ parameters and exposes them as Source, UTM Medium, UTM Campaign, UTM Content, and UTM Term properties. Because Plausible avoids cookies and cross-site identifiers, UTMs are the primary way to attribute campaigns. This page covers how Plausible consumes the parameters and groups acquisition sources.
- UTM in Google Analytics 4
Google Analytics 4 reads the standard utm_ query parameters and maps them to its session and traffic-source dimensions. The mapping is specific: utm_source, utm_medium, and utm_campaign feed the core dimensions, utm_id powers the manual campaign ID, and utm_source/medium combinations drive GA4's default channel grouping. Knowing the exact mapping prevents tags that look fine but land in the wrong channel.
- UTM naming conventions that survive reporting
Most UTM data problems are naming problems. Because tools treat utm_source=Reddit and reddit as different values, inconsistent casing and spelling fragment one campaign across many rows. This page gives a convention — lowercase, hyphenated, documented allow-list — that keeps reports clean.
- Privacy-first analytics
Self-hostable, UTM-aware campaign attribution.
Sources and verification notes
- Matomo — Tracking Campaigns documentationNative mtm_ parameters and mapping of standard utm_ parameters.
Last reviewed 2026-06-24. Facts are checked against primary/official sources where available; uncertain specifics are marked “Data not yet verified” rather than guessed.