Dynamic UTM parameters let an advertising platform fill selected tracking fields when a link is used. They reduce repeated tagging work, but the template still needs testing. A macro left unresolved or stripped during a redirect can make the final report harder to explain.
The UTM framework itself is not new. A tested dynamic template can reduce repeated tagging work while keeping controlled values consistent. Platform IDs can provide useful join keys when supported, captured, and retained downstream.
What are UTM parameters?
UTM parameters are labels added to a destination URL so analytics and attribution systems can identify where a visit came from. Google Analytics supports the familiar source, medium, campaign, content, and term fields. Parameter values are case-sensitive, which is why one documented standard matters.
- utm_source identifies the platform or referrer, such as google, meta, or linkedin.
- utm_medium identifies the channel, such as cpc, paid_social, or programmatic.
- utm_campaign identifies the campaign.
- utm_content distinguishes the ad, creative, or audience grouping.
- utm_term carries a keyword or another governed secondary label when appropriate.
Source, medium, and campaign create the readable baseline. Content and term add detail when the channel supports them and your reporting plan defines what those fields mean. For the full naming system, use Maven's complete UTM parameters guide.
What makes a UTM parameter dynamic?
A dynamic value contains a provider macro. The advertising platform replaces that placeholder with the real campaign value when the ad is served or clicked.
utm_campaign=summer_savings
utm_campaign={{campaign.name}}Meta commonly uses double curly brackets, while Google Ads uses ValueTrack parameters such as {campaignid} and {adgroupid}. TikTok documents double-underscore macros, including different options for upgraded Smart+ campaigns.
LinkedIn, Pinterest, Microsoft, Snapchat, and StackAdapt each document their own supported syntax. Do not copy a macro from one provider into another without checking its current documentation.
Static vs. dynamic UTM parameters
| Area | Static UTMs | Dynamic UTMs |
|---|---|---|
| How values are added | A person types or copies each value | The ad platform resolves a supported macro |
| Best use | Controlled taxonomy that should not drift | Campaign, ad, creative, keyword, placement, and IDs |
| Primary risk | Typos, casing differences, stale names, missing fields | Unsupported macros or an untested template |
| Scale | More upkeep with every campaign and ad | One governed template can cover many entities |
| Reporting joins | Usually depends on editable names | Can pair readable names with durable platform IDs |
Which fields should be static or dynamic?
The strongest standard is usually hybrid. Keep the values that define your channel taxonomy controlled, then let the provider populate readable values that change from one campaign entity to the next. Keep raw platform IDs out of the standard UTM fields: reserve them for utm_mc_id.
| Parameter | Maven recommendation | Reason |
|---|---|---|
| utm_source | Usually static | Keeps the platform name consistent across accounts |
| utm_medium | Usually static | Protects channel grouping from naming drift |
| utm_campaign | Descriptive dynamic value when supported | Identifies the campaign in a form people can read |
| utm_content | Descriptive dynamic value when supported | Carries a readable ad, creative, or grouping label |
| utm_term | Dynamic when supported | Adds keyword or governed secondary context |
| utm_mc_id | Dynamic | Preserves the provider hierarchy as durable IDs |
Dynamic UTM macros by ad platform
Macro names differ by provider and sometimes by campaign type. Use this table as a starting point, then confirm each value in the platform's current documentation before you build a template.
| Platform | Where to set it | Useful macros | Notes |
|---|---|---|---|
| Google Ads | Tracking template or Final URL suffix | {campaignid}, {adgroupid}, {creative}, {keyword}, {matchtype}, {network}, {device}, {lpurl} (lpurl in tracking templates) | Auto-tagging adds gclid; keep it on. For the GA4-linked exception, see the callout above. |
| Microsoft Advertising | Tracking template or Final URL suffix | Use tokens currently listed in Microsoft Advertising Help | Auto-tagging may add msclkid. Confirm current token names and availability in Microsoft’s URL tracking parameters help page. |
| Meta | URL parameters field at the ad level | Use macros in Meta’s current supported-parameters list | Confirm available macros for the ad type in Meta’s current help page; keep IDs in utm_mc_id. |
| Performance Max | Asset group URL options or another level supported in current Google Ads settings | {campaignid} is supported | Google notes that unavailable ValueTrack values can be blank. Keyword values may be blank when no keyword triggers the ad; verify support for the campaign type. |
| ChatGPT / OpenAI ads and other new ad surfaces | Check the platform’s current ad-setup documentation | Do not assume macro support | If the platform does not document dynamic macros, use static UTMs per campaign and put the campaign ID in utm_id. |
Why Maven standardizes on utm_mc_id
Readable UTMs are useful in GA4, CRM exports, Piwik, Looker, spreadsheets, and everyday QA. But names are weak database keys: they can be edited, reused, misspelled, or reformatted. Maven therefore adds a second layer, utm_mc_id, that carries the available provider IDs in a structured sequence.
utm_mc_id=cm-{campaign}-ag-{ad_group}-ad-{ad}-cr-{creative}-pl-{placement}The component prefixes have consistent meanings across providers:
- cm campaign ID; ag ad group or ad set ID.
- ad ad ID; cr creative ID.
- pl placement; ss site or publisher source.
- kw keyword; nw network; sz ad size or format.
How dynamic UTM tracking works
- Define the taxonomy. Approve the exact source, medium, campaign, content, and term conventions.
- Choose the platform template. Use only macros supported by that provider and campaign type.
- Apply it at the safest reusable level. That may be the account, campaign, ad group, or ad.
- Test the resolved click. Confirm macros populate and the landing page keeps every required parameter.
- Join context to outcomes. Preserve the captured IDs so reporting can connect media entities to leads, orders, revenue, and other business results.

Where dynamic UTMs can help
They reduce repetitive manual tagging
A governed template replaces repeated copy-and-paste work. Platform-populated values reduce missing fields, casing differences, and stale campaign details.
They standardize reporting across accounts
Controlled source and medium values protect channel reporting outside Google Ads. Dynamic campaign and ad detail prevents every media buyer from inventing a slightly different convention.
They capture useful detail with little additional effort
Once a template is in place, supported campaign, ad group, ad, creative, keyword, placement, publisher, and network context can flow into the landing URL automatically.
They create stronger joins than names alone
Provider IDs identify the underlying entity even after someone renames a campaign. That makes them a more dependable bridge between the click, the ad-platform hierarchy, and downstream conversion records.
They make granular creative reporting possible
When the measurement stack preserves these identifiers, Maven can associate available spend and outcomes with the matching campaign, audience group, ad, or creative in marketing attribution reporting.
How Maven audits UTM coverage
The generator creates the intended template. Maven's app checks whether that standard is actually present on live, spend-bearing media entities. Coverage and recommendations are deliberately separated:
- Coverage pass: a parseable
utm_mc_idcontains the required hierarchy components for the provider. - Coverage warning:
utm_mc_idis malformed, conflicting, or missing an expected component. - Coverage failure:
utm_mc_idis absent, even if readable UTMs or a provider click ID are present. - Quality recommendation: readable UTMs are incomplete while the canonical ID remains valid.
That distinction keeps the score honest. Readable values improve compatibility and troubleshooting, but they do not substitute for Maven's attribution key. Likewise, gclid, fbclid, msclkid, and ttclid remain valuable provider identifiers without replacing utm_mc_id.
The current Maven templates also capture additional supported detail where it is available, including network for Google and Microsoft Ads and the separate ad bundle plus creative asset for TikTok Smart+. Maven recognizes those components as richer hierarchy detail without retroactively failing an otherwise valid historical link.
Keep UTMs from disappearing
Campaign parameters are only useful if they survive the trip to the form, checkout, or CRM record. Four common failure points drop them before anyone can read them:
- Redirects and URL rewrites that rebuild the destination without its query string.
- Link shorteners and tracked redirect domains that strip parameters.
- Single-page app routing that changes the URL before the tag reads the original values.
- Consent banners that delay the tag, so the parameters are not captured on the first page view.
Capture UTMs on the first landing page, store first-touch and last-touch values in first-party storage, and write them into hidden form fields so the CRM keeps them with the lead. Confirm each path with the tracking QA checklist before launch.
Dynamic UTM best practices
- Document one lowercase source and medium taxonomy and use the same separators everywhere.
- Put the template at the highest safe level, then audit lower-level overrides.
- Use descriptive labels in the standard UTM fields and IDs only in utm_mc_id for attribution joins.
- Keep provider auto-tagging and click IDs enabled.
- Test a live or provider-supported test click; preview screens do not always resolve macros.
- Preserve campaign parameters through redirects, forms, cross-domain journeys, CRM records, and checkout.
- Audit older ads that still spend or drive leads, not only new duplicates.
- Never place names, email addresses, phone numbers, account numbers, or other personal data in a URL.
What dynamic UTMs do not replace
Dynamic UTM parameters improve the campaign context entering a measurement system. They are not a complete attribution system by themselves.
- provider auto-tagging and click IDs
- platform pixels, conversion APIs, or server-side event collection
- first-party storage of landing-page parameters
- cross-domain, form, CRM, checkout, and consent-aware attribution design
- launch QA and ongoing data-quality monitoring
Use these parts together. Dynamic UTMs explain and identify the media context; the rest of the measurement stack preserves that context and connects it to outcomes.
Turn a tracking template into trusted reporting
Dynamic UTM tracking is an operational upgrade to the framework marketers have used for years. It reduces manual error, captures more campaign detail, and gives downstream reporting a clearer connection between the ad someone clicked and the business result that followed.
Use the generator above to create the standard. Then book a tracking audit to check your coverage and connect paid media to business outcomes.
Part of: Why your numbers don't match
Also in Other sources: Why Adobe Analytics and GA4 numbers don’t match, Why email and SMS clicks don’t match GA4 sessions, Why web and mobile app analytics numbers don’t match
Frequently asked questions
What are dynamic UTM parameters?
Dynamic UTM parameters use advertising-platform macros that are replaced with campaign, ad group, ad, creative, keyword, placement, or network values when an ad is served or clicked. They automate campaign tagging while preserving the familiar UTM fields used by analytics tools.
Are dynamic UTMs better than static UTMs?
Dynamic values can fill fields that vary by campaign or ad when the provider supports the macro. Keep controlled taxonomy fields such as utm_source and utm_medium consistent, and test the resolved destination URL before relying on it.
Do dynamic UTMs work with GA4?
GA4 can read campaign parameters present in the landing-page URL. Confirm that the advertising platform resolves the macros and that redirects preserve the final parameter values.
Do dynamic UTMs replace gclid, fbclid, or other click IDs?
Usually no: keep provider auto-tagging enabled alongside readable UTMs and Maven’s utm_mc_id. Google Ads is the exception when it is linked to GA4 with auto-tagging enabled: gclid supplies Google Ads reporting, so Maven’s Google template uses only utm_mc_id.
What is utm_mc_id?
utm_mc_id is Maven’s canonical structured campaign hierarchy identifier. It carries the platform IDs available for a click, such as campaign, ad group or ad set, ad, creative, placement, publisher, keyword, network, or ad size.
How does Maven audit UTM coverage?
Maven checks live, spend-bearing paid-media entities for a present, parseable utm_mc_id with the required components for that platform. Missing readable UTMs are shown as quality recommendations; click IDs alone do not pass Maven attribution coverage.
What are the Meta dynamic URL parameters?
Meta provides a URL parameters field for ad-level tracking. Macro names and availability depend on Meta’s current supported-parameters list and ad type, so verify each value in the current documentation before launch.
Do dynamic UTMs work with Performance Max?
Partly. Campaign-level macros such as {campaignid} can populate, but keyword and ad group values are not meaningful for Performance Max, which runs on asset groups rather than keyword-driven ad groups. Expect some ValueTrack values to be empty, and rely on the campaign-level template and utm_mc_id for campaign context.
Sources and references
- Google Analytics Help: URL builders and campaign parameter guidance
- Google Analytics Help: Benefits of Google Ads auto-tagging
- Google Ads Help: Set up tracking with ValueTrack parameters
- Meta Business Help: Specifications for dynamic URL parameters
- Microsoft Advertising: Create an account tracking template
- TikTok Ads Help: About UTM parameters
- LinkedIn Marketing Solutions Help: URL tracking parameters in Campaign Manager
- Pinterest Business Help: Third-party and dynamic tracking
- Microsoft Advertising Help: URL tracking parameters
- Meta Business Help: URL parameters
