Marketing and SEO workbench

UTM builder

Build, normalize, decode, and bulk-generate campaign URLs with consistent UTM parameters.

Free, no accountRuns in your browserUpdated

Loading workbench…

This free UTM builder creates campaign URLs for GA4 and other analytics systems that read standard UTM parameters. Build one URL or a batch of up to 100, apply a campaign preset, normalize naming, or decode the first tagged URL back into editable fields.

UTM builder covers tracking newsletter links, separating paid campaign sources, and measuring partner referrals. Its controls stay on one page, with status and validation messages beside the work area.

Your input and generated result are processed in your browser and are not sent to a PWRKIT processing server. If the input contains sensitive information, follow your organization’s rules for online utilities.

Before using the result, confirm that one or more destination URLs and consistent campaign details is complete and that tagged campaign URLs ready to review, copy, or export matches the destination format. Keep the original until you have checked the output in the application or context where it will be used.

The related marketing and seo tools cover the next common tasks without changing your original input.

  1. 01

    Provide one or more destination URLs and consistent campaign details. The tool checks the input before processing it.

  2. 02

    Adjust the available utm builder settings for the result you need.

  3. 03

    Run UTM builder. If the input is incomplete, the workbench explains what to correct.

  4. 04

    Check tagged campaign URLs ready to review, copy, or export, then copy or download the result. Your original input stays unchanged.

  • tracking newsletter links
  • separating paid campaign sources
  • measuring partner referrals
Is UTM builder free to use?

Yes. UTM builder is available without an account or subscription.

Does UTM builder upload my input?

UTM builder processes your input in your browser. Your entered content and generated result are not sent to a PWRKIT processing server.

Does UTM builder change the original?

No. UTM builder leaves the source untouched. Copy or download the generated result as a separate output.

What should I check after using UTM builder?

Confirm that tagged campaign URLs ready to review, copy, or export matches the intended format and context. Keep the original until the result has been verified.

UTM builder accepts from one through 100 destination URLs, with one absolute URL per line, and adds populated campaign fields through the browser URL and URLSearchParams APIs. Campaign source, medium, and name are required. Campaign term and content are optional. The generated keys are utm_source, utm_medium, utm_campaign, utm_term, and utm_content. Empty optional values are omitted, and the result contains one finished URL per line.

The destination defaults to https://example.com and every line must be accepted by the URL constructor. Existing query parameters are preserved. If a destination already contains one of the five UTM keys, the builder replaces that key. A fragment remains attached after the query string. The optional normalization control lowercases campaign values and replaces punctuation or spaces with single hyphens.

Source identifies the specific origin you want reported, such as newsletter, partner-name, or a publication. Medium identifies the channel class used by your measurement convention, such as email, paid-social, or referral. Campaign names the coordinated initiative, promotion, or release. These meanings are organizational choices. The builder checks only that all three fields contain a value; it does not enforce a taxonomy, case style, allowed vocabulary, or analytics-platform recommendation.

A newsletter link might use source=weekly-digest, medium=email, and campaign=autumn-tools. A partner link could use the partner's stable identifier as source, referral as medium, and the same campaign name when both belong to one initiative. Avoid switching between Email, email, e-mail, and newsletter for the same medium unless separate reporting is intentional. Many analytics systems treat different strings as different values. Maintain a shared naming sheet and copy approved values rather than inventing them during each link build.

Campaign term is often used for a paid-search keyword or another documented targeting dimension. Campaign content can distinguish creative, placement, button, or link variants inside the same source, medium, and campaign. The builder does not assign those meanings or require the fields. Use an optional parameter only when someone has defined how it will answer a reporting question. Extra dimensions create fragmented rows when values are inconsistent or too specific.

For an email with a hero button and a footer link to the same destination, content values hero-button and footer-link can separate clicks while the first three fields remain equal. If there is only one placement, omitting content may be clearer. Do not place personal identifiers, recipient email addresses, or sensitive audience attributes into UTM values. Query parameters travel in the URL and can appear in browser history, server logs, analytics systems, screenshots, copied messages, and referrer information.

A destination such as https://example.com/search?q=pdf keeps q=pdf and receives the campaign parameters alongside it. The URL API chooses the correct question mark and ampersand placement. If utm_source already exists, the new source replaces it while unrelated keys remain. Review those original parameters before sharing. They may include session data, preview flags, duplicate attribution tags, or values that should not be distributed publicly.

A fragment such as #pricing remains at the end of the generated URL. Fragments are normally interpreted by the browser and are not sent in the HTTP request, though client-side applications can read them. Confirm that the destination still scrolls or routes correctly after query parameters are added. The builder does not load the finished URL, test client-side routing, or compare canonical behavior. Open the result in a safe test session and verify both landing content and recorded campaign fields.

Spaces and reserved characters in entered values are serialized by URLSearchParams. Do not percent-encode the fields before entering them unless the literal percent sequence is truly part of the desired value. Pre-encoding can produce double encoding, where a percent sign becomes %25 and the analytics platform receives encoded-looking text instead of the intended phrase. Enter the plain approved value, then inspect how the completed URL decodes in the receiving application.

Letter case often matters for reporting groups. Autumn-Launch and autumn-launch can become separate campaign values when normalization is off. Turn normalization on to lowercase each value, replace punctuation and spaces with one hyphen, and remove leading or trailing hyphens. Keep it off when an established naming policy requires exact case or another separator.

The browser constructs the result without sending the destination or campaign fields to a PWRKIT processing server. The page does not visit the output or confirm that analytics receives it. Copying places the URLs on the system clipboard. Reset restores default form values and clears the displayed result. Batch generation accepts up to 100 pasted destinations, but there is no saved campaign library, account connection, shortening service, governance approval, or history.

A locally built URL becomes observable when it is pasted, sent, opened, logged, or published. UTM values should describe campaigns, not people. Avoid secrets, customer records, internal-only labels, or unpublished data that policy forbids in URLs. Browser extensions and clipboard managers can also access data according to their permissions. The page's analytics uses bounded field and output categories rather than the complete generated link, but that does not change the exposure of a link after you distribute it.

The builder does not configure an analytics property, verify tag installation, test consent behavior, or confirm that a session is attributed to the supplied values. Redirects may remove parameters. Privacy tools, browsers, applications, and link wrappers may alter URLs. Users can copy a clean destination, and cross-device journeys can break continuity. Analytics platforms apply their own processing and channel rules. Treat the generated URL as one input to measurement, followed by live testing and reporting validation.

The tool does not create short links, QR codes, campaign IDs, click events, or server-side records. It does not warn about excessive URL length or destination systems that reject unknown parameters. It cannot determine whether term and content are appropriate for a specific platform. Existing non-UTM tracking keys remain untouched and can interact with attribution elsewhere. Review the whole measurement design, including consent, redirects, landing-page tags, channel definitions, and retention policy, before drawing conclusions from campaign reports.

If the builder reports an invalid URL, include an absolute scheme such as https:// and check for spaces or damaged characters in the hostname. If it requests source, medium, and campaign, fill all three required fields with nonempty values. If an existing UTM value disappears, remember that the builder replaces the same key. If values look double encoded, return to plain unencoded field text and rebuild once. Preserve the original destination while testing so unrelated parameters are not lost.

If the link opens but reports no campaign traffic, test a new visit in an approved debug environment and inspect the request, redirects, consent state, tag firing, and analytics ingestion. Confirm that the browser reaches the intended final page with UTM parameters available at the point where measurement reads them. Check report date range, filters, processing delay, and exact capitalization. This page cannot see those systems. A correct URL string narrows the investigation but does not establish that downstream collection worked.

Define allowed values before links are distributed. A practical record lists each parameter, its meaning, capitalization rule, separator rule, owner, and examples. Reserve campaign names before launch so email, paid media, partners, QR codes, and social placements use the same initiative identifier. Give every content value a documented placement meaning. This prevents one team from using source for a platform while another uses it for an individual publication, producing reports that cannot be compared without manual cleanup.

Maintain a link register containing the clean destination, generated URL, placement, creative version, approval date, and person responsible for the landing page. Test from that register rather than rebuilding links by memory. When a campaign ends, keep enough history to interpret reports and remove links that expose expired or unsafe destinations. If taxonomy changes, start a documented new convention instead of silently renaming past data. Measurement remains interpretable when naming decisions and link versions are preserved.

Audit reports for unexpected case variants, blank dimensions, self-referrals, duplicated campaign names, and sources that do not match the register. Investigate collection and redirects before merging values in reporting. A cleanup can hide a production defect if the same malformed link is still circulating. Feed confirmed issues back into presets, partner instructions, and approval checks. The builder creates strings from entered values; governance keeps those strings consistent across people and time.