Home / Course / Module 06

Module 06

Pixel + postbacks: stop flying blind

8 min read · pairs with tools/tracking.

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:

  • ViewContent on the pre-lander load (after the page renders the offer-aligned hook). This tells FB "this visitor saw the offer-related content."
  • Lead on 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:

  1. Receives the IPN/postback from Clickbank or Digistore24 when a sale closes.
  2. Forwards a Purchase event 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.

Common gotcha: Facebook needs ~50 conversion events per week per adset to fully optimize. If your offer pays $70 and converts at 1%, you need ~$3,500/week of spend per adset to feed the algorithm. For smaller budgets, optimize on 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:

  1. Click your own ad preview link or paste the pre-lander URL.
  2. Check Pixel Helper fires PageView and ViewContent.
  3. Click the CTA. Confirm Lead fires.
  4. If you can, buy the offer yourself (refund-able, or use the vendor's test mode). Confirm Purchase arrives 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.
Action: Create the pixel. Install on your pre-lander. Verify with Pixel Helper. Wire the postback (or use vendor pixel forwarding). Send yourself through the funnel and watch all four events fire.