The Gap Between What Meta Sees and What Actually Happened

The standard Meta pixel is built around on-site events: someone views a product, adds it to a cart, completes a checkout. That model assumes the sale happens on the website. For most Algerian stores running DM and WhatsApp-first funnels, it doesn't — the buyer clicks an ad, lands in a chat, and the actual order gets confirmed in conversation, often a day or two later. None of that shows up as a purchase event, so the campaign optimizes toward "people who click" instead of "people who buy."

What the Conversions API Actually Does

The Conversions API sends event data to Meta directly from a server rather than through the browser. In practice, that means capturing the click identifier — Meta calls it ctwa_clid, not the fbclid used for website ads — the moment the first message from that click lands in the inbox. It only arrives once, on that first message, so it has to be stored against the lead immediately or it's gone for good. Then a server-side "Purchase" event fires once the order is actually confirmed — not when the chat starts, when it's actually paid for or locked in.

This is what closes the loop Meta needs: click, to lead, to confirmed order, reported back with the same identifier that started the chain.

How This Actually Gets Built

This isn't a setting inside Ads Manager. It's an automation workflow — the same kind covered in setting up n8n and Telegram bots for order management — that stores the click ID against each lead as it comes in, and sends the CAPI event the moment a bot or a staff member marks an order as confirmed. Once it's wired up once, it runs on every order without anyone thinking about it again.

It's also worth asking about when vetting anyone running your campaigns — a media buyer optimizing toward clicks instead of confirmed orders is optimizing toward the wrong number, however good the account otherwise looks.

An algorithm can only optimize toward what it's told actually happened. If every real sale disappears into a WhatsApp chat with no signal back to Meta, the campaign is being steered by guesswork dressed up as data.