Meta Ads says your campaigns generated one revenue number. GA4 gives paid social a much lower number. Your eCommerce platform shows something different again.
The first reaction is usually to ask which platform is wrong.
That is not where I would start.
Before comparing attribution, I separate three questions:
- Did the order actually happen?
- Did each measurement platform receive the purchase correctly?
- Which marketing interaction did each platform decide should receive credit?
Those are three different measurement problems.
If you mix them together, you can waste hours trying to make Meta Ads match GA4 when the difference is completely legitimate. Worse, you can change campaigns or reduce budget because GA4 shows less Meta revenue even though the real problem is attribution, not campaign performance.
For eCommerce businesses, the goal should not be to force Meta Ads, GA4 and the store backend to display identical revenue. The goal is to understand what each system is measuring, verify that purchase data is trustworthy, and use each number for the decision it can actually support.
Why Meta Ads and GA4 Can Report Different Revenue for the Same Store
A customer does not experience your marketing as separate reporting platforms.
They may see a Meta ad on Monday, visit your product page, leave, return through an email two days later, search your brand on Google on Friday and finally purchase directly on Saturday.
Your store sees one order.
Meta may see enough interaction with its advertising to attribute that purchase to a Meta campaign under the attribution setting being used.
GA4 sees a broader sequence of website and app interactions and applies its own attribution logic to the purchase based on the traffic-source dimension, report and attribution settings being analysed.
The same ₹5,000 order has not suddenly become two orders. Different systems are assigning marketing credit to the same commercial outcome.
This distinction matters:
Revenue recorded by your store and revenue attributed to an advertising channel are not the same thing.
If you treat them as the same, almost every cross-platform comparison becomes misleading.
Start With Three Questions: Did the Order Happen, Was It Tracked, and Who Gets Credit?
When I review a Meta Ads versus GA4 revenue discrepancy, I work backwards from the transaction rather than starting inside Ads Manager.
| Question | What to check | What it tells you |
|---|---|---|
| Did the order happen? | Store backend, order ID, order value, payment status | Whether there is a real transaction to reconcile |
| Was the order tracked? | GA4 purchase event, Meta Purchase event, transaction/event identifiers, purchase value | Whether measurement systems received the commercial event correctly |
| Who gets credit? | Meta attribution reporting, GA4 traffic-source scope and attribution report | Why channel-level revenue differs even when the transaction is valid |
This order is deliberate.
If the store contains 100 valid orders but GA4 received only 70 purchase events, that is not primarily an attribution-model discussion. You have a measurement problem first.
If the store has 100 orders, GA4 has roughly 100 valid purchases, Meta is receiving the expected Purchase events, but Meta and GA4 give paid social different amounts of revenue, attribution becomes the more likely explanation.
Do not diagnose attribution before establishing whether the underlying transaction data can be trusted.
What Meta Ads Is Actually Counting
Meta Ads Manager is an advertising measurement system.
Its job is not to reproduce your store's order ledger. It tries to determine which conversions can be attributed to Meta advertising based on the advertising interactions and attribution settings available to Meta.
This can include purchases that happen after someone clicks an ad and, depending on the attribution setting and available signals, conversions following eligible ad views or other supported interactions.
That is one major reason Meta can report more attributed revenue than GA4 gives to paid social.
Imagine this simplified journey:
- A shopper sees a Meta ad.
- They do not purchase immediately.
- They later visit through another channel.
- They complete an order.
Meta may have enough advertising history to associate that purchase with the earlier ad interaction.
GA4 may assign the same purchase differently because it is evaluating the journey from a different measurement environment and attribution framework.
Neither number should automatically be described as fake.
The better question is:
What exactly is this platform claiming credit for, and under what rules?
There is another layer here. Meta depends on the Purchase signals it receives. If browser-side Pixel events and server-side Conversions API events are implemented incorrectly, missing events or duplicate purchases can distort campaign reporting.
I would not troubleshoot all of that inside this article because it is a separate technical problem. If you suspect event delivery or deduplication, see my guide to Meta Pixel and Conversions API for eCommerce.
What GA4 Is Actually Counting
One of the biggest mistakes in this comparison is treating "GA4 revenue from Meta" as if GA4 has only one way of assigning revenue to traffic.
It does not.
GA4 has user-scoped, session-scoped and event-scoped traffic-source dimensions. Those scopes answer different questions.
Session-scoped reporting answers how the session was acquired
A dimension such as Session source / medium describes the source associated with the session.
If the shopper started the purchase session from another channel, session-scoped reporting can give that channel the revenue even when Meta influenced the customer earlier.
Event-scoped reporting can apply the selected attribution model
Event-scoped traffic dimensions can use the GA4 property's reporting attribution model.
With data-driven attribution, credit for a purchase can be distributed across multiple contributing interactions rather than assigning the entire purchase value to a single touchpoint.
That is why you can sometimes see fractional conversion or revenue credit in GA4.
For example, one ₹10,000 purchase does not necessarily mean one channel must receive exactly ₹10,000 of attributed revenue in every attribution report.
GA4 may distribute portions of that credit across contributing channels according to the reporting model.
Your GA4 report choice can change the answer
This matters when someone says:
"GA4 says Meta generated ₹4 lakh."
My next question would be:
Which GA4 report, which traffic-source dimension and which attribution scope are you looking at?
Revenue broken down by Session default channel group is answering a different question from revenue analysed using event-scoped attribution dimensions.
If two people are comparing different GA4 reports, they can argue about Meta performance while both reports are behaving as designed.
For deeper behavioural analysis after acquisition, my GA4 eCommerce funnel guide covers how I use GA4 to diagnose where shoppers move forward or drop out.
The Main Reasons Meta Ads Revenue and GA4 Revenue Differ
Attribution differences rarely come from one single cause. I normally separate them into several categories.
1. Meta and GA4 are evaluating different eligible interactions
Meta has direct visibility into interactions with Meta ads.
GA4 measures the customer journey through the signals available inside its own measurement environment.
Those datasets are not identical.
If Meta knows a shopper viewed an ad and later purchased, Meta may have advertising evidence that GA4 does not represent in the same way inside its channel attribution.
2. The attribution rules are different
An advertising platform naturally evaluates performance through the lens of its own advertising ecosystem.
GA4 is designed for cross-channel analytics.
If several marketing interactions contribute to a purchase, GA4 can assign credit across the journey while Meta may still attribute the conversion to an eligible Meta interaction.
This is why adding Meta revenue, Google Ads revenue and other platform-attributed revenue together can easily produce a number larger than the revenue your business actually generated.
Each platform may be claiming credit for some of the same customers.
3. View-through attribution can increase Meta's reported contribution
A customer does not always click the Meta ad that influenced them.
They may see the ad, remember the product, search for the brand later and buy.
Meta may attribute an eligible purchase after an ad view depending on the reporting configuration and available signals.
GA4 does not have the same Meta ad-view signal set.
If Meta revenue drops substantially when you isolate click-based attribution compared with broader attribution, that tells you something useful about how much reported performance depends on non-click interactions.
It does not automatically tell you whether those impressions caused the purchases.
Attribution and incrementality are different questions.
4. GA4 may split revenue credit across channels
Consider this hypothetical journey:
Meta ad → organic search → email → paid search → purchase
Your store records one purchase.
Meta may attribute that purchase to Meta if the interaction qualifies under its attribution rules.
GA4 data-driven attribution may distribute credit across several interactions.
That means comparing Meta's full attributed purchase value with only GA4's paid-social portion is not an apples-to-apples comparison.
5. Session reporting and attribution reporting are not the same thing
This is one of the first GA4 checks I would make.
If you use Session source / medium, you are analysing the source that originated the session.
If you use event-scoped attribution reporting, you are analysing how credit for the purchase is assigned across eligible touchpoints.
Those can produce different revenue numbers without anything being broken.
6. Meta and GA4 may not receive the same purchases
Now we move away from legitimate attribution differences and into tracking.
Possible causes include:
- GA4 purchase events not firing on some transactions
- Meta Purchase events not reaching Meta
- browser restrictions or consent affecting measurement
- server-side events configured incorrectly
- checkout or payment flows breaking tracking continuity
- duplicate purchase events
- missing or inconsistent transaction identifiers
- incorrect purchase values
If the underlying purchase counts are wrong, debating attribution models is premature.
7. Revenue definitions may not match
"Revenue" sounds like a simple metric until you inspect how each system is populated.
Questions I would check include:
- Does the purchase value include or exclude shipping?
- How is tax handled?
- Are discounts reflected correctly?
- Are cancelled orders still present in one system?
- Are refunds being sent back to GA4?
- Does Meta continue to show the originally attributed purchase value after a later refund?
- Are different currencies being converted consistently?
GA4 cannot know about a refund simply because your eCommerce platform processed one. The relevant refund data needs to reach GA4 if you expect its purchase revenue reporting to reflect it.
The same principle applies across systems: a platform can only report the commercial information it receives and processes.
8. Identity and cross-device behaviour affect attribution
A shopper might discover a product on Instagram on their phone, research it later on a laptop and complete the purchase on another device.
Measurement platforms use different identity signals and modeling techniques to connect those interactions.
They will not always reconstruct the same customer journey.
Privacy choices, consent configuration, browser behaviour and logged-in signals can all affect what is observable.
9. Reporting windows, time zones and processing can shift totals
Before investigating a small daily discrepancy, check the basics:
- same start and end dates
- same account/property time zone
- same currency
- same purchase definition
- comparable reporting scope
GA4 attribution data can also continue to change after the purchase as attribution and modeled data are processed.
This is one reason I would avoid diagnosing a serious attribution problem from yesterday's numbers alone.
Why Meta Can Report More Revenue Than GA4 Without Either Platform Being Broken
Meta reporting higher revenue than GA4 is not automatically evidence that Meta is inflating performance.
It can happen because Meta is answering a different attribution question.
Suppose a customer:
- sees a Meta prospecting ad
- visits the store
- leaves without purchasing
- returns through organic search several days later
- signs up for email
- clicks an email
- purchases
Meta may see an eligible relationship between the purchase and the Meta ad.
GA4 may distribute the conversion credit across the customer's other interactions or associate the purchasing session with another source depending on the report being used.
The order exists once.
The disagreement is about marketing credit.
That is a normal attribution problem.
Now change the scenario.
Your store has 200 completed orders. GA4 shows approximately 200 valid unique purchase transactions. Meta suddenly reports 350 Purchase events after a new server-side tracking deployment.
That is a different pattern.
I would investigate duplicate event collection before defending the difference as attribution.
The shape of the discrepancy matters more than the existence of the discrepancy.
When the Difference Signals a Tracking Problem
A consistent difference between platforms can be normal.
A sudden unexplained change deserves attention.
| Symptom | Possible explanation | First check |
|---|---|---|
| Meta consistently reports more attributed revenue than GA4 | Different attribution rules, view-through contribution, cross-channel credit | Compare attribution scope before changing tracking |
| Both GA4 and Meta show fewer purchases than the store | Tracking loss, consent, checkout implementation | Match store transaction IDs against captured purchase events |
| Meta purchases suddenly increase after CAPI implementation | Possible browser/server duplication | Check event deduplication and Purchase-event counts |
| GA4 purchases suddenly fall after a site or consent change | Collection problem | Verify the purchase event and consent behaviour |
| Purchase counts are similar but revenue differs heavily | Purchase-value implementation | Compare individual transaction values |
| GA4 reports disagree with each other | Different traffic-source scopes or attribution logic | Check whether dimensions are session-, user- or event-scoped |
Timing gives you another clue.
If Meta has always attributed more revenue than GA4 by a reasonably consistent pattern, that can be explained by measurement methodology.
If the difference doubles immediately after:
- a checkout migration
- a consent-management update
- a Pixel change
- a new Conversions API integration
- a GA4 implementation change
- a payment gateway change
I would assume nothing until I verify the implementation.
If the measurement layer itself looks unreliable, the broader eCommerce measurement and conversion tracking framework becomes more important than debating which attribution model you prefer.
How I Would Reconcile Meta, GA4 and Store Revenue
I would not start by downloading three revenue totals and calculating the percentage difference.
I would reconcile the systems in this order.
Step 1: Establish transaction truth in the store
Start with your actual orders.
For the selected date range, pull:
- order or transaction ID
- order timestamp
- order value
- currency
- payment status
- cancellation status
- refund status
This becomes the commercial reference set.
I call this transaction truth, but even here you need to define what "revenue" means. Gross orders, paid orders, fulfilled revenue and net revenue after refunds are different business numbers.
Step 2: Check GA4 purchase completeness
Now compare store orders with GA4 purchase events.
I would look for:
- missing transaction IDs
- duplicate transaction IDs
- purchase events with zero or incorrect value
- currency problems
- orders appearing in the store but not GA4
- GA4 purchases that do not correspond to real orders
You do not need exact perfection before doing any analysis, but you need to know the size and pattern of the measurement gap.
Step 3: Check Meta Purchase-event quality
Do the same conceptually for Meta.
Ask whether Purchase events represent real customer transactions and whether browser and server implementations are producing the intended event count.
If Meta's Purchase signal is wrong, its optimisation system is also learning from bad data.
That is more serious than a reporting inconvenience.
Step 4: Separate event collection from attribution
Once purchase collection looks credible, stop comparing raw event collection with attributed channel revenue as though they are the same metric.
Now ask:
- How much of Meta's reported revenue comes from click-based versus other eligible attribution?
- Which GA4 report are we comparing against?
- Is GA4 using session-scoped or event-scoped traffic-source dimensions?
- What attribution model is the GA4 property using?
- What other channels appear in the customer's path?
This is where the discrepancy becomes an attribution analysis rather than a tracking audit.
Step 5: Look at the pattern, not one percentage
I would not create a rule such as:
"Meta should be within 15% of GA4."
There is no useful universal benchmark like that.
The expected gap depends on:
- your attribution configuration
- customer purchase cycle
- share of repeat buyers
- brand demand
- channel mix
- device behaviour
- tracking coverage
- consent rates
- how much Meta activity is upper-funnel
- how revenue and refunds are implemented
A stable 25% difference in one business and a stable 25% difference in another can have completely different causes.
Step 6: Investigate sudden deviations
Create a baseline for the relationship between:
- store revenue
- GA4 recorded purchase revenue
- Meta attributed purchase value
- Meta ad spend
You are not trying to make these lines overlap.
You are looking for unexpected structural changes.
If Meta normally claims a certain share of total store revenue and that relationship changes sharply without a corresponding media or business change, investigate.
If GA4 purchase capture normally tracks the store closely and suddenly falls away, investigate.
Consistency is not proof that tracking is correct, but abrupt changes are useful diagnostic signals.
Which Revenue Number Should You Use for ROAS and Budget Decisions?
This is where the argument about "which platform is correct?" usually becomes unproductive.
I use different systems for different questions.
| System | What I use it for | What I would not assume |
|---|---|---|
| Store / backend | Orders, actual commercial revenue, refunds, customer and product economics | That it can explain which marketing interaction deserves credit |
| Meta Ads | Campaign, ad set and creative optimisation inside Meta's advertising system | That Meta-attributed revenue equals incremental business revenue |
| GA4 | Cross-channel journeys, acquisition analysis, behaviour and attribution analysis | That one GA4 report represents the only correct view of Meta's contribution |
| Blended business reporting | Total marketing efficiency, CAC, MER, contribution and profitability | That platform ROAS alone can answer business-level profitability questions |
Use Meta data to optimise Meta, but do not stop there
Meta's own conversion signals matter because its delivery system is optimising against those signals.
If one campaign consistently produces stronger purchase outcomes than another inside a clean and trustworthy tracking setup, that information is useful.
But platform ROAS should not become the entire business measurement system.
Meta can receive credit for a purchase that another platform also influences.
That means platform-level ROAS cannot simply be added together to calculate business performance.
Use GA4 to understand the wider customer journey
GA4 becomes useful when the question changes from:
"Which Meta campaign is performing better?"
to:
"How are customers actually reaching and converting on the site across channels?"
It can help expose relationships between paid social, organic search, paid search, direct traffic, email and other acquisition sources.
For a broader discussion of how those channel-credit decisions affect marketing analysis, see my page on eCommerce attribution.
Use your backend for commercial reality
If Meta says it generated ₹20 lakh and another ad platform also claims ₹20 lakh, but the business collected only ₹25 lakh in total revenue, both platforms cannot independently have generated ₹40 lakh of unique sales.
The overlap tells you why platform attribution needs a business-level control.
For budget decisions, I would also look at:
- total revenue
- new customer revenue where available
- total ad spend
- CAC
- gross margin
- contribution margin
- repeat purchase behaviour
- incrementality evidence where available
A higher platform ROAS can still produce a worse business outcome if the campaign mainly captures existing demand, low-margin products or customers who would have purchased anyway.
Meta Ads Attribution Does Not Prove Incrementality
This point is easy to miss.
Attribution asks:
Which marketing interaction should receive credit for this purchase?
Incrementality asks:
Would this purchase have happened without the advertising?
Those are not the same question.
If a loyal customer sees a retargeting ad and purchases an hour later, Meta may legitimately attribute that purchase under its reporting rules.
That does not prove the ad caused a purchase that would otherwise never have happened.
This becomes especially important when:
- brand demand is strong
- repeat purchase rates are high
- retargeting receives a large share of spend
- customers interact with several channels before purchasing
- Meta is claiming a large share of total store revenue
You should not respond by ignoring Meta attribution completely.
You should recognise what it can and cannot prove.
Do Not Try to Fix Attribution by Forcing Meta and GA4 to Match
I would be concerned if an account manager's measurement objective was:
"Make Meta Ads revenue match GA4."
That is not a valid goal by itself.
You can manipulate attribution windows, reporting dimensions and campaign tracking until two dashboards look closer while learning nothing about the accuracy of the underlying data.
The better objectives are:
- Make sure real orders are recorded correctly.
- Make sure GA4 receives reliable purchase data.
- Make sure Meta receives reliable, deduplicated purchase signals.
- Understand the attribution logic behind each report.
- Use platform reporting for platform optimisation.
- Use cross-channel and backend reporting for business-level decisions.
If those foundations are correct, Meta Ads and GA4 can disagree and still both be useful.
If those foundations are wrong, getting the dashboards to match can give you false confidence.
What I Would Check Before Cutting Meta Budget Because GA4 Shows Less Revenue
If Meta Ads looks profitable but GA4 gives paid social much less credit, I would not immediately reduce budget.
I would first check:
- Store revenue: Did total business revenue actually weaken?
- Purchase tracking: Are GA4 and Meta receiving valid orders?
- GA4 report scope: Are we looking at session acquisition or event-scoped attribution?
- Meta attribution: How much reported performance depends on clicks versus other eligible interactions?
- Channel interaction: Are Meta users later converting through search, email or direct traffic?
- New customer performance: Is Meta helping acquire customers or mainly recapturing existing demand?
- Blended efficiency: What happened to total revenue, CAC, MER and margin as Meta spend changed?
That last check matters.
If Meta spend increases while store revenue, new-customer acquisition and contribution deteriorate, platform-reported ROAS deserves scrutiny.
If GA4 gives Meta relatively little last-session credit but increasing Meta spend consistently supports stronger new-customer and blended business performance, cutting the channel based only on GA4 attribution may be the wrong decision.
The right answer depends on the evidence across systems, not on choosing one dashboard as the universal truth.
How to Think About Meta Ads vs GA4 Revenue
The simplest framework is this:
Your store tells you that the order happened.
Your tracking tells you whether the platforms received the purchase.
Your attribution systems decide who gets credit.
Keep those three layers separate.
If the order does not exist, you have a transaction problem.
If the order exists but the event is missing or duplicated, you have a tracking problem.
If the order and events are valid but Meta and GA4 assign different revenue to paid social, you have an attribution question.
Trying to solve all three by asking "Why doesn't Meta match GA4?" is too vague to produce a reliable answer.
If you are spending meaningful budget on Meta and cannot tell whether the discrepancy comes from event collection, attribution or actual campaign economics, that is the point where the measurement setup needs to be reviewed alongside the campaigns. My Meta Ads for eCommerce approach treats measurement as part of campaign performance rather than a separate reporting exercise.
Fixing the wrong problem wastes budget. Establish transaction truth first, verify the signals second, and interpret attribution only after the measurement foundation is credible.