In short, conversion tracking is the chain that delivers the fact "this click produced a lead or a sale" to your tracker and the ad platform. Without it you see only spend and clicks, and you have to guess which funnel pays off. Technically the signal can be delivered in five ways: a browser pixel, a server-side postback, the platform's server-side events (Conversions API), offline conversion uploads and Google Ads enhanced conversions.
Below is what each of them can do, where each loses data and how to build a working setup for your case: your own landing page with a form, a CPA network offer, or both.
What a conversion is and why you need to track it
A conversion is a useful action by a visitor: a lead, a sign-up, a deposit, a purchase. In affiliate marketing a conversion also has a lifecycle: it arrives as a lead, then goes on hold (the network checks it) and then becomes approved or rejected. This is covered in detail in conversion statuses: lead, hold, approved.
Two recipients need conversion data, and their goals differ:
| Who needs the signal | Why | What matters to them |
|---|---|---|
| You (the tracker) | Calculate revenue, CR, EPC and ROI for each funnel | Completeness and the exact payout |
| The ad platform | Optimize delivery towards similar people | Speed and the platform's click ID |
| The CPA network | Pay you for leads | The click ID you passed to it |
Do not mix these streams: the platform often needs a fast lead signal, while you need the final approval with the real payout.
Five ways to track conversions
1. Pixel (a tag on the page)
Code or an invisible image on the thank-you page that sends a request to the tracker or ad system when the page loads. The upside is simplicity: paste one line and it works. The downside is that the signal depends on the browser: ad blockers, closed tabs, in-app browsers and cookie restrictions eat some of the events. A detailed comparison is in postback vs pixel.
2. Server-side postback (S2S)
The server that recorded the conversion calls the tracker's URL itself and passes the click ID and status. This is how CPA networks work: a lead is recorded on their side and a postback goes to you. The visitor's browser is not involved, so there is almost no loss. How the URL and macros work is covered in postback URL and S2S tracking setup.
https://tracker.example/postback?click_id={subid}&status={status}&payout={payout}
3. Platform server-side events (Conversions API)
The server-side counterpart of an ad platform's pixel: Conversions API at Meta, Events API at TikTok, the conversion API at Google Ads. The conversion goes to the ad account straight from the server, without the browser. This is the main way to give the platform back the signals the pixel loses.
4. Offline conversions
Uploading a list of "platform click ID, conversion, time, value" to the ad account. The Google Ads classic is a file with gclid that the account fetches on a schedule. It fits when a conversion is confirmed later, for example after a call center call or a network approval.
5. Google Ads enhanced conversions
Enhanced conversions in Google Ads add hashed data the visitor entered in the form (email, phone) to the regular tag. Google matches the hashes with its own accounts and recovers some of the conversions lost to cookies. There is a version for websites (the tag sends the data) and one for leads (the data is sent with offline conversion uploads). The rules are simple but strict: you need the visitor's consent to data processing and must follow the platform's customer data policy. Check the current requirements in Google Ads Help.
Comparing the methods
| Method | Where the signal comes from | Loss | What you need |
|---|---|---|---|
| Pixel | Browser | Noticeable: blockers, cookies, WebView | Access to the thank-you page |
| S2S postback | Network or site server | Minimal | Passing the click ID to the offer |
| Conversions API | Your server or tracker | Minimal | Token and pixel or account ID |
| Offline upload | File or API | None, but delayed | The platform click ID on every lead |
| Enhanced conversions | Tag plus hashed form data | Reduces tag loss | Visitor consent, form data |
How to set up conversion tracking step by step
The order is the same for any platform and any tracker.
- Define your goals. What counts as a conversion: a lead, a sign-up, a deposit, an approval? How much does each pay? Without this, revenue will not be correct.
- Keep the click ID. Your tracker assigns a click ID to each visit and must pass it on, into the offer link or a hidden form field. The mechanics are covered in click ID and sub ID.
- Keep the platform's click ID. gclid, fbclid and ttclid are needed to send the conversion back to the ad account. What these parameters are is explained in fbclid, gclid, ttclid.
- Connect intake. For a network, a postback URL in its dashboard. For your own site, a call from the form handler or, as a last resort, a script on the thank-you page.
- Map statuses. Every network has its own words: approved, pending, rejected, trash. The tracker must translate them into its own statuses, or hold will end up in revenue.
- Set up sending back to the platform: a postback to the source, Conversions API or an offline upload.
- Check with a test lead. Follow the ad link, submit a lead and make sure the conversion was matched to the click, not just "received".
Tip. Check not only "did it arrive" but also "which click was it matched to". A conversion without a matched click gives neither campaign revenue in reports nor a signal to the platform.
Google Ads conversion tracking
In Google Ads, conversion tracking relies on auto-tagging: gclid is added to the ad link (and for part of iOS traffic, wbraid or gbraid). From there you have three paths:
- The Google tag on the site runs in the browser and is fast, but loses some events. Enhanced conversions make it more accurate.
- Offline conversion import: a file or API with gclid, time and value. Convenient when a CPA network confirms the conversion a few days later.
- Import from analytics, if you already collect goals in a web analytics system.
For affiliate marketing the second option is usually the right one: Google only receives leads that were actually recorded, not every button press. The details (gclid, ValueTrack parameters, the tracking template) are covered in Google Ads tracking. Similar setups for other platforms are in the articles on Facebook Ads tracking and TikTok.
What to choose: your own site or a CPA network
You send traffic to a CPA network offer
The site is not yours and you have no code access. There is one setup:
- The tracker appends its click ID to the offer link in a parameter the network understands (sub1, subid, aff_sub: each network has its own).
- The network returns this ID in a postback at every status change.
- The tracker updates the conversion and, if needed, sends it to the ad account.
A network pixel on the offer page is not needed here and is often harmful: it produces duplicates. How networks work and what to ask your manager is covered in what a CPA network is and how to choose one.
You have your own landing page with a form
The most reliable way is to record the lead in the server-side form handler: it only fires when the lead is actually saved. Without server access, use a script or pixel on the thank-you page, knowing that some events will be lost. The click ID has to be carried from the landing page entry to form submission, in a hidden field or a cookie.
Mixed setup
The landing page is yours, but the network takes the lead via API. Then the lead is recorded on your side, and the approval arrives as a postback from the network. Both records must share the click ID and the deal ID so the second message updates the first instead of creating a second conversion.
Common conversion tracking mistakes
- The click ID does not reach the offer. The parameter was lost on a redirect or a pre-lander; conversions arrive but say "click not found".
- The wrong network parameter. You passed the ID in sub1, and the network returns sub2. There is a postback but no match.
- Hold counted as revenue. A pending status recorded as a sale makes ROI look great until the first rejections.
- Duplicates. A pixel and a postback record the same lead in one system without a shared event ID.
- Currency. The network pays in euros, the tracker records the amount as dollars.
- Sending everything to the platform. Junk leads teach the algorithm to look for more people like them. Choose which statuses to report.
- No check after edits. You changed the offer link and forgot to check the parameter is still there.
- Bots in the denominator. If half the clicks are bots, CR is understated and decisions are made on distorted numbers. How this affects evaluation is covered in the article on traffic quality.
Conversion tracking in ArtisanClo
In ArtisanClo, conversions are received in the Conversions setup section; there is one intake URL for the whole account.
- Affiliate networks: around 300 ready-made templates or your own network setup, covering which parameter the network receives the click ID in, how its statuses map to yours, and a ready postback URL for the network's dashboard. The list is in the affiliate network catalog.
- Your own site: code for the form handler (PHP), a script for the thank-you page or a pixel. The offer card shows a live check, from "Waiting…" to "Received and matched to its click — everything works."
- External tracker: 32 ready-made templates (Keitaro, Binom, RedTrack, Voluum and others) if you run traffic through your own tracker.
- Log: the latest incoming messages with their outcome: "lead recorded", "click not found", "no click_id". This is the first place to look if the numbers do not add up.
Network statuses are mapped automatically: approved becomes a sale, pending is hold, refund is rejected, fraud is trash. A repeated message with the same deal ID updates the record, currency is converted to dollars at the ECB daily rate, and a repeat lead from the same visitor within the uniqueness window goes to Trash marked as a duplicate.
Sending back is set up in the source card: a postback to the source, and for Meta, TikTok and Google Ads, sending directly to your ad account with your keys or, for Google Ads, a scheduled file without keys. More details are in the article on sending conversions to ad platforms. Which features are available on which plan is on the pricing page.
Summary
- Conversion tracking is the chain "click → lead → status", and its weak link is almost always a lost click ID.
- A CPA network needs a server-side postback, your own site needs recording in the form handler, and the ad platform needs Conversions API or an offline upload.
- Google Ads enhanced conversions reduce tag loss but require the visitor's consent.
- Check every funnel with a test lead and see which click the conversion was matched to.
Once tracking is in place, the next question is which click deserves the credit when there were several. That is the subject of the article on conversion attribution.



