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.
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.
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
| 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 values that change from one campaign entity to the next.
| 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 | Dynamic when supported | Identifies the campaign that served the click |
| utm_content | Dynamic when supported | Carries the relevant ad, creative, or grouping |
| utm_term | Dynamic when supported | Adds keyword or governed secondary context |
| utm_mc_id | Dynamic | Preserves 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.
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.
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_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.
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 names for readability and IDs 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.
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
- Google Analytics Help: URL builders and campaign parameter guidance
- 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
- Pinterest Business Help: Third-party and dynamic tracking

Jamie Isabel
Founder at Maven
