UTM Builder client-side

No tracking, no server calls. Builds URLs using URL + URLSearchParams.

1) Single URL

2) Bulk URLs

Bulk mode appends/overwrites: utm_source, utm_medium, utm_campaign, utm_term, utm_content, plus any “extra params”.

Blank lines are ignored. Invalid URLs are returned as #ERROR.
Tip: keep campaigns consistent. If you need enforced naming rules, add them to your own internal playbook (or pay for a stricter “campaign linter” export).