LAUNCH$167 covers Shopify today. Buy now, get a free re-run when Klaviyo, Meta, and GA4 ship in two weeks. Price moves to $297 after. Lock in $167
DATA/GAPRUN A FREE AUDIT
FIELD NOTES·PROBLEM·MAY 10, 2026

The Meta CAPI setup mistakes that cost Shopify stores 30% of attribution

When CAPI works, it adds 15-30% of recovered attribution back to your Meta reporting. When it's misconfigured, it doubles up your Purchase events or worse, sends them with wrong values and you lose Meta's optimization trust.

Four mistakes I see most often on Shopify stores running CAPI.

Mistake 1: Missing event_id deduplication

The Pixel and CAPI both fire Purchase. If they share an event_id, Meta dedupes them server-side and counts them as one conversion. If they don't share an event_id (or use a different format on each side), Meta counts them as two conversions and your ROAS reporting doubles. Worse, Meta eventually flags your account for suspicious data and downgrades signal quality.

Fix: in your Customer Events pixel, generate a single event_id (typically the Shopify order_id) and pass it on both the Pixel call and the CAPI payload. The Shopify Meta channel app does this for you; custom setups often miss it.

Mistake 2: CAPI fires on Order Status but Pixel fires on Thank You

Some Shopify themes fire the Pixel Purchase event on the cart-thank-you page, but custom CAPI scripts attached to Shopify Flow webhooks fire on the order/created event. Different timing, different event_ids, no dedupe. Same doubling problem.

Mistake 3: Sending unhashed customer parameters

Meta requires customer parameters (em, ph, fn, ln) to be SHA-256 hashed before sending. Some custom CAPI implementations forget this and send raw values. Meta rejects the parameters silently, your match rate stays low, and you can't tell from Events Manager why.

Mistake 4: Sending events without action_source

Every CAPI event needs an action_source: website, app, email, etc. Without it, Meta treats the event as ambiguous and either drops it or refuses to dedupe against the matching Pixel call. Always set action_source: 'website' for Shopify Purchase events.

How to audit your CAPI setup

Open Meta Events Manager → Test events → look at the most recent Purchase. The right side panel shows whether the Pixel and CAPI both fired with matching event_id. If you see only one, you have a dedupe gap. If you see both with different event_ids, that's the doubling bug.

DataGap reads your Pixel feed via the Marketing API and reports CAPI status, match rate, and which customer parameters are being hashed. Ten-minute audit, $167 one-time.

RUN THE AUDIT
Want to know which of these gaps your Shopify store has right now?

DataGap connects to your Shopify store via read-only OAuth and returns a ranked list of tracking gaps in 10 minutes. $167 one-time. No subscription.

Run a free audit

Frequently asked

Will the Shopify Meta channel app set CAPI up correctly?

Mostly yes. It handles event_id dedup and hashing automatically. The mistakes above usually come from teams that built custom CAPI on top of the channel app or replaced it entirely.

How do I tell if Meta has flagged my account for bad data?

Events Manager → Data Quality tab. If you see warnings about duplicate events or low match rate, those are the signals Meta uses to downgrade your trust.

RELATED FIELD NOTES