flowsk.com
Meta attribution

Meta Ads attribution: why Ads Manager and your bank never agree

Meta grades its own homework. It counts view-throughs you never noticed, de-duplicates nothing against your other channels, and models the conversions its pixel lost. Here is exactly where the gap comes from and how to close it.

Quick answer

Meta-reported conversions = pixel matches + view-throughs + modelled conversions

Meta typically reports 25–45% more conversions than a first-party server-side count of the same period. The three drivers are view-through credit (a conversion after an impression nobody clicked), self-attribution (Meta claims a sale that Google also claims), and conversion modelling (a statistical estimate for the traffic the pixel could not see).

None of this is fraud. It is a measurement system optimised to justify spend on the platform running it.

Click id parameter

fbclid

Default window

7-day click, 1-day view

Maximum click window

7-day click

Typical over-report

+38%

Where the gap comes from

Four mechanics, each independently defensible, that compound into a number you cannot reconcile against your bank.

01

View-through conversions

A user scrolls past your ad, buys three days later from an email. Meta counts it. Your P&L does not know that ad existed.

What to do  Set the attribution setting to 7-day click only and watch reported conversions drop 15–30%.

02

Self-attribution across platforms

Meta and Google both claim the same purchase, because neither can see the other. Add up your channel reports and you have more conversions than orders.

What to do  Only a first-party dataset that sees every touch can arbitrate. Nothing on the platform side can.

03

Conversion modelling

iOS ATT and ad-block leave holes; Meta fills them with a statistical estimate labelled as a conversion.

What to do  Compare Meta's number to your own server-side count of orders with an fbclid in the journey.

04

The 7-day cap

Meta's own maximum click window is 7 days. Considered purchases that take two weeks are invisible to it, even when the ad started the journey.

What to do  A durable first-party visitor id keeps the whole journey, regardless of what the platform can see.

Meta's Conversions API helps — it is a server-side signal, and it is the right move. But CAPI reports *to Meta*, in Meta's model, and Meta still decides what to credit. It improves Meta's optimisation; it does not give you an auditable ledger.

Frequently asked questions

Why does Meta report more conversions than Stripe?

Three reasons stacked: view-through conversions (credit for an impression, not a click), self-attribution (Meta claims sales Google also claims), and conversion modelling (estimates for traffic the pixel could not observe). Switch Ads Manager to 7-day click, no view, and the two numbers move much closer.

Does the Conversions API fix Meta attribution?

It fixes signal loss, not credit. CAPI sends server-side events to Meta so its optimisation has better data, and you should run it. But Meta still applies its own attribution model to those events. If you want a number you can audit, you need the same events in a dataset you own.

What is a realistic Meta over-report?

Across DTC accounts we see 25–45% for accounts running view-through attribution, and 10–20% for accounts on 7-day click only. Measure your own: count orders whose journey contains an fbclid, server-side, and compare.

Should I stop trusting Meta's numbers?

No — use them for what they are good at: in-platform optimisation and creative testing. Use a first-party dataset for budget decisions and for anything you tell your board.

See the receipt for every conversion.

Flowsk Signals stitches the anonymous click to the email to the purchase — first-party, server-side, de-duplicated on a key you choose. One snippet, $29/mo, and a journey you can inspect event by event.