Don't pick a "method" at random. The right way to track conversions depends entirely on WHERE the sale or opt-in happens. Find your scenario in the table, then jump to the matching setup.
|
| If you sell or capture leads on… | | Use this | | Why |
|
| 🛒 WarriorPlus | | W+ Notification URL (server-to-server IPN)
NOT a sale pixel.
→ Setup Wizard · → W+ Connect Training | | Fires server-to-server from W+. Never blocked by ad blockers, browser tab close, mobile Safari privacy modes, or no-JS visitors. Pixels miss real sales — IPN never does. |
| 🛒 JVZoo | | JVZIPN URL (server-to-server IPN)
NOT a sale pixel.
→ Setup Wizard · → JVZoo Connect Training | | Same as W+ — JVZoo fires the IPN from its server every time, no matter what the buyer's browser does. |
| 🛒 ClickBank / Stripe / ThriveCart / SamCart / custom cart | | Server postback URL — see Section 5 below | | Each platform fires a webhook to your postback URL. Server-side, always reliable. |
| 📥 Lead / opt-in tracking (any platform) | | Lead Pixel on the thank-you page (snippet below) | | Opt-ins don't have a marketplace IPN equivalent — must capture browser-side. |
| 📥 Same-site WordPress funnel (tracking link + checkout both on this site) | | Simple <img> pixel (one-line snippet below) | | Cookie is shared on the same domain, so a one-line image pixel works without JavaScript. |
⚠️ HUGE: If you sell on W+ or JVZoo, do NOT use sale pixels.
Use the Notification URL / JVZIPN URL instead. Pixels for marketplace sales are unreliable — they miss conversions because:
Ad blockers block the pixel domain (very common in IM niches)
Buyer closes the tab before the pixel fires (a few hundred ms is all it takes)
Mobile Safari + private browsing drops cross-site pixel pings
No-JS visitors / cached "thank you" pages never run the script
The IPN fires from W+'s / JVZoo's own server the moment the sale completes — the buyer's browser is irrelevant. Server-to-server is bulletproof. Pixels are a backup at most. Run the Setup Wizard → to wire your IPN URL into W+ / JVZoo correctly.
📥 Lead / Opt-in Tracking (browser pixel — REQUIRED, no server alternative)
Place this on your opt-in confirmation / thank-you page:
<script> (function(){ var p = new URLSearchParams(window.location.search); var cid = p.get('wct_click_id') || window.localStorage.getItem('wct_click_id') || ''; if (cid) window.localStorage.setItem('wct_click_id', cid); var img = new Image(); img.src = "?wct_postback=1&type=lead" + (cid ? "&click_id=" + cid : ""); img.style.display = "none"; (document.body || document.documentElement).appendChild(img); })(); </script>
This automatically reads the wct_click_id from the URL, stores it in localStorage for multi-page funnels, and fires a lead conversion. Works across domains. Use this for opt-in pages — there's no server-side equivalent for leads, so the browser pixel is the only option.
📥 Same-Site Simple Pixel (one-line <img> for WordPress-only funnels)
<img src="?wct_postback=1&type=lead" width="1" height="1" style="display:none" alt="" />
Use this only when the tracking link and thank-you page are on the same domain — the browser cookie carries the click_id automatically, no JavaScript needed. Simpler to maintain but doesn't work cross-domain.
🛒 Sale Pixel (for non-marketplace setups ONLY)
⚠️ Skip this section if you sell on W+ or JVZoo. Use the Notification URL instead — it's bulletproof, the pixel is not. This snippet is for custom carts, free downloads with a $0 "sale" event, or platforms with no IPN support.
Place on your purchase confirmation page only when you don't have a server-to-server IPN available:
<script> (function(){ var p = new URLSearchParams(window.location.search); var cid = p.get('wct_click_id') || window.localStorage.getItem('wct_click_id') || ''; if (cid) window.localStorage.setItem('wct_click_id', cid); var amount = 47; // Replace with your sale amount var img = new Image(); img.src = "?wct_postback=1&type=sale&amount=" + amount + (cid ? "&click_id=" + cid : ""); img.style.display = "none"; (document.body || document.documentElement).appendChild(img); })(); </script>
🛠️ JavaScript Helper Library (optional convenience wrapper)
<script src=""></script> <script> wctLead(); // Track a lead (Conversion A, no revenue) wctSale(47.00); // Track a sale with revenue (Conversion B) </script>
The helper library is optional — the pixel snippets above work fine on their own. Use this if you prefer function calls instead of building the image request yourself.
📊 Revenue Amount Examples (when amount is dynamic)
|
| Platform | | Replace amount with |
|
| Fixed price $47 | | 47 |
| JVZoo dynamic | | %ctransamount% |
| WarriorPlus dynamic | | {w+amount} |
| ClickBank dynamic | | {{amount}} |
| Stripe / ThriveCart / SamCart | | Use the platform's dynamic amount variable |
✅ Basic Test Flow
Create a tracking link (e.g. test-offer)
Open a private/incognito browser window
Click the tracking link — you'll land on the destination with ?wct_click_id=123 in the URL
Place the lead or sale pixel on a test page and load it (keeping the wct_click_id in the URL)
Refresh the Dashboard or Links tab — you should see the lead/sale recorded
Important: If you visit the thank-you page directly without clicking a tracking link first, nothing will be attributed because no click ID exists. Always click the tracking link first.
↑ Back to Table of Contents