The short answer: Meta Ads usually reports more conversions than your store, CRM or GA4 for two reasons. First, Meta counts conversions differently: it credits sales to people who viewed an ad, not just people who clicked, and it uses its own attribution windows. Second, many accounts are genuinely double-counting, because the Meta Pixel and the Conversions API (CAPI) are both sending the same event without being de-duplicated. The first reason is a difference in rules. The second is a tracking error you should fix.
Reason 1: every platform plays by its own attribution rules
When someone buys after seeing your ads, Meta, Google Ads and GA4 each decide on their own whether that sale “belongs” to them. They use different rules, so they rarely agree.
Meta Ads. Meta’s default attribution setting is 7-day click and 1-day view. That means Meta takes credit for a purchase if the person clicked an ad in the last seven days, or simply saw an ad in the last 24 hours without clicking. For video, Meta can also credit engaged views: someone watched a meaningful part of a video ad, didn’t click, and converted shortly after. View and engaged-view credit is a big reason Meta’s numbers run higher than anything else.
Google Ads. Google’s default click-through window is 30 days (you can set it anywhere from 1 to 90). YouTube has its own engaged-view conversions, and Display and video ads track view-through conversions separately. View-throughs are reported in their own column and are not counted in your main “Conversions” number by default.
GA4. GA4 can only see what happens on your website. It has no idea that someone scrolled past your Instagram ad yesterday, so view-through conversions simply don’t exist in GA4. It credits conversions to sessions and clicks it can see, using data-driven attribution with a lookback window (90 days for most key events by default). If the visitor came back by typing your URL or searching your brand, GA4 may give the credit to direct or organic traffic instead.
On top of that:
- Everyone claims the same sale. One purchase can be claimed by Meta (a view), Google Ads (a click) and GA4 (organic search). Add the platforms together and you’ll “have” more conversions than orders.
- Timing differs. Ad platforms typically credit a conversion to the day of the ad interaction, while GA4 records it on the day it happened. Weekly and monthly totals drift apart because of this alone.
- Modeled conversions. Because of privacy changes such as iOS tracking opt-outs, Meta and Google both estimate some conversions they can’t observe directly. Those modeled numbers are useful, but they won’t match your order system line for line.
None of this means Meta is “lying”. It’s answering a different question: how many conversions happened after someone interacted with or saw my ads? GA4 answers: where did my website conversions come from, based on what my website could see?
Reason 2: the account is double-counting
This one is a real problem, and it’s more common than most people think. In my audit of a national supplements retailer’s Meta account, the most critical finding was that the account was double-counting conversions, which masked true performance behind inflated numbers. After the tracking was corrected, every decision about budgets and audiences was made on real data.
The usual culprits:
- Pixel and CAPI without de-duplication. Running the browser Pixel and the server-side Conversions API together is best practice, but each event needs a matching
event_nameand a sharedevent_idso Meta can recognize the two signals as one conversion. Without that, a single purchase is counted twice. - The Pixel installed twice. For example, hard-coded in the theme and added through Google Tag Manager or a platform app.
- Purchase events firing on page reloads. A customer refreshing the thank-you page, or returning to it from an email, triggers another “purchase”.
- Several pixels or datasets tracking the same site and reporting into the same ad account.
How to check and fix it
- In Events Manager, look at your Purchase or Lead event and confirm the browser and server events are being de-duplicated.
- Use the Test Events tool to place a test order and watch how many purchase events arrive.
- Compare Meta-reported purchases against actual orders for the same period, using the same attribution setting. A small gap is normal; Meta reporting 1.5x or 2x your real orders is a red flag.
- When you compare platforms, look at Meta with a click-only view (for example 7-day click) next to GA4. It won’t match perfectly, but it removes the biggest rule difference.
- Decide on one source of truth for revenue, usually your store or CRM, and use each ad platform’s numbers to optimize inside that platform.
The bottom line
Some gap between Meta, Google Ads and GA4 is completely normal. Different attribution windows, view-through and engaged-view credit, and modeling all guarantee it. A large gap, or Meta reporting more purchases than you actually had, usually points to duplicate tracking. Fix that first, then make budget decisions. If you’d like a second pair of eyes on your tracking, that’s exactly the kind of audit I do.
