Skip to content

How to check Meta ads attribution, step by step

Confirm Meta receives each purchase once, read every ad set's attribution setting, tag each ad link and see how GA4 files the visits. Then the gap between Ads Manager and GA4 usually comes down to views and engagements only Meta sees.

By , Founder & CEOUpdated 8 min read

Run the numbers for your store: the free break-even ROAS calculator.

To check Meta ads attribution, test four things. Meta should get each purchase once, and each ad set should use the setting you expect. Every ad link needs tags, and GA4 should file those visits as Paid Social. Then the gap between Ads Manager and GA4 usually comes down to views and engagements only Meta sees.

Ads Manager grades Meta's ads by Meta's rules. You cannot change the marking after the fact, but you can check what goes into it and what GA4 can confirm. Open Events Manager, Ads Manager, your Shopify admin and GA4 in four tabs.

Each tool answers one part. Events Manager shows what Meta received. Ads Manager shows the rules Meta used to credit it. Shopify shows the orders that really happened, and GA4 shows which visits arrived with which labels. None of them shows what the ads caused, which is why the last check is a comparison, not a verdict.

Step by step

  1. Confirm Meta receives your purchases. Meta says events should show in Events Manager within 20 minutes of being sent. Look for Purchase, and check that the connection method lists browser and server if you run the Conversions API. Menu path: Events Manager > Data Sources > your pixel > Overview.
  2. Check that duplicates are dropped. A purchase sent by both the pixel and the Conversions API needs the same event name and event ID, or Meta may count it twice. Meta only deduplicates events received within 48 hours of the first one with that ID. Menu path: Events Manager > your pixel > Overview > Event Details for Purchase > Event Deduplication tab.
  3. See what Shopify shares with Meta. Standard sends pixel data only, and a browser ad blocker can stop it. Enhanced and Maximum add the Conversions API, which sends the purchase from server to server. Menu path: Shopify admin > Sales channels > Facebook & Instagram > Settings > Data sharing settings.
  4. Read each ad set's attribution model and setting. Meta sets both per ad set, and the model cannot change once the campaign is published. Click-through counts purchases within 1 or 7 days of a link click; view-through and engage-through count within 1 day. Menu path: Ads Manager > the ad set > below Conversion goals, Show more options > Attribution model.
  5. Compare like with like. Meta warns that results cannot be compared across ad sets with different attribution models. Ads Manager can put incremental results next to standard ones, though not for dates before 1 April 2025. Menu path: Ads Manager > Columns: Performance dropdown > Compare attribution models > Incremental > Apply.
  6. Tag every Meta ad URL. Use utm_source, utm_medium and utm_campaign, with one source name per platform and one medium for the channel, such as paid_social. Keep them lowercase, since GA4 treats Meta and meta as two values. Menu path to see the tags arrive: GA4 > Reports > Acquisition > Traffic acquisition.
  7. Check which channel GA4 gives those visits. GA4 files a visit under Paid Social only when the source is on its list of social sites and the medium matches its paid pattern. That pattern takes cpc, ppc or anything starting with paid. A medium of social lands in Organic Social instead. Menu path: GA4 > Reports > Acquisition > Traffic acquisition, then search the table for your source name.
  8. Download the purchase paths. GA4's attribution paths report lists every channel on each path to a key event, with days and touchpoints to it. It shows paths up to 20 touchpoints long. Menu path: GA4 > Advertising > Key event attribution paths, then Share this report to download.
  9. Line Shopify up against both. Shopify's Channel performance report can show the same orders by last click, first click or last non-direct click, its default. Menu path: Shopify admin > Growth > View channel report, then the Attribution model control.

A worked example

Run steps 6 to 8 on one store's export and the first result is blunt. Store A is one store's anonymised GA4 export from 1 January 2024 to 21 August 2026, holding shares of revenue only. On its Channels sheet, Paid Social is 0.0% of revenue in last click, first click and touched views. So the paths in step 8 carry no Paid Social touch on any journey that earned revenue.

Two stories fit that zero, and the steps tell them apart. If the store ran no Meta ads, step 1 finds no recent Purchase events at all. If it ran untagged ads, step 7 finds the visits under Organic Social or Direct. Direct has room to hide them: 57.7% of revenue on the Channels sheet, in every view.

Now a store that does advertise, for illustration only. For illustration, say Ads Manager credits a campaign with 100 purchases in September. Say the same month in GA4 shows 60 purchases from sessions carrying that campaign's tags. In this worked example, 40 purchases appear in Meta's report and not in GA4's.

Step 2 rules out double counting, and step 6 rules out untagged clicks. What is left is purchases after ad views and engagements, which GA4 cannot see, plus purchases GA4 credits to another channel. Step 5 then asks Meta's own incremental model how many it would keep. Meta's Help Center uses the same round number: if it considers 70 of 100 conversions incremental, the incremental column shows 70.

None of these numbers settles what the ads caused. They are three ledgers kept by three clerks, and a lift test is the tool for cause.

What to check when the report looks wrong

  • Ads Manager shows purchases, GA4 shows no Paid Social. Go back to steps 6 and 7. A missing or mislabelled medium sends Meta visits to Organic Social or Direct.
  • Meta claims more purchases than Shopify recorded. Check step 2 first. Two copies without a shared event ID can both count, and so can a copy that arrives more than 48 hours after the first.
  • Purchases fell in spring 2026 with nothing changed on your side. Meta's link-click definition of click-through began rolling out in March 2026, at different points for different advertisers. Compare periods on the same side of the switch.
  • Results jumped between two periods. A wider attribution setting claims more purchases without selling one more thing. Check step 4 for every ad set in both periods, and compare periods that used the same setting.
  • Daily numbers disagree while monthly ones are close. Ads Manager reports a web purchase on the day it happened. Make sure both tools cover the same calendar days before you blame anything else.
  • GA4's history changed overnight. Switching GA4's reporting attribution model rewrites past data as well as future data. Write down the model before you compare months.

What to do this week

  1. Run steps 1 and 2 today. Pass: Purchase arrives from browser and server, and the Event Deduplication tab shows no warning. Fail: one source is missing or a low-rate warning appears, so fix events before you judge any campaign.
  2. Tag the ads that are live now. Pass: within a week, Traffic acquisition shows your Meta source under Paid Social. Fail: the visits still land in Organic Social or Direct.
  3. Download one month of purchase paths. Pass: Paid Social shows up inside paths, not only as the last touch. Fail: it never shows up, so GA4 cannot weigh Meta against your other channels.

Check the homework. Your GA4 Attribution paths export already holds the evidence. Causality Engine reads that one file and shows what each channel caused next to what last-click gave it, in 1 to 2 minutes, for €99 once (excluding VAT), refundable within 30 days. Check the homework

Sources, 1 October 2026: Verifying Your Setup (Meta for Developers); Handling Duplicate Pixel and Conversions API Events (Meta for Developers). Facebook data sharing (Shopify Help Center); How to use incremental attribution in Meta Ads Manager (Meta Business Help Center). About attribution models and attribution settings (Meta Business Help Center); How to view results for incremental attribution in Meta Ads Manager (Meta Business Help Center). Simplifying Ad Measurement for a Social-First World (Meta); Insights API: limits and best practices (Meta for Developers). URL builders: Collect campaign data with custom URLs (Google Analytics Help); Default channel group (Google Analytics Help). Traffic acquisition report (Google Analytics Help); Key events attribution paths report (Google Analytics Help). Change the reporting attribution model for key events (Google Analytics Help); Measuring marketing performance (Shopify Help Center).

Frequently asked questions

  • Where do I see Meta purchases arriving from Shopify?
    In Events Manager. Open Data Sources, click your pixel, then Overview. Meta says events should show within 20 minutes of being sent. The connection method tells you whether each one came from the browser or the server.
  • What UTM medium should I use for Meta ads?
    One paid medium for every Meta ad, such as paid_social. GA4 files a visit under Paid Social only when the source is a social site and the medium matches its paid pattern. A medium of social puts the same visit in Organic Social.
  • Can I change a Meta ad set's attribution model later?
    No. Meta's Help Center says you cannot change the attribution model after you publish the campaign, so a new model means a new campaign. You can still compare models in reporting, through Compare attribution models in the Columns menu.

Go deeper: Incrementality testing, explained.

Sixty-second versions of these ideas: Causality Engine on YouTube Shorts.

Keep reading

Terms in this article

Browse the full glossary

Your platforms guess.
We run the math.

Upload a GA4 export and see what each channel caused, next to last-click, in 1–2 minutes. The read is yours to keep.

Free, in your browser: your file is not uploaded. The full read is €99, refundable within 30 days. Prices exclude VAT.
Or book a 30-min call.