Why don't Meta, Google Ads and GA4 conversions match?

By Motabar Javaid · · 7 min read

Short answer: Meta, Google Ads and GA4 are not measuring the same thing. Each ad platform gives itself credit for any sale that happens inside its own attribution window, counts conversions on the day of the ad click instead of the day of the sale, and (in Meta's case) counts people who only saw an ad. GA4 splits credit across every channel and loses data to ad blockers and consent banners. So the platforms will never match exactly. A gap of 10 to 30 percent is common. A gap that suddenly jumps, or numbers that move in opposite directions, usually means something is broken.

If you've ever added up the purchases in Meta Ads Manager and Google Ads and got more sales than your store actually made, you're not alone. It's the most common question I get from founders, and it's usually the reason they start doubting every number they look at.

The good news is that most of the gap is explainable. Once you know which parts are normal, the parts that aren't normal become much easier to spot.

1. Every platform takes credit for the same sale

This is the big one.

Say a customer clicks a Meta ad on Monday, clicks a Google search ad on Wednesday, and buys on Thursday.

  1. Meta sees a click inside its window and counts the purchase.
  2. Google Ads sees a click inside its window and counts the purchase too.
  3. GA4 uses data driven attribution by default, so it splits the credit between Paid Social and Paid Search (and anything else in the path).

One sale, two full conversions in the ad platforms, and fractions in GA4. Add up the ad platforms and you will always get more conversions than you really had. This isn't a bug. Each platform is answering "did my ads help?", not "how many sales happened?"

2. Meta counts people who only saw your ad

Meta's default attribution setting is 7 day click and 1 day view. That second part means if someone scrolled past your ad without clicking and bought within a day, Meta counts it.

GA4 has no idea that impression happened. It only sees the visit, which might have come from a Google search or a direct visit. So Meta will often report more conversions than GA4 gives to Paid Social, especially for brands with lots of reach and lots of returning customers.

You can switch Meta to a click only view in Ads Manager under Columns > Compare attribution settings to see how much of your reported revenue is view through.

3. They report on different days

  1. Google Ads and Meta usually report a conversion on the date of the ad click or impression.
  2. GA4 reports it on the date the purchase actually happened.

If someone clicks an ad on the 28th and buys on the 3rd of the next month, Google Ads puts that sale in the earlier month and GA4 puts it in the later one. Over a full quarter this mostly evens out. Day by day or week by week, it can look like a huge mismatch.

4. Lookback windows are different lengths

Each tool only looks back so far for an ad interaction:

  1. Meta: 7 days after a click by default
  2. Google Ads: 30 days after a click by default for most conversion actions
  3. GA4: 90 days for most key events by default, 30 days for first visits and first opens

A customer who clicked a Google ad 40 days ago and came back to buy will show up in GA4 but not in Google Ads. With longer sales cycles, like B2B, high ticket products or anything with a trial, this gap gets bigger.

5. GA4 loses more data in the browser

GA4's standard tag runs in the browser, so it gets hit by:

  1. Ad blockers and privacy browsers that block Google Analytics outright
  2. Cookie consent banners, where visitors who decline can't be fully tracked (Consent Mode v2 fills some of that gap with modelling)
  3. Safari and iOS limiting how long cookies last, which breaks the link between an ad click today and a purchase next week

Meta's Conversions API and Google's Enhanced Conversions send data from your server or attach hashed customer details, so the ad platforms often recover conversions that GA4 never sees. If you've set those up but GA4 is still browser only, expect GA4 to come in lower.

6. Duplicate events inflate one side

If you run the Meta Pixel and the Conversions API together, Meta needs a matching event_id on both to know it's the same purchase. Without it, every order can be counted twice.

The same thing happens in GA4 when a purchase event fires again on a thank you page refresh. GA4 deduplicates purchases that share a transaction_id, so if that parameter is missing or different each time, duplicates slip through.

This is one of the most common real bugs I find. The tell is simple: one platform reports roughly double what your store or CRM shows.

7. Counting rules aren't the same

  1. In Google Ads, a conversion action can count "every" conversion or just "one" per ad click. Lead forms are often set to "one", purchases to "every".
  2. In GA4, key events count every time the event fires by default, unless you change the counting method to once per session.

If a lead submits your form twice, Google Ads might count one and GA4 two.

8. Time zones and currencies

This one is boring but it catches people all the time. If your GA4 property is set to UTC, your Google Ads account to New York time and Meta to London time, a sale at 11pm can land on three different days. Revenue gets the same treatment with currency: a Meta account in USD reporting on a store that sells in GBP will never line up perfectly.

Check that all three use the same time zone and currency before you compare anything.

Which gaps are normal and which mean something is broken

Usually normal:

  1. Ad platform totals add up to more than your real sales
  2. Meta reports more than GA4 gives to Paid Social, by a fairly steady amount
  3. Daily numbers differ, but monthly totals follow the same trend

Usually broken:

  1. One platform reports close to double your real orders (duplicate events)
  2. The gap suddenly gets much bigger after a site update, a new checkout, or a consent banner change
  3. GA4 conversions drop to near zero for one channel while ad platform conversions stay flat
  4. A big share of your GA4 traffic shows as Direct / (none), which often means UTM parameters or click IDs are being lost on redirect
  5. Your CRM has leads with no source data at all

A 10 minute check you can run today

Pick the last full month and write down four numbers:

  1. Orders or leads in your backend (Shopify, Stripe, HubSpot, wherever the truth lives)
  2. Purchases or leads in GA4
  3. Purchases or leads in Meta Ads Manager (7 day click only)
  4. Conversions in Google Ads

Your backend number is the source of truth. GA4 should usually come in a bit below it, because of consent and ad blockers. If GA4 is above your backend, you almost certainly have duplicates. If it's far below, events are being lost somewhere.

For the ad platforms, compare each one to its own previous months rather than to each other. If Meta reported 80 percent of backend orders last quarter and suddenly reports 140 percent, that's worth investigating. If it's always been around 80 percent, that's just how Meta counts.

For a real example, the photography studio case study shows what happened when Meta and GA4 disagreed and nobody knew which to believe.

How to get numbers you can actually trust

Matching the platforms exactly isn't the goal. Knowing which number to trust for which decision is. The setup I usually recommend:

  1. Use your backend or CRM as the source of truth for revenue and lead counts.
  2. Fix deduplication with a shared event_id for Meta Pixel and CAPI, and a real transaction_id on every GA4 purchase.
  3. Align time zones, currencies and conversion definitions across all three tools.
  4. Move key conversions server side so ad blockers and short cookie lifetimes don't decide what gets counted. My server side tracking setup page explains how that works.
  5. Pull everything into one place, usually BigQuery, and join ad spend, GA4 sessions and backend orders on a single dashboard, so you compare channels against real revenue instead of against each other's claims.

If you want to know whether your own setup has any of the broken patterns above, the free GA4 health check walks you through the main warning signs. If you'd rather have someone dig in for you, that's exactly what my GA4 audit and repair service is for.

Frequently asked questions

Should GA4 and Google Ads show the same number of conversions?

No. Google Ads gives itself full credit for conversions inside its click window and reports them on the day of the ad click, while GA4 shares credit across channels and reports on the day of the conversion. Expect a steady gap, and investigate if it suddenly changes.

Which number should I trust, Meta, Google Ads or GA4?

Trust your store or CRM for how many sales and leads you actually got. Use each ad platform's numbers to compare its own campaigns against each other, and GA4 to compare channels on the same rules.

Does server side tracking make the numbers match?

It closes part of the gap by recovering conversions that browsers and ad blockers would otherwise lose. The platforms still use different attribution rules, so they still won't match exactly.