Anyone who has ever reconciled tracker stats against an affiliate network has hit the same question: which click did this lead come from? Two things answer it: the click ID and the SubID. They get mixed up all the time, even though they do very different jobs. Let's sort them out.
What is a click ID
A click ID (clickid, click identifier) is the unique identifier of a single click on an ad link. It is generated by whichever system the click passed through: a tracker, a cloaker, an ad platform. The number means nothing on its own, but it lets you find the record of the click with every detail: time, IP, country, device, campaign, cost.
One click can carry several IDs from different systems at once:
| Whose ID | Example parameter | Issued by | Needed by |
|---|---|---|---|
| Ad platform | fbclid, gclid, ttclid |
Facebook, Google, TikTok | The platform, for attribution and optimization |
| Tracker | click_id, subid, cid |
Your tracker | The tracker, to accept the postback |
| Affiliate network | transaction_id, aff_click_id |
The CPA network | The network, for its own accounting |
Confusion starts when one system's ID ends up in another. The rule is simple: send your tracker's click ID to the affiliate network, and keep the platform's ID in the tracker so you can later send the conversion back to the ad account. Platform IDs are covered in detail in fbclid, gclid, ttclid, yclid: what these URL parameters are.
What is a SubID
A SubID is an extra label you tag your traffic with. It is not unique: every click from the same creative will have the same sub2=creo_14. A SubID's job is to slice your stats into meaningful parts of the funnel.
What usually goes into SubIDs:
- the creative's number or name;
- the audience or ad set;
- the placement (zone, site), especially in native and push;
- the buyer's name in a team;
- the landing or pre-lander version;
- the search keyword.
An ad link with SubIDs:
https://example.com/?sub1={{campaign.id}}&sub2={{ad.id}}&sub3={{placement}}&sub4=buyer_anna
The values in double curly braces are Facebook macros, and Facebook fills them in. Macros on other platforms are covered in the article on UTM parameters and macros.
The double role of sub1 at the network
Affiliate networks call SubIDs the parameters they accept in the offer link and return in the postback: sub1…sub5, aff_sub, s1. You give one of these slots to your tracker's click ID so the postback can find the click. The others can carry your labels, so you see the breakdown right in the network's stats.
How a click ID makes the round trip
Here is the path of a click number through a "platform → tracker → offer → network → tracker" setup:
1. Ad click:
https://example.com/?fbclid=IwAR0xYz&sub2=creo_14
2. The tracker logs the click and assigns it ID 8f3a1c27.
3. The visitor goes to the offer with the ID in sub1:
https://network.example.com/click?offer=55&sub1=8f3a1c27&sub2=creo_14
4. The network records a lead and fires a postback:
https://tracker.example/postback?click_id=8f3a1c27&status=pending
5. The tracker finds click 8f3a1c27: creative creo_14, fbclid IwAR0xYz.
Step 3 is the weakest link. If there is another system between the tracker and the offer (a cloaker, a second tracker, a pre-lander), each of them has to pass the ID along. How the postback in step 4 works is explained in Postback URL and S2S tracking.
Cloaker plus an external tracker
When a cloaker sits in front of your tracker, a click gets two IDs: the cloaker's and the tracker's. For the conversion to reach both, the cloaker's ID is passed to the tracker in a separate parameter (often called external_id), and when the tracker gets the network's postback, it forwards it to the cloaker with that ID. That is how conversions and CR show up in the cloaker's stats.
Common click ID and SubID mistakes
A literal macro in the link. Instead of a value, the log shows sub1={click_id} or {{ad.id}}. The macro was not substituted: a typo, the wrong syntax for that platform, or the link was opened outside the ad.
The click ID went into a parameter the network does not return. A network may accept five sub parameters but return only some of them in the postback. Find out exactly which macros are available in the postback.
One SubID for everything. sub1=fb_nutra_de_creo14_anna looks handy until you need a report on all of Anna's creatives. Put each meaning into its own parameter.
Spaces, non-Latin characters and special symbols. sub3=Creative 14 turns into an unreadable string after URL encoding and sometimes breaks the link. Stick to Latin letters, digits, hyphens and underscores.
Labels overwritten on redirects. Some redirect chains drop parameters. Check the final offer URL, not just the ad link.
How many SubIDs you need and how to name them
There is no right number, but it helps to agree on a scheme within the team and stick to it:
| Label | What goes in | Example |
|---|---|---|
| sub1 | Platform campaign ID | {{campaign.id}} |
| sub2 | Ad (creative) ID | {{ad.id}} |
| sub3 | Placement | {{placement}} |
| sub4 | Buyer | anna |
| sub5 | Landing version | v3 |
Think separately about which labels you need for decisions and which are "just in case". Every label should answer a question that makes you switch something on or off: creative, to kill the weak one; placement, to exclude the junk; buyer, to compare the team's work. A label you have not built a single report on in a month only makes the link longer.
One more rule: do not put the tracker's click ID into a SubID for reports. It is unique to every visit, so slicing by it gives you as many rows as there were clicks, which tells you nothing. To find a specific click, use the click log.
Tip. Keep one shared sheet in the team that defines every label. Six months from now nobody will remember that
sub7used to be the "angle" and not the "age".
How to check that the click ID reaches the network
The check takes five minutes and heads off most future "where did my leads go" questions.
- Open the ad link the way a visitor would, with the platform's parameters. You can add test values by hand:
?sub2=test_creo&fbclid=test123. - Find the visit in the tracker's click log and note its ID.
- Look at the final URL in the address bar on the offer page or in the browser's developer tools. The right parameter (
sub1,aff_sub,click_id) must contain exactly that ID. - Submit a test lead if the network allows it, or ask your network manager to send a test postback with your ID.
- Make sure the conversion is attached to the right click and the SubID labels show up in the report.
Tip. Test every new offer, even with a network you know. Different offers from the same network sometimes take the click ID in different parameters, especially if the offer runs through the advertiser's own tracker.
Click IDs in complex chains
The more links between the ad and the offer, the more places where the ID can get lost.
Pre-lander
If the visitor lands on a pre-lander first and then clicks a "Continue" button, the click ID has to be in that button's link. Usually the tracker builds it, and then the ID is filled in automatically. If the link is hardcoded in the pre-lander's HTML, the ID is easy to forget. How a tracker splits traffic between several pre-landers and offers is covered in the article on the link rotator.
Several offers in one flow
In a split test, different offers may lead to different networks with different parameter names. Check each offer link separately: "click ID in sub1" for one network does not mean the same for another. How a split works is explained in split testing offers and landing pages.
Two trackers in a row
If traffic passes through two trackers, the first one's ID has to be passed into the second, and the second has to return it in its postback. Otherwise the first tracker never learns about the conversion.
Click ID and SubID in ArtisanClo
In ArtisanClo every visit has its own click number, the {click_id} macro. You can put it into any parameter of the offer link: in the "Offer link parameters" block, the "Set" action fills in a value, for example aff_id = {click_id}. In the same place you can rename a platform label (fbclid → sub1) or remove one you do not need (utm_source) so it does not go to the network. An example from the documentation: the visitor arrived at:
https://example.com/?fbclid=IwAR123&utm_source=facebook&utm_campaign=nutra_de
Flow rules: rename fbclid → sub1, set aff_id = {click_id}, remove utm_source. The offer receives:
https://network.example.com/click?offer=55&utm_campaign=nutra_de&sub1=IwAR123&aff_id=C-01JB8Q3Z7XKP4M2R9TVN6WDY5H
The rules apply top to bottom, and only the offer and the pre-lander see them: in the click log and on the White Page the labels stay exactly as they arrived, because a renamed fbclid on the White Page would be a giveaway.
Other visit macros are available for values too: {flow_id}, {geo}, {city}, {device}, {os}, {browser}, {isp}, {ext_click_id} for an external click ID, {cost} for the click cost, and {sub1}…{sub10} for the flow's labels.
SubIDs in ArtisanClo are set at the "Tracker" step in the "Campaign labels" block (modes with a tracker): "Sub ID N" rows with a "key = value" pair, for example sub1 = {sub_id_1}. Your plan does not limit the number of labels. Labels sub1–sub10 are available in the "Money by slice" table, the rest in the report builder.
When you choose an affiliate network for an offer, the dashboard shows the "Parameter for the offer address": through it the network receives the click number and returns it in the postback. If you do not add the parameter, it is appended automatically when you save the flow.
If ArtisanClo works as a cloaker in front of your own tracker, you select an external tracker at the "Tracker" step, and the dashboard shows a parameter like external_id={click_id}. The field turns green if the parameter is already in the offer link and red if it is not; the "Add to the link" button appends it to every offer. The "How click_id makes the round trip" diagram shows the whole path. What this looks like with specific trackers is covered in Keitaro with a cloaker and Binom with a cloaker, and the list of supported trackers is on the tracker integrations page.
The short version
The click ID answers "which click is this", the SubID answers "which part of the funnel does it belong to". Send your tracker's click ID to the network, put each meaning into its own label, and check the final offer URL on a real click. Once the tagging is in place, reports by creative, placement and buyer build themselves; which numbers to read in them is covered in the article on affiliate marketing metrics.



