Affiliate Link Tracker Builder: Add SubIDs, Tracking IDs and UTM Tags in Bulk
Add SubIDs, Amazon Tracking IDs and UTM tags to affiliate links in bulk without breaking them. Awin, Impact, CJ, Rakuten and more. Free, runs in your browser. Paste your affiliate links one per line, choose your network, and this tool adds the right tracking parameter to each one. It handles Amazon Tracking IDs, SubIDs for networks such as Awin, Impact, ShareASale, CJ and Rakuten, and optional UTM tags, in bulk and without breaking the link you started with. It runs entirely in your browser, so your links and affiliate IDs are never uploaded.
Why SubIDs are worth adding
If you promote the same product from a review, a newsletter and a video description, your network dashboard normally shows one lump of clicks and sales. A SubID is a label you attach to the link so the report shows which placement produced them. It's the difference between knowing an offer converted and knowing that the March newsletter converted it.
Every network names this parameter differently, which is where hand-editing goes wrong. These are the names the tool uses, taken from public network documentation and third-party references:
| Network | Tracking parameter | Notes |
|---|---|---|
| Awin | clickref, clickref2 to clickref6 | Up to six slots. A limit of 50 characters each is documented. |
| Impact | subId1 to subId5 | Limits of 64, 64 and 32 characters are documented for the first three. |
| ShareASale | afftrack | |
| CJ | sid | Some CJ references use the name shopperId, so confirm which your account uses. |
| Rakuten Advertising | u1 | A 72-character limit is documented. |
| Partnerize, Webgains | clickref | |
| Tradedoubler | epi | |
| eBay Partner Network | customid | |
| ClickBank | tid | |
| Pepperjam / Ascend | sid | |
| Skimlinks | xcust | |
| TUNE / HasOffers | aff_sub to aff_sub5 |
Networks change these details, so confirm the name in your dashboard before you publish a batch. If your network isn't listed, pick "Other network" and type its parameter name (or several).
Amazon works differently
Amazon Associates doesn't support SubIDs. You track placements by creating separate Tracking IDs in Associates Central and putting the right one in each link's tag parameter. In Amazon mode the tool:
- shortens messy product URLs to the clean
/dp/ASINform and adds yourtag; - accepts bare ASINs and builds the link for the store you pick;
- lets you keep a different ID for each Amazon store, for example one line per store such as
co.uk=yoursite-21; - accepts a Tracking ID per row, so one batch can use several IDs;
- strips search and session parameters (
ref,pd_rd_*,qid,cridand similar) if you'd rather keep the original URL; - refuses to build a link from a Tracking ID containing characters that would break it.
Amazon short links (amzn.to, a.co) hide the product behind a redirect the tool can't read from your browser, so it skips those and tells you to paste the full product URL instead.
SubID or UTM tags?
UTM tags (utm_source, utm_medium, utm_campaign and so on) are read by the analytics on the page a visitor lands on. On a merchant's website you can't see those numbers, so for outbound affiliate links the SubID is what appears in your network reports. UTM tags earn their place on links to your own pages, or where a merchant has told you it reads them. The tool supports both, with lowercase enforcement, spaces turned into hyphens or underscores, and a reminder if you leave out source, medium or campaign. UTM tags aren't added to Amazon links.
How it edits links without breaking them
Most quick link editors rebuild the whole query string, which quietly re-encodes every existing parameter. On a network deep link that can be enough to stop it working. This tool edits the address as text instead:
- Existing parameters stay exactly as they were, byte for byte, including encoded destinations, plus signs and semicolons.
- The
#fragmentstays at the end, after the new parameters, where it belongs. - Duplicates are handled deliberately. By default your value replaces an existing one of the same name (and collapses repeated copies to one). Or choose "keep the existing one" and it warns you that your value wasn't added.
- Values are cleaned. SubIDs keep only letters, numbers, hyphens and underscores, accents are folded (
Cafébecomescafe) and over-long values are shortened to the documented network limit with a warning. - Risky links are flagged. A link with an un-encoded web address inside it, or a path-style CJ link that carries the SubID in the path, gets a warning instead of a quietly wrong result.
- One bad line never blocks the rest. Each row gets its own status: ready, check, skipped or error.
Generating SubIDs automatically
Instead of typing a value for every link, write a pattern. {slug} uses the last part of the destination address, {host} its website, {label} a label you supply, {n} the row number ({n:3} pads it, giving 001), and {date}, {month} and {year} the current date. For example, newsletter-{month}-{slug} becomes newsletter-202609-red-shoe. Where your link is a network deep link, the tool reads the merchant page from inside it (from parameters such as ued or u) so {slug} reflects the product, not the tracking domain.
Bulk from a spreadsheet
You can drop in a CSV or TSV file and choose which column holds the link, which the label and which the SubID or Tracking ID. Or type lines in the form link | label | SubID. If the sheet is a messy export, tidy it first with the CSV cleaner, which trims whitespace, fixes encoding and removes duplicate rows. If your links are scattered through a draft or a chat export instead, the Bulk Email & Link Extractor pulls them into a clean list to paste here.
Starting from destination pages
If you only have merchant product URLs, switch to "Destination pages" and supply a link template with {URL_ENCODED} where the destination goes and {SUBID} where the tracking value goes. There are starter templates for Awin, CJ, Rakuten, Impact, ShareASale, Tradedoubler and Partnerize. Replace the capitalised placeholders with your own IDs (the tool warns while any remain), and copy the exact format from your network's deep-link tool where you can. If you want to see what encoding does to a single address, the Text encoder / decoder handles URL encoding by hand.
Getting the links out
Choose a plain list, a Markdown list, HTML anchors (with optional rel="sponsored" or rel="sponsored nofollow"), CSV or JSON. The list formats include only finished links, while CSV and JSON keep every row with its status and notes, and spreadsheet formula characters in text cells are neutralised. If a link is going on a flyer or packaging, turn the finished link into a scannable code with the QR code generator. Links longer than 2,048 characters are flagged, because many browsers and platforms cut off around that length.
Finished links are only half the job in most countries, because they usually need a disclosure next to them. The Affiliate Disclosure Snippet Injector adds those.
What it can't do
It runs in your browser with no server, so it can't shorten or cloak links, count clicks, follow redirects, or check whether a link still works. The upside is that nobody else ever sees your affiliate IDs.
Questions:
Will it break my Awin or Impact deep link?
It leaves everything already in the link untouched and only adds or replaces the one tracking parameter you asked for. Always click a sample link from each batch and confirm the SubID appears in your network's reporting.
My link already has a clickref. What happens?
By default it's replaced with your new value, and the row shows what was replaced. Switch to "Keep the existing one" if you'd rather not overwrite it.
Are my links or IDs stored?
No. Your pasted links are never saved or uploaded. Only your settings and any profiles you choose to save are remembered in this browser.
Can I keep separate settings for different networks?
Yes. Save a profile with your network, IDs, patterns and UTM settings, and load it next time.
More Text & Dev tools
- AI Prompt OrganizerSave, tag, and reuse text prompts — stored locally in your browser only.
- Base32 encoder / decoderBase32 encode/decode, alongside the existing Base64 tool.
- Base64 → File ReconstructorPaste Base64 or a data URI and get the original file back — any type, detected from its real bytes. Repairs damaged input, extracts every embedded file from JSON/CSS/HTML, previews and inspects the result, and encodes any file to Base64 too.
- Bulk Email & Link ExtractorPull only valid email addresses or URLs out of a messy pasted block of scraped text or chat logs.
- Bulk Slug GeneratorTurn a multi-line list of titles into URL-safe slugs, all at once.
- Case converterUPPER, lower, Title, Sentence, camelCase, PascalCase, snake_case, CONSTANT_CASE, kebab-case, dot.case.