Start with https://example.com/products?sort=price&tag=summer#details. Use newsletter, email, summer sale and hero link for source, medium, campaign and content.
Expected final URL
The result is https://example.com/products?sort=price&tag=summer&utm_source=newsletter&utm_medium=email&utm_campaign=summer+sale&utm_content=hero+link#details. The two original pairs appear first without a spelling change. Four new pairs follow in fixed order, spaces use plus signs, and #details remains last.
Expected evidence
UTMLink reports two preserved pairs, zero replaced UTM occurrences and four added pairs. Fragment says preserved. Term and campaign ID are absent rather than emitted with empty values. This evidence proves the local transformation rule only; it does not visit example.com or test any analytics property.
Reproduce and inspect the result
Load the reviewed example in UTMLink or type the values exactly as shown. Build the link and compare each preserved segment, campaign pair and fragment with the expected line character by character. The evidence counters explain what happened without sending the address anywhere: preserved counts unrelated raw segments, replaced counts every lower-case owned UTM occurrence removed, and added counts the final non-empty campaign fields. Change one optional value, build again and verify that stale output disappears before the new result is shown. Finally clear the form and confirm that no history returns after a reload, because this first release deliberately stores neither entered nor generated links.