Say Meta Ads Manager reports 140 purchases this week. Shopify shows 210 orders in total, and GA4 credits paid social with 70. Which number is right?
Usually all three are, by their own rules. Each tool sees different data and answers a slightly different question. The useful skill isn't finding the one true number. It's knowing which number to use for which decision, and checking them against each other so none of them fools you.
Why the numbers differ
Attribution windows. Each tool only credits a sale if it happens within a set time after an ad interaction. Meta lets you choose click and view windows, and GA4 has its own lookback settings. Defaults change over time, so check what your accounts actually use before you compare anything.
View-through vs. click-through. Meta can credit a purchase to someone who saw an ad and didn't click it. Shopify and GA4 mostly see the visit itself, usually tied to a click with UTM parameters. A view-through sale shows up in Meta and looks like direct or organic traffic everywhere else.
Modeled conversions. When a platform can't observe a conversion directly, because of browser restrictions or consent choices, it may estimate it with statistical modeling. Meta and GA4 both do some version of this. Modeled numbers aren't made up, but they are estimates.
Cross-device journeys. Someone sees your ad on their phone and buys on a laptop two days later. Meta may connect those if the person is logged in on both. GA4 and Shopify often can't, so the sale gets credited to whatever brought them back.
Cookie and consent limits. Browser tracking restrictions, ad blockers and consent banners all remove signal. Each tool loses a different slice, so the gaps don't line up.
Different attribution models. Each ad platform reports the conversions it believes it drove, so if a customer touched both a Meta ad and a TikTok ad, both platforms may claim the same order. GA4 assigns credit across all channels using the attribution model set in your property. Shopify's marketing reports apply their own rules to the sessions they can see. Ask each tool "who gets credit?" and you'll get different answers.
Time zones and reporting dates. Your ad account, store and GA4 property can each be set to a different time zone. Ad platforms also often report a conversion against the date of the ad interaction, while Shopify reports by order date. A Sunday click that turns into a Tuesday order can land on different days in different tools.
Pick a source of truth for each decision
No single tool should run every decision. Match the source to the question you're answering.
| Decision | Source to trust | Why |
|---|---|---|
| How much did we sell, and are we profitable? | Shopify (or your order system) and your accounting | It's the actual record of orders, refunds and revenue |
| Which ad, ad set or creative is winning inside Meta? | Meta Ads Manager | Both sides of the comparison use the same rules |
| How do channels compare, and what do visitors do on site? | GA4 | One consistent set of rules across every channel |
| Should total spend go up or down? | Blended metrics like MER, plus incrementality tests | Neither depends on any single platform's attribution |
Comparisons inside one platform are more reliable than comparisons across platforms. If two ads in the same Meta campaign are measured with the same window and model, most of the bias applies to both. That's why Meta's reporting is useful for picking winners even when its totals don't match Shopify.
Use blended metrics as a sanity check
MER, or marketing efficiency ratio, is total revenue divided by total marketing spend over the same period. It ignores attribution entirely.
In this example, a store does $120,000 in revenue in a month and spends $30,000 on ads across every channel. MER is 4.0. Now say Meta's reported ROAS climbs every week while you raise spend, but MER stays flat. That's a sign the platform may be claiming sales that would have happened anyway.
MER has limits. It mixes new and returning customers, and email, organic, seasonality and promotions all move it. Watch the trend over several weeks, not a single day. The post on CAC, MER, ROAS and contribution margin covers how these numbers fit together.
Simple ways to test incrementality
Attribution tells you which touchpoints a customer had. Incrementality asks a harder question: would the sale have happened without the ad? You don't need a data science team to get a rough answer.
- Holdout tests. Keep a portion of your audience from seeing ads and compare their purchase rate with the group that does see them. Meta has lift measurement tools, but access and requirements vary, so check what your account offers.
- Geo tests. Pause or increase spend in a set of regions while keeping the rest the same, then compare each group's sales against its own usual pattern. Pick regions that normally behave alike.
- Time-based tests. Change spend meaningfully for a defined period and watch total sales and MER. This is the noisiest option, because promotions, email sends and seasonality overlap. Hold everything else as steady as you can, and repeat the test if the signal is unclear.
None of these is perfect. They're good enough to tell you whether your platform reporting is roughly honest or badly optimistic, which is the question that matters most when you're deciding on budget.
Keep your UTMs clean
GA4 and Shopify depend on UTM parameters to know where a visit came from. Sloppy tagging makes good campaigns look bad and bad ones look invisible.
- Tag every paid ad. Use utm_source, utm_medium and utm_campaign at minimum, and utm_content to identify the ad or creative.
- Pick one naming convention and keep it. "facebook", "Facebook" and "fb" show up as three different sources. Lowercase everything.
- Use dynamic parameters where the platform supports them, so campaign and ad names fill in automatically. Check the platform's current documentation for the available fields.
- Don't put UTMs on internal links. Tagging links within your own site can overwrite the original traffic source.
- Test your redirects. Some redirects strip query strings, which turns paid clicks into "direct" visits.
- Audit monthly. Scan GA4's source and medium report for strays and fix them where the link is created.
The short version
- The tools disagree because they use different windows, models, data and dates. That's expected.
- Use Shopify for what you sold, platform reporting for comparing ads inside a platform, and GA4 for cross-channel and on-site behavior.
- Watch MER over time as a check on whether platform-reported results are real.
- Run an occasional holdout, geo or time-based test to see what's actually incremental.
- Clean, consistent UTMs make every other report more trustworthy.