Attribution ยท Sprites diagnoses this

GA4 vs Meta Ads conversions: why Meta reports more

Meta counts a conversion when someone clicked an ad in the last 7 days, or engaged with or saw one the day before, even if they came back later through Google. GA4 cannot see ad views and credits the session that converted, so Meta only gets what UTMs can trace. Meta reporting more than GA4 is the normal direction of the gap.

$1 today. Cancel anytime before day 7.

What Sprites checks

  • ?Meta attribution setting7d click, 1d engage, 1d view
  • !UTMs on every ad3 ads with no URL parameters
  • !GA4 session sourceMeta clicks landing as direct
  • ?Date basisMeta by ad interaction, GA4 by event
Illustration of a typical broken account. Your own readout comes from your account.

Why it happens

View-through and engage-through credit

  1. View-through and engage-through credit

    Meta credits conversions to people who saw an ad within 1 day, or liked, shared or watched one within 1 day, without clicking. GA4 has no way to see either, so those conversions never show up as Meta in GA4.

  2. Missing or broken UTMs

    Ads without URL parameters, or links whose parameters get stripped on the way, arrive in GA4 as direct or as an unassigned referral from facebook.com. See UTM parameters stripped and fbclid.

  3. Cross-device and in-app browsers

    Someone taps an ad in the Instagram app, browses in its in-app browser, then buys on a laptop. Meta ties both to the same person; GA4 sees two unrelated visitors.

  4. Different dates and models

    Meta reports a conversion on the day of the ad interaction by default; GA4 on the day it happened. GA4 then shares credit across channels with its own model, so Google search often takes the credit Meta also claims.

  5. Modeled conversions

    Meta fills gaps from opted-out and iOS traffic with modeled conversions. GA4 models only where consent mode is set up. The two models never agree.

How to line them up, step by step

  1. See Meta on a click-only basis

    In Ads Manager open Columns, then Compare attribution settings, and add 7-day click alongside your default. The click-only column is the closest Meta gets to what GA4 can trace.

  2. Tag every ad

    In each ad, under Destination, fill URL parameters with utm_source, utm_medium and utm_campaign. Use the same values everywhere so GA4 groups them as Paid Social.

  3. Read Meta traffic in GA4

    In GA4 open Reports, Acquisition, Traffic acquisition and filter Session source / medium to your Meta values. Compare that key event count with the 7-day click column, not the default.

  4. Compare on the same dates

    Use a full 30-day range on both sides. In Meta Ads Reporting you can switch reporting to the time of conversion for a cleaner match with GA4.

Steps checked against Meta Business Help Center: About attribution settings; Meta Business Help Center: Compare attribution settings; Google Analytics Help: Traffic-source dimensions, manual tagging, and auto-tagging; Google Analytics Help: Select attribution settings.

Sprites diagnoses this

Sprites diagnoses it

Sprites lines up your GA4 and Meta numbers and shows where they split.

What Sprites does

  • Pulls Meta purchases and leads per campaign, day by day, on the same basis you see in Ads Manager.
  • Breaks GA4 conversions down by source, medium and campaign for the same dates, so you see how much Meta traffic GA4 actually credits.
  • Reads your GA4 key events, so a conversion GA4 never counted is named, not guessed.

What it doesn't do

  • It does not change your Meta attribution settings, pixel or Conversions API.
  • It does not edit your site, your Google tag or your GA4 channel groupings.

Questions

Why does Meta show more purchases than Google Analytics?

Meta counts purchases after ad views and engagement, plus conversions on other devices it ties to the same person. GA4 only credits the session that converted, and only when UTMs survive the click.

Did Meta change attribution in 2026?

Yes. Meta removed the 7-day and 28-day view windows in January 2026, then in March 2026 renamed engaged-view to engage-through, widened it to likes, shares and saves, and limited click-through to real link clicks.

Which number should I use to judge Meta?

Use the 7-day click column for cross-channel comparisons and keep the default setting for optimization inside Meta. For the true lift, run a holdout test.

Why does Meta traffic show as direct in GA4?

The ad has no UTMs, or a redirect or in-app browser dropped them. Add URL parameters to every ad and test the landing URL end to end.

See where it breaks

Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.