Why it happens
Attribution windows decide the day and the ad. Meta reports a conversion against the ad interaction that led to it, inside the attribution window you set, commonly 7-day click and 1-day view. A purchase can be dated to the day of the ad interaction or to the day of the order, depending on the column you read. Google Ads also dates conversions by the click. So a figure for yesterday can still change when you look again after a few days. Compare whole weeks, not single days.
Platforms process data after they collect it. Google says GA4 reports are not instant: Realtime shows events within minutes, standard reports fill in over hours, and processing can take 24 to 48 hours, during which figures may change. Some events arrive days late. Meta Events Manager and Ads Manager can also lag behind each other, so the first may show an event that the second does not count yet.
Late events carry a different date. A purchase sent from a server after a problem was fixed can arrive days after the order. Meta accepts events up to 7 days old. GA4 takes a purchase dated at most 72 hours back, so a tool that sends later has to date it differently, and GA4 then shows it on that date. Different time zones add a day of shift: the store, GA4 and the ad account can each use their own.
Check it yourself
- 1In Shopify admin, open Orders, filter by Sales channel if needed, and note the order's paid time. Shopify admin > Analytics > Reports shows the same orders by day in your store's time zone.
- 2In GA4, open Admin > Property details and read the time zone. If it differs from the store's, move the comparison by that shift.
- 3In GA4, open Reports > Monetization > Ecommerce purchases and compare the last 7 full days. Do not use today or yesterday, they are still being processed.
- 4In Meta Events Manager, open Data sources > your pixel > Overview and read the Purchase count by day. This view shows events by the day they happened.
- 5In Meta Ads Manager, open the Columns menu and compare the attribution setting your ad set uses with another window, for example 7-day click against 1-day click. A large difference points to late conversions rather than missing ones.
- 6In Events Manager, open Test events and Diagnostics for your pixel to see if events arrive late or with an old time.
- 7In Google Ads, open Goals > Conversions > Summary and check the conversion action's status and the attribution setting. Open the conversion action and look for its Diagnostics tab for problems Google lists.
- 8Repeat the comparison after 3 to 4 days. If the gap closes, the cause was timing. If it stays, look for blocked or missing purchases.
A server sends at payment, not at the next page view; see Shopify server-side tracking.
FAQ
How long should I wait before judging a day?
GA4 figures can change for up to 48 hours. For Meta, compare whole weeks after a few days.
Why does Ads Manager show a purchase on an earlier day than the order?
It can report the conversion against the day of the ad interaction, depending on the setting.
Is a delayed purchase counted twice?
No by itself. A repeat only happens when a second sender reports the same sale.
Can an old order still be sent?
Meta accepts events up to 7 days old and GA4 purchases at most 72 hours back, so very old orders cannot be added.