Sending Affiliate Conversions to Facebook CAPI via Postback
Stop losing affiliate conversions to iOS 14 and ad blockers. Learn how to wire affiliate postbacks into Facebook Conversions API for accurate Meta ad attribution.
If you run Meta ads to an affiliate offer, the Facebook pixel will under-report by 30–60%. The fix is Meta's Conversions API (CAPI), fed by an S2S postback from your affiliate network.
The data Meta needs
event_name: usuallyPurchaseorLead.event_time: unix seconds when the conversion happened.action_source:website.event_id: dedupe key — reuse your order ID.user_data.fbc: built from the originalfbclid.custom_data.valueandcustom_data.currency.
Building the fbc value
The fbc string follows a fixed format:
fb.1.<event_time_ms>.<fbclid>You don't need cookies — once you receive the fbclid back through your postback's SubID, just construct fbc on the fly.
The CAPI request
POST https://graph.facebook.com/v18.0/<PIXEL_ID>/events
?access_token=<TOKEN>
{
"data": [{
"event_name": "Purchase",
"event_time": 1718200000,
"action_source": "website",
"event_id": "order_12345",
"user_data": {
"fbc": "fb.1.1718200000000.AbCdEfG..."
},
"custom_data": {
"value": 49.00,
"currency": "USD"
}
}]
}Deduplication with the pixel
If your landing page also fires a Purchase pixel, set the same event_id on both. Meta will keep one and drop the other — no double-counting.
End-to-end flow
- Capture
fbclidon landing, send to network as SubID. - Network fires postback with the SubID on confirmed sale.
- Your endpoint builds fbc + payload, POSTs to CAPI.
- Meta credits the original ad and uses the signal for bidding.
Verifying it works
Use Events Manager → Test Events. Add test_event_code to your CAPI payload. You should see events arrive in near real time with Match Quality at least Great.