Attribution & Measurement

Dynamic UTM parameters: a standardized tracking guide and generator

Build a platform-ready dynamic UTM template, understand how macros improve campaign tracking, and learn why Maven uses utm_mc_id to audit paid-media attribution coverage.
Jamie IsabelPublished July 23, 202612 min read

Free Maven tool

Dynamic UTM generator

Choose an ad platform, add an optional landing page, and copy Maven's standardized tracking template. The generator keeps readable UTMs and the canonical utm_mc_id together.

Platform tracking suffix

Copy this into the platform field shown above. Do not add a leading question mark.

utm_source=meta&utm_medium=paid_social&utm_campaign={{campaign.name}}&utm_content={{adset.name}}&utm_term={{ad.name}}&utm_mc_id=cm-{{campaign.id}}-ag-{{adset.id}}-ad-{{ad.id}}-cr-{{creative.id}}-pl-{{placement}}-ss-{{site_source_name}}

Generating the link is step one.

Maven audits live, spend-bearing entities for valid utm_mc_id coverage.

Audit UTM coverage

Dynamic UTM parameters are campaign-tracking values that an ad platform inserts into a landing-page URL automatically. Instead of typing a campaign, ad group, ad, creative, keyword, or placement into every link, you add the platform's supported macro once. The platform resolves that macro for each click.

The UTM framework itself is not new. Dynamic UTM tracking is a more dependable way to operate it at scale: controlled values stay consistent, campaign details populate automatically, and durable platform IDs give downstream reporting a stronger join back to the ad that produced the visit.

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.

static value vs dynamic macro
utm_campaign=summer_savings
utm_campaign={{campaign.name}}

Meta commonly uses double curly brackets. Google Ads uses ValueTrack parameters such as {campaignid} and {adgroupid}. TikTok uses double-underscore macros. LinkedIn, Pinterest, Microsoft, Snapchat, and StackAdapt each use their own supported syntax. A macro from one provider should never be copied blindly into another.

Static vs. dynamic UTM parameters

AreaStatic UTMsDynamic UTMs
How values are addedA person types or copies each valueThe ad platform resolves a supported macro
Best useControlled taxonomy that should not driftCampaign, ad, creative, keyword, placement, and IDs
Primary riskTypos, casing differences, stale names, missing fieldsUnsupported macros or an untested template
ScaleMore upkeep with every campaign and adOne governed template can cover many entities
Reporting joinsUsually depends on editable namesCan pair readable names with durable platform IDs
Maven recommends a hybrid: static governance fields plus dynamic campaign detail.

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 values that change from one campaign entity to the next.

ParameterMaven recommendationReason
utm_sourceUsually staticKeeps the platform name consistent across accounts
utm_mediumUsually staticProtects channel grouping from naming drift
utm_campaignDynamic when supportedIdentifies the campaign that served the click
utm_contentDynamic when supportedCarries the relevant ad, creative, or grouping
utm_termDynamic when supportedAdds keyword or governed secondary context
utm_mc_idDynamicPreserves the provider hierarchy as durable IDs

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.

Maven campaign hierarchy identifier
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

  1. Define the taxonomy. Approve the exact source, medium, campaign, content, and term conventions.
  2. Choose the platform template. Use only macros supported by that provider and campaign type.
  3. Apply it at the safest reusable level. That may be the account, campaign, ad group, or ad.
  4. Test the resolved click. Confirm macros populate and the landing page keeps every required parameter.
  5. Join context to outcomes. Preserve the captured IDs so reporting can connect media entities to leads, orders, revenue, and other business results.

Why dynamic UTMs are now the recommended approach

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. 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_id contains the required hierarchy components for the provider.
  • Coverage warning: utm_mc_id is malformed, conflicting, or missing an expected component.
  • Coverage failure: utm_mc_id is 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.

Dynamic UTM best practices

  1. Document one lowercase source and medium taxonomy and use the same separators everywhere.
  2. Put the template at the highest safe level, then audit lower-level overrides.
  3. Use names for readability and IDs for attribution joins.
  4. Keep provider auto-tagging and click IDs enabled.
  5. Test a live or provider-supported test click; preview screens do not always resolve macros.
  6. Preserve campaign parameters through redirects, forms, cross-domain journeys, CRM records, and checkout.
  7. Audit older ads that still spend or drive leads, not only new duplicates.
  8. 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.

Frequently asked questions about dynamic UTM parameters

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 UTMs are better for values that vary by campaign or ad and that the platform can populate reliably. Static values remain better for controlled taxonomy fields such as utm_source and utm_medium. The recommended setup combines both.

Do dynamic UTMs work with GA4?

Yes. GA4 receives the resolved values in the landing-page URL after the advertising platform replaces its macros. Source, medium, campaign, content, and term remain readable in GA4 and other downstream systems.

Do dynamic UTMs replace gclid, fbclid, or other click IDs?

No. Keep provider auto-tagging enabled. Click IDs support provider-specific measurement, while readable UTMs and Maven’s utm_mc_id provide governed cross-platform campaign context. Maven recommends using them together.

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.

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 use Maven to audit coverage and connect paid media to business outcomes.

Sources and references

Jamie Isabel

Founder at Maven

Ready to make client reporting easier to run and defend?

Bring one client report or disputed metric. We'll map the workflow and what Maven can own.

One report, reviewed end to end

Clear ownership across data, QA, and delivery

No pitch deck. No pressure. 20 minutes.

Book a Demo