Postback vs Meta conversions — which to trust

Two sources: Meta-reported (pixel+CAPI) vs Postback (S2S). Often disagree 5-20%. Meta for bidding signals; postback for business reporting.

Written By Salvatore Sinigaglia

Last updated About 5 hours ago

Two sources: Meta-reported (pixel+CAPI) vs Postback (S2S). Often disagree 5-20%. Meta for bidding signals; postback for business reporting.

Postback vs Meta conversions — which to trust

Two attribution sources: platform-reported conversions (e.g. Meta pixel + CAPI, Meta's algorithm) vs Postback-reported conversions (server-to-server from tracker, no browser dependency). In Wevion's Ads Manager there is one conversion column with a switchable source (not two side-by-side columns), and the default source is postback (verified conversion-source-store.ts). Selectable sources: postback, all, meta, google, taboola, tiktok, snapchat, outbrain. Platform vs postback counts often disagree by 5-20%: platforms tend to over-attribute; postback is closer to actual. Switch the source per use case (postback for business truth; a platform source to match that platform's bidding view).

Who is this for

Affiliate marketers + e-commerce mediabuyers running tracker-based funnels. Anyone whose Wevion Ads Manager shows N conversions while postback dashboard shows M conversions for the same campaign.

The two attribution sources

Source 1: Meta-reported conversions

How Meta tracks:

  • Browser pixel fires on conversion event
  • Plus CAPI (server-side) fires same event
  • Meta's algorithm attributes the conversion to an ad based on attribution window (7-day click + 1-day view default)
  • Deduplicates pixel + CAPI via event_id
  • Reports back to advertiser

Visible in: Meta Ads Manager + Wevion's per-platform Meta column.

Source 2: Postback-reported conversions

How postback tracks:

  • Tracker server logs conversion (Keitaro, Voluum, etc.)
  • Fires HTTP POST to Wevion's postback URL with click_id
  • Wevion matches click_id → ad campaign attribution
  • Counts as conversion attributed to that ad

Visible in: Wevion's postback dashboard + per-campaign postback column.

See com-109 postback overview.

Why they disagree

FactorEffect
Attribution windowMeta: 7-day click + 1-day view. Postback: only at actual conversion moment. Meta counts more (view-through).
Last-touch vs multi-touchMeta last-touch within window. Postback last-touch via click_id. Sometimes different.
Click hijackingPostback ties to specific click_id; Meta may attribute to a different ad that also got a click.
Bot filteringMeta has aggressive bot filtering; postback may include bot conversions.
iOS / privacyiOS 14.5+ ATT impacts Meta pixel; postback unaffected.
Cross-deviceMeta cross-device attribution (different) than tracker click_id.
DeduplicationMeta dedupes pixel + CAPI; postback is independent count.

Net result: Meta often over-attributes by 5-20%. Postback is closer to actually happened.

When to trust which

Trust Meta for: bidding + optimization

Meta's algorithm makes bidding decisions based on its own attribution. If you tell Meta "optimize for purchases" + Meta sees 100 purchases, it optimizes based on those 100.

If you only feed Meta postback-reported (say 70 purchases), Meta optimizes based on 70 — and may under-perform because it has less data.

So: use Meta's CAPI / pixel data for optimization signals. Don't try to reconcile Meta's bidding-side view with postback.

Trust postback for: business reporting + reconciliation

For "did we actually make money?": postback is closer to truth.

  • Revenue calculation: postback total
  • Profit calculation: postback total minus costs
  • Client reporting: postback (defensible / auditable)
  • LTV analysis: postback (matches actual buyers)

Document the discrepancy

Don't pretend they agree. Document for each campaign:

  • Meta-reported conversions: X
  • Postback-reported conversions: Y
  • Discrepancy: Z%

If discrepancy > 25%: investigate (something likely wrong with one source).

Reconciliation workflow

Monthly reconciliation:

  1. Pull Wevion's Meta-reported total
  2. Pull Wevion's postback-reported total
  3. Calculate discrepancy
  4. Look for patterns: certain campaigns / dates / placements with bigger gaps?
  5. Document acceptable threshold (10-20% typical)
  6. If beyond threshold: investigate (pixel issue, postback issue, click_id flow)

Choosing the conversion source

The conversion column has a single switchable source selector (persisted per user):

  • Default source: postback
  • Other sources: all, meta, google, taboola, tiktok, snapchat, outbrain
  • The column shows the count for whichever source is selected — there is no side-by-side dual column and no built-in discrepancy indicator in the table

To compare platform-reported vs postback, switch the source back and forth (or reconcile via exports).

For exports / client reports: pick a source consistently (don't mix).

Wevion's role in reconciliation

Wevion does NOT decide which source is "right". Wevion presents both + tracks the discrepancy.

You make the call per use case.

For affiliate marketers: postback often primary source (Meta data less critical when most traffic isn't directly attributed to Meta).

For direct e-commerce: Meta primary (pixel/CAPI reliable for own-site conversions).

Common patterns by business model

Direct e-commerce (Shopify / WooCommerce)

  • Primary source: Meta pixel + CAPI
  • Secondary: own analytics (GA4, Shopify Order Attribution)
  • Postback: optional if you also use a tracker

Affiliate marketing (Keitaro funnels)

  • Primary source: postback (truer to actual)
  • Secondary: tracker's own attribution
  • Meta-reported: for optimization signals only, not business truth

Mixed (own site + affiliate)

  • Two streams of data:
    • Direct: Meta CAPI primary
    • Affiliate: postback primary
  • Separate reports per stream
  • Don't blend; clarity matters

Disagreement size as signal

  • 0-5%: noise; ignore
  • 5-15%: normal; both functioning
  • 15-30%: investigate (pixel or postback issue)
  • > 30%: likely a setup problem (pixel broken, postback misconfigured, attribution model mismatch)

What you'll see in Wevion

In the Ads Manager table:

  • A single conversions column whose value reflects the selected source
  • A source selector (default postback; also all, meta, google, taboola, tiktok, snapchat, outbrain)
  • No side-by-side dual column and no automatic discrepancy % in the table — switch the source to compare

Common questions

  • "My Meta says 100 conversions, postback says 75. Which is right?": both, for different purposes. Real conversions probably closer to 75 (postback). Meta sees 100 because of view-through + cross-device.
  • "Should I disable Meta CAPI and just use postback?": NO. Meta needs CAPI for bidding optimization. Use both.
  • "My discrepancy is 50% — what's wrong?": investigate. Likely: click_id not flowing through to tracker, or pixel only firing on certain conversion paths.
  • "Can I get one unified number?": no — they're fundamentally different attribution methods. Pick one consistently per use case.

Best practices

Pick primary source per business case

Don't switch mid-month. Pick + document + stick with it.

Run both for redundancy

Even if you primarily trust one: run both. Lets you detect issues with either source (if one drops to 0, you know something broke).

Educate stakeholders

Clients / executives often confused by discrepancy. Explain: Meta's view = what Meta credits itself with; postback view = what your tracker confirms. Use the right one for the conversation.

Reconcile quarterly minimum

Periodic check prevents drift. If Meta + postback drift apart over time: investigate.

Steps

  1. Pull Wevion's Meta-reported total
  2. Pull Wevion's postback-reported total
  3. Calculate discrepancy
  4. Look for patterns: certain campaigns / dates / placements with bigger gaps?
  5. Document acceptable threshold (10-20% typical)
  6. If beyond threshold: investigate (pixel issue, postback issue, click_id flow)

Last updated: 2026-05-17