Skip to content

How does Meta ads attribution work?

Meta usually credits a purchase to an ad clicked within 7 days or seen within 1 day. Likes, shares and saves count separately, as engage-through. Meta checks only its own ads, so its report cannot show what an ad caused.

By , Founder & CEOUpdated 7 min read

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

Meta usually credits a sale to an ad if the buyer clicked a link in it within 7 days, or saw it within 1 day. Your pixel or Conversions API reports the purchase, and Meta matches it to people its ads reached. It only checks its own ads, so it cannot say whether the ad caused the sale.

How Meta picks the ad that gets the sale

Three things have to line up: a purchase event, a match and a window.

The purchase event comes from your store. On Shopify, the Meta pixel sends Purchase when a visitor completes a purchase and views the thank you page. The Conversions API can send the same purchase from server to server, where a browser ad blocker cannot stop it. When both copies arrive with the same event ID, Meta tries to keep one.

The match is Meta's half of the job. It ties the purchase to an account on its apps, then checks which of its ads that person clicked or saw.

The window decides how far back Meta looks. Each ad set carries its own attribution setting, and Meta's Help Center lists three kinds for website purchases. Click-through counts purchases within 1 or 7 days of a link click. View-through counts purchases within 1 day of an ad impression. Engage-through counts purchases within 1 day of a non-link click, such as a like or a save. Meta's Marketing API reference says its default window option means 7-day click and 1-day view. So a link click on a Monday can claim a purchase made the following Sunday.

Those definitions are fresh. On 3 March 2026, Meta announced that click-through attribution would count link clicks only, and renamed engaged-view attribution to engage-through. Meta says the aim is click numbers that sit closer to tools like Google Analytics. Any report that spans the switch mixes two definitions, so read trend lines across it with one eyebrow raised.

What one store's data shows

Store A is one store's anonymised GA4 export, covering 1 January 2024 to 21 August 2026. It holds shares of revenue only: no ad spend and no order counts.

What the export showsShare of revenueSource cell
Paid Social, in last click, first click and touched views0.0%Channels sheet, Paid Social row
Direct, in last click, first click and touched views57.7%Channels sheet, Direct row
Journeys with 1 touch (0.5 days to buy)79.5%Journeys sheet, 1 touch row
Journeys with two or three touches (12.5 days to buy)12.2%Journeys sheet, two to three touches row

Start with the Paid Social row on the Channels sheet: 0.0% in every view. In this store, GA4 recorded no Paid Social touch on any journey that earned revenue. The export cannot tell you why. With no spend in the file, a shop that ran no Meta ads and a shop whose Meta clicks arrived untagged look identical.

GA4 only files a visit under Paid Social when the source is a social site and the medium looks paid, such as cpc or paid_social. Without those tags, a Meta click can surface as Organic Social, or as Direct when no referrer comes along.

Next, the Direct row: 57.7% of revenue on the Channels sheet, in all three views. GA4 defines Direct as a visit from a saved link or a typed address. A shopper who saw a Meta ad, never clicked, then typed your address lands right in that row. Meta's 1-day view window can claim the very same sale for its ad. The export cannot say how many Direct journeys began with an ad view, because GA4 never saw the view.

Last, the Journeys sheet, where journeys with 1 touch hold 79.5% of revenue at 0.5 days to buy. Journeys of two or three touches hold 12.2% on the same Journeys sheet, at 12.5 days to buy. If a Meta link click opened one of those longer journeys on the Journeys sheet, 12.5 days later the 7-day click window has shut. Meta then misses a sale it helped start, which spoils the tidy story that Meta always over-counts.

None of these rows says whether Meta ads worked for this store. They show the slice of Meta's influence GA4 can record: tagged clicks that turn into visits.

Why does Meta claim more than GA4 shows?

Because each tool counts what it can see, and they see different things. Meta sees ad views, link clicks and engagements on its own apps. GA4 sees visits to your site, labelled by tags and referrers. A view that never becomes a visit is invisible to GA4.

Meta also credits any matched purchase inside its window, whatever else the buyer touched on the way. If an email sent the last click, Meta can still count the sale. GA4's own models lean the other way on direct visits: Direct gets no credit unless the whole path is direct.

So the usual answer, a window of 7-day click and 1-day view, describes a filing rule. A window decides which sales Meta may claim. It says nothing about which sales Meta caused.

What can Meta's number not tell you?

Whether the sale would have happened without the ad. Meta says as much itself. It calls incrementality experiments, such as its Conversion Lift, the best way to answer that question. A purchase inside the window shows timing, nothing more.

Meta now also offers an incremental attribution model, which predicts whether a conversion was caused by an ad. That is a better question. It is still Meta's model marking Meta's own ads.

It also cannot tell you which other channels worked on the same buyer. Google Ads, email and Meta can each count one sale in full. That is how platform totals can add up to more than your Shopify revenue.

What to do this week

  1. Tag every Meta ad link. Add utm_source, utm_medium and utm_campaign, with one paid medium such as paid_social. Pass: a week later, GA4's Traffic acquisition report shows those visits under Paid Social. Fail: they still sit in Organic Social or Direct.
  2. Hold Meta's purchases against Shopify's orders for one week. Use the same dates in Ads Manager and in Shopify's Channel performance report. Pass: Meta claims a share of Shopify's orders you can believe, given what else you run. Fail: Meta claims more purchases than Shopify took, which points at duplicate or stray events.
  3. Export your GA4 attribution paths for purchases. In GA4, open Advertising, then Key event attribution paths, then Share this report to download it. Pass: Paid Social appears inside paths that end in a purchase. Fail: it never appears, as in Store A, so GA4 cannot back any of Meta's claims.

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: About attribution models and attribution settings (Meta Business Help Center); Simplifying Ad Measurement for a Social-First World (Meta). Ad Account Insights reference (Meta for Developers); Handling Duplicate Pixel and Conversions API Events (Meta for Developers). Facebook data sharing (Shopify Help Center); Measuring marketing performance (Shopify Help Center). Default channel group (Google Analytics Help); Get started with attribution (Google Analytics Help). Key events attribution paths report (Google Analytics Help); URL builders: Collect campaign data with custom URLs (Google Analytics Help). Traffic acquisition report (Google Analytics Help).

Frequently asked questions

  • Does Meta count a sale if someone only saw my ad?
    Yes, if the ad set's setting includes view-through. Meta's Help Center defines it as purchases within 1 day of an impression of your ad. GA4 never sees that impression, which is one reason the two tools disagree.
  • Why did my Meta purchases drop in spring 2026?
    Often because Meta changed what a click is. From March 2026, click-through attribution counts link clicks only, and purchases after likes, shares or saves moved to engage-through attribution. The ads did not change; the filing did. Compare periods on the same side of the switch.
  • Is Meta attribution the same as incrementality?
    No. Attribution files a sale under an ad that reached the buyer. Incrementality asks whether the sale would have happened without the ad. Meta itself calls lift experiments, such as Conversion Lift, the best way to answer that second question.

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.