Sub-ID & UTM link builder
Build one clean tracking link with s1–s5 sub-IDs and UTM
parameters on any destination URL. Pick a traffic source and the builder prefills the
real click-time macros that platform actually substitutes — no guessing which token
Facebook, Google Ads, TikTok, or a native network expects.
Build your tracking link
What this source fills in
| Field | Macro / value | What it carries |
|---|
The s1–s5 sub-ID model
An affiliate is rarely a single stream of traffic. Behind one partner there might be a
newsletter, three ad networks, and a dozen placements, all converting at very different
rates. Sub-IDs are how you see through the affiliate to the source
underneath. They are five optional labels, s1 through s5, that
an affiliate (or you) append to a tracking link. They ride along on every click and are
copied onto the conversions that click produces, so you can measure which source within an
affiliate is actually performing.
s1 is the traffic source
By convention, s1 is the traffic-source dimension. It is the value sub-ID
reporting groups by, and the value you can block or re-price. Use stable, reusable labels:
s1=newsletter, s1=facebook, s1=push_network_7. Avoid
putting a unique value on every click — a timestamp, a raw click ID, or a per-click
macro — because that makes sub-ID reporting meaningless, filling it with thousands of
one-click rows. This builder flags an s1 that looks per-click for exactly that
reason.
s2–s5 carry the detail
The remaining slots, s2 through s5, are free-form passthrough
values for anything finer-grained: a placement, an ad set, a creative, a keyword. This is
where the platform macros belong — {{ad.id}} on Meta, {creative}
on Google, __CID__ on TikTok. They resolve to a real value at click time, so a
single link works across an entire campaign while still telling you, later, exactly which
creative or placement drove each conversion.
Sub-IDs and UTMs do different jobs
UTM parameters (utm_source, utm_medium, utm_campaign,
and friends) are read by your web analytics. Sub-IDs are read by your affiliate platform and
attach to the payable conversion. They overlap — both can carry the source — but
the sub-ID is the one that drives payout, blocking, and re-pricing. Set both from one link and
the same click is legible in Google Analytics and in your affiliate reports at once.
Leave macros raw, encode the rest
A macro like {{campaign.id}} or __CID__ is a token the platform
swaps for a real value. It must stay un-encoded: percent-encode the braces and the
platform can no longer recognise the token, so substitution silently fails. Every literal
value, though, must be URL-encoded. This tool encodes your literal values and leaves
recognised macros alone. It also reminds you that each network appends its own click ID
(fbclid, gclid, ttclid) automatically — you
should never add those by hand.
From link to decision
A link is only the beginning. Once sub-IDs are flowing, one bad source no longer means pausing a whole affiliate: you block just that source on the campaign, or set a per-source payout override to re-price it, while everything else keeps flowing. Want to see your own traffic broken down this way, source by source? Book a demo and we will pull it apart with you.
Keep going
A tracking link is one step in the journey from a captured click to attributed, re-priceable revenue. Here is the rest of it.
Sub-IDs, in depth
The full guide: reading sub-ID performance, blocking a junk source, and per-source payout overrides.
Read the guideFirst-party tracking
The capture layer that records these sub-IDs on a domain you own, so no click is lost.
See how tracking worksPostback URL builder
The other half of the loop: build the S2S postback that reports the conversion back.
Open the builderSee it on your data
We stand up your workspace and break your traffic down by source, live.
Book a demo