UTM campaign link builder
Paste your page URL and enter the campaign source, medium and name to get a tracking link ready to copy. The URL is validated, its existing parameters and #fragment are kept, and Arabic values and special characters are encoded safely. It is a UTM builder for social, email and paid campaigns.
Loading the tool…
Processing and privacy: The result is calculated inside your browser and your data is not sent to any server.
How to use it
- Paste the full base URL. It must start with https:// or http://.
- Enter the campaign source (required), then the medium and campaign name (expected by convention), and add term, content and ID if you need them.
- If the URL already contains utm_ parameters, choose whether to replace them with your values or keep them.
- Optionally turn on lowercase values or space replacement so your naming stays consistent in reports.
- Copy the final URL and check the parameter table to confirm each value.
Example
The URL https://example.com/products/oud?ref=home#reviews with source instagram, medium social, campaign عروض رمضان 2026 and content story-1 gives a link that starts with https://example.com/products/oud?ref=home then &utm_source=instagram then &utm_medium=social then &utm_campaign= followed by the encoded campaign name, then &utm_content=story-1 and finally #reviews.
The ref=home parameter stays where it was, #reviews stays at the end, the space in the campaign name is written as + and each Arabic letter as two bytes such as %D8%B9. Analytics tools turn the name back into عروض رمضان 2026 when they read it.
Limits and caveats
- Only the campaign source, utm_source, is strictly required. utm_medium and utm_campaign are expected by convention; without them analytics reports may show “(not set)”, so the tool warns you but does not stop you.
- The tool does not check that the page exists or works, and it does not open or shorten the link. It only builds the URL text.
- UTM values are case-sensitive in most analytics tools: Email and email are two different campaigns. The lowercase option is off by default and does not affect Arabic letters.
- Values are encoded with URLSearchParams, so a space is written as + and Arabic letters as %XX sequences. The link looks long but is correct, and some platforms display it with the Arabic letters.
- Parameters already in the URL keep their text as the browser understands it; they are not re-encoded. If the #fragment contains a ? (as in some single-page apps), the UTM parameters are added before the # and a note says so.
- The base URL can be up to 8,000 characters, and a note appears when the final URL is longer than 2,000 characters because some platforms cut it.
Questions about this tool
Which UTM parameters are required?
utm_source is required, and by convention utm_medium and utm_campaign always go with it. utm_term (the paid keyword), utm_content (to tell two ads or links apart) and utm_id (the campaign ID) are optional.
What happens if my URL already has a utm_source?
The tool shows the existing parameters and gives you two choices. “Replace existing”, the default, puts your value in place of the old one so the parameter is not duplicated. “Keep existing” leaves the old value and ignores yours for that parameter. Either way, the table shows what happened to each parameter.
Is my URL stored or sent anywhere?
No. The link is built inside your browser with the browser’s URL API. It is not stored, not sent to any server, and not opened by the tool.
How do I build a UTM link for a campaign?
Paste the page URL and enter the source, medium and campaign name, and the final link is ready to copy. https://example.com/ with source newsletter, medium email and campaign spring_sale becomes https://example.com/?utm_source=newsletter&utm_medium=email&utm_campaign=spring_sale. Use that link in your ad or message, and its visits show up in your analytics under those values.
What is the difference between utm_source, utm_medium and utm_campaign?
utm_source says where the visit came from (such as newsletter), utm_medium says what kind of channel it was (such as email, social or cpc), and utm_campaign names the promotion (such as spring_sale). In short: source is “where from”, medium is “how” and campaign is “which promotion”. Write the values the same way every time, because Email and email count as two different values.
