Pixel + postbacks: stop flying blind
Without tracking, you're guessing. With tracking, Facebook's algorithm helps you find buyers instead of just clickers. This module sets up the three pieces that make that possible: the pixel, the events, and the postback.
Step 1 · Create the pixel
From Business Manager → Events Manager → Connect Data Sources → Web → Meta Pixel → Create. Name it after your project (not your ad account — pixels survive ad account bans, which matters in Module 10). Save the Pixel ID — you'll paste it everywhere.
Step 2 · Install the base code on the pre-lander
The base pixel is a 10-line script that goes in the <head> of every page you own. It fires a PageView event automatically on every visit. The operator's tracking_inject_pixel(lander_path, pixel_id) tool injects it for you, but if you're doing it by hand, the snippet looks like:
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){
n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];
t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init','YOUR_PIXEL_ID');
fbq('track','PageView');
</script>
Verify it's firing with the Meta Pixel Helper Chrome extension. Green checkmark = good.
Step 3 · Fire the events that matter
PageView happens automatically. The two you'll add manually:
ViewContenton the pre-lander load (after the page renders the offer-aligned hook). This tells FB "this visitor saw the offer-related content."Leadon the CTA click — when the visitor clicks through to the vendor's offer. This is your lander CTR signal.
Code:
// On page load, after pixel base:
fbq('track','ViewContent');
// On CTA click:
document.getElementById('cta').addEventListener('click', () => {
fbq('track','Lead');
});
Step 4 · Tell the pixel when a sale happens (the hard part)
This is where most beginners fail. Clickbank and Digistore24 process the actual purchase on their domain, not yours. Without intervention, the pixel has no idea a sale happened — you'll see clicks and lander CTR in Ads Manager but zero conversions, even though sales are showing up in your Clickbank dashboard.
The fix is a postback: the network's server pings Facebook (via the Conversions API) when a sale is recorded, with enough identifying info to attribute the sale back to the right user.
Option A · The vendor's built-in pixel forwarding
Some Clickbank vendors and most Digistore24 products let you paste your pixel ID into the offer config, and they'll fire the Purchase event for you. Check the vendor settings first — it's the easiest path.
Option B · Conversions API bridge
When the vendor doesn't natively support it, you stand up a small webhook (Cloudflare Worker, Vercel function, anything) that:
- Receives the IPN/postback from Clickbank or Digistore24 when a sale closes.
- Forwards a
Purchaseevent to Facebook's Conversions API with the right pixel ID, user identifiers, and sale value.
This is what tracking_bind_clickbank(vendor_nickname, pixel_id) and tracking_bind_digistore24(product_id, pixel_id) do (stubbed in the operator — you wire the webhook endpoint once, then those tools just register the binding).
Option C · Third-party trackers
For more advanced use, dedicated trackers like Voluum, RedTrack, BeMob sit between your ad and the offer, generate per-click IDs, attribute sales, and forward to FB CAPI. Worth it once you're running multiple campaigns; overkill for a first campaign.
Custom Conversions in Facebook
Once the pixel is firing Purchase events, create a Custom Conversion in Events Manager pointing at your Purchase event with the offer-specific URL filter. This becomes your conversion goal in Module 08's sales campaign. Without it, FB will optimize toward whatever event has the most volume (usually Lead), and you'll get a campaign full of clickers who never buy.
Lead (CTA click) as a proxy until volume justifies switching to Purchase.
Step 5 · Verify the whole chain
Before you spend a single ad dollar, send yourself through the funnel:
- Click your own ad preview link or paste the pre-lander URL.
- Check Pixel Helper fires
PageViewandViewContent. - Click the CTA. Confirm
Leadfires. - If you can, buy the offer yourself (refund-able, or use the vendor's test mode). Confirm
Purchasearrives in Events Manager within ~5 minutes.
If any step fails, fix it now. Launching a campaign with broken tracking is the most expensive mistake in this whole playbook.
How the operator handles tracking
tracking_inject_pixel(lander_path, pixel_id)— patches the FB pixel base + PageView into your lander HTML.tracking_bind_digistore24(product_id, pixel_id, capi_access_token)— registers the postback URL with Digistore24's API.tracking_bind_clickbank(vendor_nickname, pixel_id)— registers with Clickbank.