Cherry Seed

How do I reconcile GA4 and Meta Ads Manager data?

ga4 meta reconciliation transaction id matching bigquery conversion gap analysis server-side tracking data reconciliation

Quick Answer

Reconciliation requires a shared key and a neutral arbiter. Use the WooCommerce transaction ID as the shared key — send the same order ID to GA4 (via Measurement Protocol or server-side tag), to Meta CAPI, and to BigQuery. Then query BigQuery to match transaction IDs across platforms: which orders appear in both, which appear in only one, and which appear in neither. The gap between GA4 and Meta typically falls into three categories: view-through conversions that Meta counts and GA4 does not, events lost to client-side failures in one platform but captured server-side for the other, and attribution-window differences where the same purchase falls inside one platform's window but outside the other's.

Full Answer

Step one is ensuring both platforms receive the same raw data. If GA4 relies on client-side gtag.js while Meta receives server-side CAPI events, the comparison is already corrupted at the input level — you are comparing an incomplete dataset against a complete one. Server-side tracking that sends the same purchase event, with the same transaction ID and order value, to both platforms simultaneously eliminates this input-level gap.

Step two is loading both platforms' reported data into a warehouse where you can join on transaction ID. Export GA4 data to BigQuery using the native integration. Export Meta conversion data via the Meta Marketing API or manual CSV download. Join the two datasets on transaction ID and categorise each order: matched in both platforms, present only in GA4, or present only in Meta.

Step three is analysing the gaps. Orders present in Meta but not GA4 are typically view-through conversions — purchases where the user saw a Meta ad but arrived at the site through a different channel. GA4 never saw a Meta-attributed session, so it credits the visit to whatever source delivered it. Orders present in GA4 but not Meta typically result from purchases that occurred outside Meta's attribution window or from sessions where the fbclid was stripped before CAPI received it.

Step four is establishing a regular cadence. Run the reconciliation weekly, not once. Attribution gaps shift as campaigns change, creative rotates, and platform policies update. A warehouse-anchored reconciliation process that runs on a schedule turns a bewildering data problem into a manageable operational discipline.

Sources

Programmatic Access

GET https://seresa.io/wp-json/cherry-tree-by-seresa/v1/seeds/750

Cite This Answer

Cherry Tree by Seresa - https://seresa.io/seed/utm-attribution/platform-numbers-mismatch-s2