UTM Guardian
Led growth at cnvrg.io before its acquisition by Intel.
UTM Guardian is a free UTM builder and checker. Check a campaign link against a 0–100 local rule score, then build consistent links using saved source and medium names. Ten platform configurations provide a starting point for campaign naming. No signup or card is required; checking, building and saved naming values stay in your browser. Confirm the destination and actual analytics receipt before relying on the result.
Preview: link shortening and shared workspaces are unavailable. Building, checking, templates, history and CSV export run in your browser.
Verify a link
Build
Platform templates
Each template carries the dynamic macros that auto-fill campaign and ad values at click time, verified against each platform's own documentation. Copy, then set your destination URL.
Double braces required (single-brace breaks); {{site_source_name}} resolves to fb/ig/an/msg/th.
All lowercase, no campaign/adgroup name tokens (IDs only), and {lpurl} is mandatory in the tracking template.
Case-insensitive (Google lowercase tokens also work); {msclkid} carries the click id and network/device tokens are unconfirmed.
Inverted naming: __AID__ is the ad-group id and __CID__ is the ad/creative id, not the other way around.
In the legacy model the ad-level token is the Creative ({{CREATIVE_ID}}) and 'Campaign' is actually the ad-group level.
Ad set is camelCase capital-S ({{adSet.name}}) and case-sensitive; official page was unrenderable so verify on the live UI.
Case-sensitive uppercase and there is no campaign-name, placement, or keyword macro.
{keyword} is not supported (the common mistake) and {creative_id} equals {adid} for standard ads.
No click-time macros at all; only manual static UTM params hand-appended before publishing.
External website destinations are not allowed (Telegram channel/bot links only), so external UTM macros do not apply.
Bulk
One naming convention, reusable files
Move your UTM naming rules between browsers
Export your saved sources and mediums, then give the file to a colleague or import it in another browser. Link history stays out of the export. This is file transfer; there is no shared online workspace.
Inconsistent campaign names can fragment reporting. For example, using Facebook instead of facebook - or ships utm_source=FB_Ads while every other campaign uses fb. Different spellings can create separate values in reports; the size of the split depends on the actual traffic and reporting rules.
Common UTM fields include source, medium, campaign, content and term; Google Analytics also supports additional campaign fields. Use a consistent naming convention, keep personal information out of URLs and verify how the receiving system records the values. A well-formed link is an input to measurement, not proof that a conversion has been collected or attributed.
What UTM Guardian actually does
Paste a link, get a 0-100 score
Paste a campaign URL to check the local naming rules: required values, casing, spaces, duplicate tags, recognizable personal-data patterns and differences from saved source or medium names. Review the issues and suggested correction before using the link. The checker does not inspect your analytics property or certify that every possible issue has been found.
Generate links your history agrees with
The builder reuses saved source and medium names and checks the new URL against the local naming rules. Use the live score, configured platform tokens and bulk builder to prepare consistent links. To reuse naming values in another browser, export the naming-rules file and import it there; link history is excluded.
One consistency engine underneath both
Verify checks an existing URL; Build applies the same local rules while preparing a new one. Saved source and medium values help you reuse a naming convention. Review the generated link and its actual destination before publishing it.
Ten platform configurations for campaign links
Advertising platforms use different dynamic tokens, and support can vary by configuration. An unresolved token can reach the destination as literal text, such as {{campaign.name}}. Use the configured templates as a starting point, then verify the token in the platform and test the resulting destination. The Snapchat configuration is marked for live verification; the tool does not independently certify every platform setup.
Single braces silently break. Meta resolves the token at click time.
Google Ads, Microsoft Ads & Pinterest — use the configured token for each platform; spelling and available fields differ.
The trap: __AID__ is the ad group, __CID__ is the ad.
LinkedIn & Reddit — the configured templates include this campaign-ID token. Check current platform support before use.
Capital-S and case-sensitive - verify on the live UI.
X & Telegram have no reliable macro - static UTMs, by hand.
What separates a clean UTM from a leaky one
Email and email can appear as different values in reports. Normalize naming consistently.
Consistent source names help keep campaign reporting interpretable. The local 0–100 score checks the URL against the tool rules; verify collection and attribution separately.

For campaign-field naming, see GA4's official UTM documentation and Meta's URL parameter guide. Use the platform configuration and actual reporting requirements for your setup. Check the generated destination and the actual analytics receipt before relying on a report; a valid URL does not guarantee collection, parsing or attribution.
fb or facebook - pick one and never deviate.
Keep medium to cpc, social, email, referral - not a free-text field that grows a value every campaign.
Hyphens or underscores, consistently. Spaces become %20. Choose and apply a consistent naming convention; encoding a space does not itself prove that a report has split.
No email address or phone number in a parameter, ever.
Real campaign identity in utm_campaign; let the macro fill utm_content.
Decide the convention once, write it down, and enforce it on every single link - exactly the enforcement UTM Guardian automates, so the discipline does not depend on whoever is building the link at 6pm on a Friday.
Your links never leave your browser
The scoring, the building and the taxonomy of your sources and mediums all stay on your device - nothing sent to a server, no account to create.
Export the saved source and medium naming values, then give the file to a colleague or import it in another browser. The export excludes link history. This is an explicit file transfer, not a synchronized online workspace.
Hosted shortening and workspace synchronization are unavailable in this version. Build and copy full campaign URLs locally. Use the naming-rules file transfer when you need the same values in another browser.
Clean naming helps make campaign records comparable, but a valid link does not establish collection or attribution. Check whether redirects preserve query values, how permitted collection behaves, and which conversion definitions and reporting rules apply.
If the question goes beyond the URL, I personally investigate the agreed measurement sources and customer journey, then implement the approved changes within your client or project scope. Start with the actual evidence and the decision you need to make.
UTM Guardian questions, answered
Is UTM Guardian really free?
Yes. Link checking, building, the ten platform configurations and bulk link preparation are free, with no card or trial. They run locally. Hosted shortening and synchronized workspaces are unavailable in this version; local naming-rules export and import are available. Some visitors later ask me to personally investigate and implement measurement improvements in an agreed paid engagement.
What is a UTM parameter and why does case matter?
UTM parameters add campaign information to a URL. Common fields include utm_source, utm_medium, utm_campaign, utm_content and utm_term; Google Analytics supports additional fields too. Values can be case-sensitive, so use a consistent convention. Different spellings can create separate reporting values, but their size and meaning depend on the actual traffic and receiving system.
How does UTM Guardian keep my links consistent?
The builder uses saved source and medium values and checks new links against the local rules. Reuse the same naming convention, review suggested changes and verify the destination. To move naming values between browsers or colleagues, export and import the naming-rules file; there is no shared online workspace.
Where is my data stored?
Checking, building and saved naming values stay in browser storage without a tool account. The export/import companion transfers source and medium naming values through a file you choose to share; link history is excluded. Hosted shortening and workspace synchronization are unavailable in this version.
Which ad platforms have templates?
The tool includes configurations for Meta, Google Ads, Microsoft Ads, TikTok, LinkedIn, Snapchat, Reddit, Pinterest, X and Telegram Ads. Configurations differ: some include dynamic tokens and others use manual values. Use the actual destination type and supported fields for your platform; the Snapchat configuration is marked for live verification. Test the final destination and analytics receipt before relying on a campaign report.
What happens if I use the wrong macro for an ad platform?
An unsupported or unresolved token can appear as literal text rather than the intended campaign value. Syntax and available fields differ by platform. Check the configured token against the current platform setup and test the generated destination; a successful local URL check does not certify token expansion by the advertising platform.
What naming rules should I follow for UTM values?
Write down a consistent convention for source, medium and campaign values, using lowercase where appropriate for your naming rules. Use a controlled medium set and distinct source values for the platforms you need to report. Keep personal information out of URLs. Apply supported dynamic tokens only where relevant, and test the generated destination and recorded values. Encoded spaces alone do not prove report fragmentation.
Check one link, then build the next one clean
Paste a campaign link into the checker and review its local rule score and suggested changes. After editing, test the actual destination and analytics receipt. A score of 100 means the link passed these local checks, not that the campaign measurement is complete.
Explore the Free Marketing Tools hub
