The Click ID: The Heart of S2S Tracking
S2S tracking works because of a single piece of data: the click ID. This is a unique identifier your tracker generates the moment someone clicks your affiliate link. That click ID becomes the thread that connects the original click to the conversion that happens later.
Here's how the thread unravels:
Step 1: Tracker generates click ID. Your tracker assigns a unique identifier to this visitor (e.g., click_abc123xyz). This ID is stored server-side in your tracker's database or cache. The tracker records the click timestamp, traffic source, campaign, offer, IP address, user agent, all of it. The user has no idea any of this is happening.
Step 2: Click ID rides in the URL. Your tracker appends the click ID to the redirect URL as a query parameter, something like https://offer-page.com?click_id=abc123xyz. The user follows this link to the landing page. As they move through the offer funnel, that click ID can stay in the URL or get stored server-side by the affiliate network.
Step 3: Network records the conversion. The user buys. The affiliate network processes the transaction on its own servers, validates it, calculates commission. The network knows which click ID this conversion belongs to because it was embedded in the original link or maintained in the session.
Step 4: Network fires a postback. The network sends an HTTP request back to your tracker, something like https://your-tracker.com/postback?click_id=abc123xyz&payout=15.00&txid=TX98765. That request contains the click ID from step 2. Your tracker looks up abc123xyz in its database, finds the original click, and records the conversion.
All of this happens server-to-server. The user's browser is irrelevant. Their ad blocker doesn't matter. Their cookie settings don't affect anything. The browser is just a passenger in the transaction.
How S2S Tracking Really Works: The Full Flow
Let me walk through a real scenario to make this concrete.
Monday 2pm: Affiliate clicks a link from a Facebook ad. The link points to your tracker:
https://tracker.clickervolt.com?campaign=fb_monday&offer=acme_app.Tracker's server (instantly): Generates click ID
xyzabc789, records: timestamp 2pm ET, source Facebook, campaign fb_monday, offer acme_app, IP 203.0.113.42, user agent Chrome on macOS.Redirect (instantly): Tracker redirects user to the actual offer with click ID embedded:
https://acme-app.com/signup?click_id=xyzabc789.Acme's network (Monday 2pm - 3pm): User signs up, completes purchase, pays $49. Acme's backend stores that conversion with the click ID from the URL.
Postback (Monday 3:05pm): Acme fires an HTTP POST to your tracker:
https://tracker.clickervolt.com/postback?click_id=xyzabc789&payout=15.50&txid=ORDER_999&status=approved.Your tracker (3:05pm): Receives postback, looks up click ID
xyzabc789, finds the 2pm click, matches conversion to click, records payout of $15.50 in your reports.S2S to CAPI (3:05pm): Your tracker doesn't stop there. It also sends the conversion to Meta via server-to-server: "Hey Meta, the click with fbclid=XYZ converted for $15.50". Meta's machine learning algorithm now knows this ad cost $1.50 in spend and generated $15.50 in revenue. It adjusts bid strategy accordingly.
The whole chain is immune to cookies, ad blockers, page closures. If the user had closed their browser after clicking, it wouldn't matter. If they had uBlock Origin running, the conversion still fires because nothing depends on client-side JavaScript.
S2S vs Pixel Tracking: Why Pixels Lost
Pixel-based tracking was the standard for 15 years. Here's how it worked: you placed a tiny image or JavaScript snippet on the advertiser's thank-you page. When a buyer loaded that page, the pixel fired and sent a request to your tracker. Your tracker matched the cookie with the original click and recorded the conversion.
Three critical problems destroyed pixel tracking:
Ad blockers kill pixels. Browser extensions like uBlock Origin block tracking requests before they leave the browser. Depending on your audience, 15-40% of conversions vanish. If you're running to a tech-savvy audience, lose half your data. If you're running health or finance offers, lose a quarter. You don't even know which conversions are being blocked.
Cookies got blocked. Safari implemented Intelligent Tracking Prevention (ITP) that expires third-party cookies after 24 hours. Firefox rolls out Enhanced Tracking Protection by default. Chrome deprecated third-party cookies in 2024. The cookie that connected the original click to the conversion expires or gets blocked. The pixel fires, but there's no matching click. Your conversion data becomes noise.
Users close the page. A lot of people close the thank-you page before it fully loads. Some browsers are slow. Some users are impatient. The pixel never gets to fire. That conversion is lost permanently. No postback, no record, no data.
S2S tracking avoids all three problems. The network already knows a conversion happened because it processed the transaction on its own servers. It doesn't rely on the user's browser, cookies, or JavaScript. It sends the conversion data directly to your tracker via a server-to-server HTTP request.
Here's the head-to-head:
| Pixel Tracking | S2S Tracking | |
|---|---|---|
| Requires JavaScript to fire? | Yes | No |
| Blocked by ad blockers? | Yes, 15-40% of conversions | No |
| Affected by cookie restrictions? | Yes, massive impact | No |
| Works if user closes page? | No | Yes |
| Data quality | Degrades as privacy restrictions increase | Consistent |
| Setup | Code on advertiser's thank-you page | Configure postback URL once |
| Network dependency | Requires network to support pixels | All modern networks support S2S |
| Fraud prevention | Weak (pixel can fire from anywhere) | Strong (network validates conversion) |
The industry moved to S2S because pixels stopped working. That transition happened between 2020-2024. If someone's still asking you about pixel-based tracking, that's a red flag.
Click ID Types You'll Encounter
Different platforms use different click ID names. Your job is to pass them through to the advertiser:
- Meta:
fbclid(auto-generated on Meta ads) - Google:
gclid(auto-generated on Google Ads) - TikTok:
ttclid(auto-generated on TikTok Ads) - Networks:
click_id,aff_sub,cbid(varies by network) - Your tracker: Your own internal ID for record-keeping
A single click can carry all of them simultaneously. This multiplicity enables cross-platform attribution โ you have access to every click ID when the conversion fires.
S2S Tracking and CAPI: The Relationship
CAPI (Conversion API, also called Server-to-Server API) is S2S tracking applied to ad platforms. Meta CAPI, Google Enhanced Conversions, TikTok Events API, LinkedIn Conversions API. They're all the same pattern: your server sends conversion data directly to the ad platform's server.
Here's the critical distinction: S2S tracking is how you get conversion data into your tracker. CAPI is how you get conversion data out of your tracker into the ad platforms.
S2S postback (network to tracker): ClickBank fires a postback to ClickerVolt. "This conversion happened with click ID abc123, payout is $15".
CAPI event (tracker to ad platform): ClickerVolt fires a CAPI event to Meta. "This conversion happened with fbclid=XYZ, payout is $15, customer lifetime value is $120".
The first enables the second. Without S2S postbacks, your tracker never learns about conversions. Without CAPI, the ad platforms never learn about conversions. Your campaigns stay unoptimized.
I've run campaigns where the S2S postback chain worked perfectly, but CAPI was misconfigured. The tracker saw 100% of conversions. Meta saw almost none. Spend kept climbing because Meta had no signal to optimize on. The moment I fixed CAPI, everything changed.
Signal depth matters too. Meta's algorithm works better with more data. A CAPI event with 15 matching signals (name, email, phone, address, city, state, zip, birthday, gender, device ID, browser ID, IP address, click ID, conversion value, conversion time) moves the optimization needle more than an event with just conversion value and click ID. S2S tracking enables this because the data lives on your server. You have access to everything. CAPI just passes it through.
The Refund Problem S2S Doesn't Solve
Most S2S systems stop at the conversion. The postback records the sale. But if a customer refunds later, your tracker never finds out. Your reports still show approved conversions. Your CAPI events to Meta show real sales. Meta optimizes based on fake data. Your ROAS becomes meaningless.
ClickerVolt's Refund Sync handles this. When a customer refunds on ClickBank, JVZoo, or any of the connected platforms, the network notifies ClickerVolt. ClickerVolt updates the conversion status to "refunded" and sends refund events to your ad platforms: RETRACT to Google, ClickerVolt_Refund to Meta, CancelOrder to TikTok. Your reports show real revenue. Your CAPI signals stay accurate.
Setting Up S2S Tracking
S2S tracking requires your tracker and the affiliate network to work together. Here's the core workflow:
- Get your postback URL from your tracking platform (usually something like
https://your-tracker.com/postback) - Paste it into the network's settings (account, campaign, or offer level depending on the network)
- Map the parameters your tracker expects to what the network provides (click_id, payout, transaction_id, etc.)
- Test with the network's test button to verify conversions arrive with the right data
- Send live traffic to confirm the postback chain works end-to-end
ClickerVolt automates this for ClickBank, JVZoo, WarriorPlus, and a few others... These networks use IPN (Instant Payment Notification), so you just enter your API credentials once. No manual postback URL configuration needed.
Why S2S Tracking Matters Right Now
Three forces made S2S tracking essential:
Cookie deprecation โ Google deprecated third-party cookies in 2024. Firefox, Safari, and Edge all followed. Pixel tracking that relied on cookies is dead.
Ad blockers โ uBlock Origin, Brave, and native browser protections block 35-45% of tracking pixels globally. S2S bypasses this entirely.
Privacy regulations โ GDPR, CCPA, and regional laws require server-side data handling. S2S fits naturally; pixels don't.
S2S solved all three. It works without cookies, dodges ad blockers, and respects privacy. If you're still relying on pixels in 2026, you're losing data you don't realize is gone.
Frequently Asked Questions
What exactly is the difference between S2S tracking and pixel tracking?
Pixel tracking fires a request from the user's browser (usually JavaScript) when they land on the thank-you page. S2S tracking sends a server-to-server HTTP request from the affiliate network directly to your tracker when the conversion is approved. Pixels can be blocked by ad blockers and fail if the page doesn't load. S2S is immune to both. S2S is the modern standard.
Do all affiliate networks support S2S tracking?
The serious ones do. ClickBank, MaxBounty, CJ Affiliate, ShareASale, Awin, and most CPA networks support S2S postbacks. Some older or smaller networks may still be pixel-only or have limited S2S support. If a network doesn't offer S2S, that's a sign they're behind the curve. Ask their support team if S2S is on their roadmap.
What's a click ID and why do I need to pass it through?
A click ID is a unique identifier that connects the original click to the conversion. Your tracker generates one. The network needs to receive it in the redirect URL so it can include that same ID in the postback. Without the click ID, the conversion has nowhere to land. It's the bridge between the click and the conversion.
Can I run both S2S and pixel tracking simultaneously?
Technically yes, but it creates deduplication headaches. Your tracker receives two conversion notifications for the same event. You'd need deduplication logic to avoid double-counting. Most setups use S2S exclusively and abandon pixels entirely. If you're running both, you have a problem to solve.
What happens if the postback request fails or times out?
Most networks have a retry mechanism. If your tracker's server is down or returns an error, the network retries the postback after a delay, usually 15-60 minutes. Networks typically retry 2-3 times before giving up. After that, the conversion is lost. This is why your tracker needs reliable uptime. Downtime directly causes lost conversion data.
How is S2S different from CAPI?
S2S is unidirectional: from network to tracker. CAPI is unidirectional: from tracker to ad platform. They're complementary. S2S gets conversion data into your tracker. CAPI gets it out to Meta, Google, TikTok. You need both for complete attribution.
Does S2S tracking work cross-device?
Yes. Because the click ID is stored server-side, not in a cookie, it survives across devices. A user can click on mobile, convert on desktop, and the postback still matches because the click ID is independent of the user's browser or device.
Final Thought
S2S tracking isn't elegant or exciting. There's no UI to show off. It's invisible infrastructure. But invisible infrastructure that works is better than visible infrastructure that crumbles when a browser blocks a cookie or a user's ad blocker activates.
I've been doing this for 19 years and I've watched tracking evolve from basic impression counts to pixel-based conversion tracking to the S2S + CAPI stack we have today. S2S solved the core problem: how to measure conversions in a post-cookie, ad-blocker-saturated, privacy-regulated internet. Every serious tracking platform is built on S2S. If your current setup relies on pixels, you're leaving conversions untracked.
โ Try ClickerVolt's native S2S tracking with built-in IPN support (free, no credit card)
Related Glossary Articles
For a deeper understanding of the tools that work with S2S tracking, check these:
- Postback URL โ The specific mechanism that carries S2S data
- Conversion API (CAPI) โ How to send conversions to Meta, Google, and TikTok
- Event Match Quality โ Why more data in your CAPI events makes ads cheaper to run
