UTM or Sub-ID? Know Which Email Made the Sale
The 10-second rule for labelling affiliate links and the exact tracking field for every major network. Label your links right here on the page, or install Link Labeler, the free skill that makes your AI label every link it writes.
Paste a link: the label goes into the slot that network reads.
Runs in your browser. Nothing is sent or stored.
You ask your AI
You get
…that's why I switched. See how it works
…
Grab it before the price goes up →
P.S. My bonus is on the page too: see it here
Plus a link map for your reports
| Label | Final link |
|---|---|
| email-mail3-top | …/o2/a/YOURCODE/0/email-mail3-top |
| email-mail3-btn | …/o2/a/YOURCODE/0/email-mail3-btn |
| email-mail3-ps | …/o2/a/YOURCODE/0/email-mail3-ps |
Short answer: if a link goes straight to an affiliate network, put your label into the network's own sub-ID field (WarriorPlus path segment, JVZoo and ClickBank tid, Digistore24 campaign key, Awin clickref …). If it goes to your own page or click tracker, use UTM parameters. Networks report on their own field, not on UTMs.
What a link label is, and why "12 sales" isn't enough
A link label (sub-ID, tracking ID, tid, clickref, campaign key: every network has its own name) is a short tag inside your link. The network or your analytics stores it with each click and sale. Without it, your report says 12 sales. With it, it says 7 from email 3's P.S., 3 from the YouTube description, 2 from the bonus page button.
That's the difference between "send more emails" and "write more P.S. links like that one, and drop the email that sold nothing".
UTM or the network's field? The 10-second rule
Ask one question per link: who reports on this click? Then put the label where that report reads it.
Link goes straight to a network
Hop link, /o2/a/, /c/, hop.clickbank.net, /redir/ … → the network's own sub-ID field. That's what its stats show.
Link goes to your page or tracker
Your bonus page, review, bridge page, Simple Click Tracker, ClickMagick, Bitly … → UTM parameters. And the buy button on that page gets the network field (A).
Amazon
Don't touch the link: no parameters, no redirect, no cloaking. Use a separate tracking ID per channel from Associates Central.
No sub-ID available
ThriveCart, Gumroad, Teachable, Kajabi and similar → send traffic through your own page or tracker with UTMs. The platform itself can't split sales by source.
Using both? Keep the same label in both places: utm_content=mail3-ps on the link to your page, email-mail3-ps in the network field on the buy button. Then your two reports line up.
Where each affiliate network reads the label
Checked against each network's help docs in October 2026. Where no official doc exists, it says so: make one test click before a big send.
| Network | Label slot | Example | Limits / notes |
|---|---|---|---|
| WarriorPlus | Extra path segment | warriorplus.com/o2/a/CODE/0/email-mail3-ps | No query parameters. Shows per tracking code in Affiliate › Stats. |
| JVZoo | tid | jvzoo.com/c/AFF/PRODUCT?tid=email-mail3-ps | Widely used, no current official doc found: test once. |
| ClickBank | tid (+ campaign, traffic_source, aff_sub1–5) | …&tid=email_mail3_ps | ≤100 chars, lowercase, digits, underscores. No dashes. Source |
| Digistore24 | Campaign key (path) | …/redir/PRODUCT/AFF/email-mail3-ps | ≤127 chars, no umlauts. ?cam= only on order-form links. Source |
| Impact | subId1–3, sharedid | …?subId1=email-mail3-ps&subId2=launch | ≤255 chars each. |
| CJ | sid | …?sid=email-mail3-ps | Use the SID field in CJ's link generator if shown. |
| Awin (incl. ex-ShareASale) | clickref, clickref2–6 | …&clickref=email-mail3-ps | Reports show ~50 chars. ShareASale programs now run on Awin. |
| Rakuten | u1 | …&u1=emailmail3ps | ≤72 chars, letters and digits only. |
| PartnerStack | sid, sid2–3 | …?sid=email-mail3-ps | ≤255 chars. |
| Systeme.io | tk | …?sa=AFFID&tk=email-mail3-ps | Added after your affiliate ID. |
| Amazon | Tracking ID (tag=) | tag=yourid-email-20 | Create extra IDs in Associates Central. Never edit or redirect. Source |
Network names are trademarks of their owners. This guide is independent and not endorsed by any of them.
A naming scheme you'll still understand in six months
Use channel-asset-position, lowercase, max 32 characters. Same placement, same label; two placements never share one.
| Content | Channel | Asset | Positions |
|---|---|---|---|
email | mail1, mail2 … | top mid btn ps sig | |
| Page / article | page, blog | review, bonus … | hero mid table btn bottom sidebar |
| PDF / ebook | pdf | leadmagnet … | p1 p2 … cta |
| Video | yt | howto, review … | desc pinned card |
| Social | fb ig tiktok x li pin | oct9 … | post story bio comment |
Adapt the characters to the slot: ClickBank wants email_mail3_ps, Rakuten emailmail3ps. Put the campaign into the network's second field if it has one (W+ second path segment, ClickBank campaign, Impact subId2, Awin clickref2).
Example: one email, before and after
Before https://warriorplus.com/o2/a/YOURCODE/0 (top link) https://warriorplus.com/o2/a/YOURCODE/0 (button) https://warriorplus.com/o2/a/YOURCODE/0 (P.S.) After https://warriorplus.com/o2/a/YOURCODE/0/email-mail3-top https://warriorplus.com/o2/a/YOURCODE/0/email-mail3-btn https://warriorplus.com/o2/a/YOURCODE/0/email-mail3-ps Link to your own bonus page (UTMs) https://yoursite.com/bonus/?utm_source=newsletter&utm_medium=email&utm_campaign=launch&utm_content=mail3-ps
Two weeks later, the W+ stats say which of the three links sold, and Google Analytics says how many bonus-page visitors came from that P.S.
UTM values Google Analytics actually understands
GA4 sorts traffic into channels by utm_medium. Use one of these, and invented values like pdf or link stop ending up in "Unassigned":
| Parameter | Use | Example |
|---|---|---|
utm_source | Where exactly | newsletter, youtube, facebook, leadmagnet-pdf |
utm_medium | Type of traffic | email social paid_social cpc display affiliate referral sms |
utm_campaign | The promotion | launch, blackfriday |
utm_content | Asset + position | mail3-ps, review-btn |
Sources: Google Analytics Help, URL builders and default channel group.
6 mistakes that erase your source
UTMs on a hop link
You add utm_content to a W+ or ClickBank link and expect it in the network's stats. It won't be there. Use the network field.
The bonus-page button
A visitor from email 3 lands on your bonus page and clicks "buy". Unless the page passes the label on, the sale shows up unlabelled. Give each button its own label, or pass the incoming one through.
Raw links in PDFs and videos
A lead magnet with a raw affiliate link earns for years, and you can never change or label it again. Use a short link on your own domain (not for Amazon).
Dashes in ClickBank tids
email-mail3 fails in ClickBank's tid. Underscores only.
One label for everything
The same link with the same label in five places tells you nothing. One placement, one label.
Touching Amazon links
Redirects, cloaking or extra parameters on Amazon links break the rules. Separate sources with tracking IDs only.
Let your AI do it: install Link Labeler
Link Labeler applies everything above automatically, every time your AI writes content with links. It asks you once for a campaign name, then labels every link and adds a link map.
Option 1: Agent Skill (switches on by itself)
- Download the ZIPlink-labeler.zip: a standard SKILL.md folder with the network reference.
- Add it to your agentClaude app: Settings › Capabilities › Skills › upload the ZIP. Claude Code:
~/.claude/skills/. Codex:~/.codex/skills/. OpenClaw:~/.openclaw/skills/. Hermes Agent:~/.hermes/skills/. Any other agent that reads SKILL.md: its skills folder. - Work as usual"Write my 5 launch emails for [affiliate link]", "add my link to this review", "write 3 posts for Facebook". Labels and link map come with it.
Option 2: PDF for any AI chat
- Download the PDFLink Labeler for any AI chat, 3 pages.
- Upload it to your chatChatGPT, Gemini, Claude, Copilot, Perplexity … and type: "Use Link Labeler for everything we write in this chat."
- Make it permanentAdd the PDF as knowledge to a ChatGPT Project or custom GPT, a Gemini Gem or a Claude Project.
Labels need a place to be counted
Labels show you where sales came from. A link tracker on your own domain counts every click by label, and lets you re-point a link in an old email, PDF or video without touching it again. Simple Click Tracker Pro launches October 9, and my bonus package covers WordPress, PDFs and AI agents.
Free Gift: The No-Fluff Affiliate Tracking Guide (2026)
ClickerVolt vs Simple Click Tracker Pro vs ClickMagick, side by side with their real 2026 prices. Which one fits you, and the step-by-step setup with WarriorPlus. 7 pages, no fluff.
FAQ: affiliate link tracking
What is a sub-ID in affiliate marketing?
A short label you add to your affiliate link (also called tracking ID, tid, clickref or campaign key). The network stores it with every click and sale, so its report shows which email, page or post sent the buyer.
Should I use UTM parameters or the network's sub-ID?
Ask who reports on the click. Link goes straight to a network → its own sub-ID field. Link goes to your own page, bridge page or tracker → UTMs, and the buy link on that page gets the sub-ID.
Do UTM parameters show up in WarriorPlus, ClickBank or JVZoo reports?
None of them document UTM reporting for affiliates. WarriorPlus separates traffic by the tracking code in the link path, ClickBank by tid and its tracking parameters, JVZoo by tid. Use those for network reports and UTMs for your own analytics.
Where do I put the tracking ID on a WarriorPlus link?
As an extra path segment after the page code: warriorplus.com/o2/a/YOURCODE/0/email-mail3-ps. No query parameters.
Why does my ClickBank tid not track?
Most often a dash. ClickBank's tid allows up to 100 characters: lowercase letters, numbers and underscores only.
Can I add UTMs or a redirect to Amazon affiliate links?
Don't. Amazon's policies don't allow modified, redirected or cloaked links. Create extra tracking IDs in Associates Central and use one per channel.
Which AI tools does Link Labeler work with?
The agent skill works with agents that load SKILL.md skills: Claude and Claude Code, OpenAI Codex, OpenClaw, Hermes Agent and others. The PDF works in any AI chat that reads uploaded files: ChatGPT, Gemini, Claude, Copilot, Perplexity.
Is it free? Does it need an API key?
Free, no email required. No API keys, no scripts, no access to your accounts. It only changes the links in content your AI writes for you.
Label your next email before you send it
⬇ Agent Skill (ZIP) ⬇ PDF for any AI chatLast checked: October 7, 2026 · by Benjamin Hübner