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).