English

Developer tools · URL encoder & decoder

Why unencoded & and = in UTM values silently corrupt your campaign reports

· Why it matters

url-encoding utm-tracking analytics

UTM campaign parameter split at ampersand into multiple analytics parameters
Original ToolAcre vector illustration

A campaign name containing & or = looks fine in the link but is split into two parameters by every analytics tool. This post shows what happens, how to encode values safely, and how to check a link before it ships.

When UTM parameters split at unencoded ampersand characters

A campaign name containing & or = looks fine when typed in a link, but every analytics system splits it at the ampersand and treats the remainder as a new parameter. Spring&Summer becomes two separate campaign values in reports. The equals sign inside a value creates a similar break: utm_campaign=2024=best silently corrupts the key-value pair. These characters are reserved in query syntax for structure, not content, so every tool parsing URLs reads them as delimiters.

The URL parser has no way to know you meant them as data. Encoding them as %26 and %3D preserves them as literal characters inside values. Without encoding, your analytics dashboard receives incomplete or corrupted campaign names and splits traffic across unintended segments. A single shared link can generate half a dozen phantom campaigns if the name contains multiple special characters.

How query strings are parsed — & separates pairs and = separates key from value, with no escaping unless you provide it

How query strings parse reveals why ampersand and equals are dangerous in values. The ampersand separates independent key=value pairs: ?utm_source=email&utm_campaign=sale means two separate parameters. Inside a value, unescaped ampersand ends current pair and starts new one. The equals sign separates keys from values: if utm_campaign=Q3&2024, parser sees utm_campaign=Q3 and then orphan "2024" parameter with no value.

This parsing happens at multiple layers: the browser reads the URL, the server receives the request, and your analytics platform decodes the query string again. Each layer applies same rules and reaches same conclusion about where parameters begin and end. You cannot warn downstream consumers that your ampersand is special; URL structure is deterministic and unambiguous.

Which characters need encoding in a UTM value — &, =, #, ?, spaces and non-ASCII, and why # is the sneakiest

Characters requiring encoding in UTM values include ampersand, equals, hash, question mark, spaces and any non-ASCII letters or symbols. The hash character is sneakiest: #anything is treated as fragment identifier, which browser never sends to server at all. Campaign name ending with hash loses everything after it before request even leaves your browser. Spaces must become %20 for same structural reason: not valid in URLs without encoding.

Non-ASCII like accented e or Chinese characters encoded as UTF-8 bytes and then percent-escaped: accented e becomes %C3%A9. Build your links carefully or use form that encodes for you. Tools allowing you to paste campaign name and generate full link usually handle this step automatically, but spreadsheet formula or manual concatenation makes it your responsibility.

Worked example: encoding 'Q3 Sale & Launch' as utm_campaign — before and after, and how the report reads each version

Worked example: encoding "Q3 Sale & Launch" as utm_campaign shows problem clearly. Without encoding, URL ends at ampersand: ?utm_campaign=Q3 Sale &. Rest disappears or becomes malformed new parameter. Encoded properly, %26 replaces ampersand: ?utm_campaign=Q3%20Sale%20%26%20Launch. Space is also encoded as %20. Now entire string arrives intact at your analytics platform and reports as single campaign.

Paste unencoded version and encoded version into separate URL decoders and watch how they differ. Encoded form decodes back to original text with all special characters preserved. Use URL encoder to verify any UTM link before sharing it with team members or publishing it in email campaigns or social media platforms.

Spreadsheet formulas and link builders — where encoding happens or fails in common workflows, described generally

Spreadsheet formulas and custom link builders often fail because they concatenate strings without encoding. A CONCATENATE formula building URL might produce perfectly valid-looking text that breaks when opened as link. Encoding must happen inside formula, not after. Many link-shortening services and email tracking platforms encode for you automatically, so test generated link rather than assuming manual construction is safe.

Drag-and-drop campaign builders in Google Analytics, HubSpot and similar platforms handle encoding internally. If you are building links by hand in spreadsheet or pasting them in Slack, assume they will not encode automatically. Run final URL through decoder to verify all special characters are represented as %XX before distributing link.

Common mistakes — encoding the whole URL, and mixing + and %20 so one campaign becomes two

Common mistakes include encoding entire URL, which breaks its structure by encoding colons and slashes in https://. Another error mixes plus and %20 for spaces: some systems use plus (legacy form encoding) while modern standard uses %20. If one campaign value uses plus and another uses %20, they appear as different campaigns even though representing same text. Stay consistent and use %20 for URL components.

Double-encoding also happens when link builder encodes once and you encode again, producing %2526 instead of %26. After decoding once, you get %26 instead of ampersand. Character becomes literal percent-two-six string rather than ampersand. Check intermediate steps in your build process to ensure encoding happens exactly once per value only.

What this does not cover — analytics platform configuration and attribution models

Analytics configuration and attribution modeling depend entirely on getting consistent accurate campaign data. If your UTM values arrive garbled or split, reports cannot match campaigns correctly and multi-touch attribution models fail to assign credit accurately. Single encoding error propagates through every report that uses parameter, distorting month-to-month or campaign-to-campaign comparisons significantly.

Test your campaign links before launch completely. Paste them into URL decoder and confirm every special character in campaign name is encoded properly. URL encoder shows both encoded and decoded forms side by side, so you can verify encoding happened and decoding recovers original text exactly.

Takeaway: encode every value once — how the URL encoder & decoder produces a safe query value from any campaign name

The takeaway is simple: encode every value once using proper percent-encoding rules. Ampersand or equals sign inside UTM parameter must become %26 or %3D before URL is finalized and published. URL encoder in single-value mode does this encoding automatically and reliably for you. Paste your campaign name, select Value mode, copy encoded result into your link template.

Every analytics tool processing URLs applies same parsing rules. There is no way around it and no tool that can guess your intent or intentions. Encoding step is not optional; it is only way to preserve special characters inside query string values. Verify your links work as expected before sharing them with stakeholders or publishing in campaigns.