Attribution Is Almost Never Straightforward — NoirQuartz
← Field Notes
Performance Marketing
[attribution] [measurement] [ROAS]

Attribution Is Almost Never Straightforward. How Meta and Google Could Be Lying to You.

Platforms report attribution in the way that maximises their perceived contribution. The infrastructure they have built to do that is sophisticated. Which makes the inflation invisible to most advertisers.

Imagine you run a supplement brand. December was a good month. You spent $4,000 on Meta, $2,000 on Google, and sent a weekly email to your list. At the end of the month you open three dashboards.

Meta says it drove $18,000 in revenue. Google says $11,000. Your email platform says $9,000. Your Shopify backend shows $22,000 in total orders.

You just received credit for $38,000 of revenue that doesn’t exist.

Nobody hacked your account. Nobody made a mistake. Every platform followed its own rules perfectly. That is the problem.

The Identity Problem

When someone buys from you, your CRM knows them as an email address and a phone number. That is the full record.

Meta knows them differently. It knows them as a device, a browser, a behavioural fingerprint, and a hashed email that may or may not match the address they actually use on Facebook. A significant portion of your customers use a different email for shopping than they use for social media. Match rates against a typical customer list can often fall between 60 and 75 percent on a clean list.

What happens to the unmatched portion? Those CRM identities may still be reached through Meta’s broader delivery systems: lookalikes, interest targeting, behavioural signals. But the linkage between your first-party record and Meta’s internal identity graph is opaque. When those people convert, Meta claims attribution through its own graph, not through your CRM record.

You see a conversion in Meta’s dashboard. You see an order in Shopify. The connection between the two is assumed, not verified.

The Window Problem

Meet Priya. She is looking for a protein supplement.

// Scenario: one customer, one order
  • Day 1Searches “whey protein under 2000” on Google. Clicks your search ad. Browses, doesn’t buy.
  • Day 8Receives your promotional email. Clicks through to the site. Still doesn’t buy.
  • Day 9Sees your Meta ad while scrolling Instagram.
  • Day 10Goes directly to your site and purchases.

Google claims it under 7-day click. She clicked within the window.
Meta claims it under 1-day view. She saw the ad the previous day.
Email claims it under last marketing touch. The email click preceded purchase.

Your CRM sees one transaction for $22. Combined dashboards show $66 in attributed revenue.

This is not an edge case. This is Tuesday.

The Ghost Conversion

View-through attribution deserves its own section. It is the most aggressive and least discussed form of inflation.

A view-through conversion is when Meta claims credit for a purchase made by someone who saw your ad but never clicked it. The default window is one day. If someone scrolled past your ad in their feed and bought from you within 24 hours through any other channel, Meta counts it.

Your brand email goes out on a Tuesday morning. Your Meta campaign is running simultaneously. A customer opens the email, clicks through, and buys. Meta served them an ad that morning. Meta claims the conversion under view-through. Your email platform claims it under click. Your CRM sees one order.

You cannot audit this without running a holdout test. You have no visibility into who saw the ad without clicking. Meta holds that data. You don’t.

The One Check Anyone Can Run

You don’t need a data scientist to detect that something is wrong. You need two numbers.

Open your CRM or Shopify backend. Find total orders for last month. Then open every platform dashboard and add up total attributed conversions. Make sure you are comparing the same event definitions, the same timezone, and the same reporting window. If the platform-reported number is still materially higher than your actual order count, you very likely have attribution overlap baked into your stack.

$38K
Platform-claimed revenue  /  $22K actual orders

This comparison almost never happens because your Meta campaigns are managed by one person, your email by another, and nobody is looking at the combined number against actual orders. The inflation lives in the gap between teams.

It persists because channel managers are rewarded for in-platform performance, not cross-channel truth. Surfacing the gap is professionally risky for the person whose reported numbers would shrink first. The person managing Meta is measured on Meta ROAS. The person managing email is measured on email-attributed revenue. Neither is measured on whether the combined spend is producing incrementally more orders than would have happened with half the budget. Surfacing that question implies the number you have been reporting upward for twelve months is partially fiction. So nobody asks it.

The Experiment That Gets Closer to Truth

Holdout tests matter because they ask a different question entirely.

Attribution asks which channel gets credit for this conversion. Holdout asks whether this conversion would have happened if you had done nothing.

You take 20% of your active customer list, suppress them from campaigns where clean exclusion is possible, and compare their purchase behaviour against the 80% you marketed to normally over 60 days. The gap between the two groups is your estimated incremental lift under that test design. Not a verdict on the channel. A signal about what your spend is actually causing versus what was going to happen regardless.

It is an uncomfortable test to run because the results are almost always humbling. In many accounts, repurchase rates between the mailed and unmailed group are separated by only a few percentage points. The email programme your platform claims is driving 40% of revenue is often driving a fraction of that. The holdout doesn’t lie because it isn’t reporting to anyone.

Why Advantage+ Makes This Harder. And Why That Is Not a Coincidence.

Meta’s most aggressively promoted campaign type, Advantage+, reduces the audience controls that make holdout testing reliable. Clean segment-level exclusion is less dependable than in manual campaigns. Meta treats your customer list as a signal rather than a hard boundary, which means holdout contacts face a higher risk of being reached anyway through broad delivery. Advertiser-side auditing becomes harder, and the contamination risk for any holdout design increases significantly.

This is not primarily an engineering limitation. Addressable audiences, exclusion logic, and segment-level controls are not technically complex problems for a company with Meta’s infrastructure. Reduced control is a product decision. It compounds the measurement problem at the exact moment Meta is pushing advertisers hardest toward full automation.

An advertiser who can accurately measure incrementality will spend less, or allocate differently. The ideal platform customer is one who cannot measure causality, sees flattering ROAS numbers, and keeps scaling budget. Advantage+ is very good at producing flattering ROAS numbers. Whether it is producing the revenue underneath those numbers is a question the platform has no particular incentive to help you answer.

The Remedy

The fix is not to stop running Meta and Google. It is to stop treating their dashboards as the measurement layer.

  • 01
    Build the ceiling check as a monthly ritual

    Pull total orders from your CRM or Shopify. Pull total attributed conversions across every platform. Align event definitions, timezones, and reporting windows before comparing. Put both numbers in a single row of a spreadsheet every month. The ratio between them is your double-counting index. This takes twenty minutes and most marketing teams have never done it once.

  • 02
    Run a holdout test before drawing conclusions about any channel

    Suppress 20% of your active customer list from custom audience uploads for 60 days. Compare repurchase rate between suppressed and active groups using your own order data, not platform reporting. For top-of-funnel prospecting campaigns where customer-level suppression is not possible, geo-based holdouts or matched-market designs are a better instrument.

  • 03
    Separate your email programme into sequences before measuring it

    Abandoned cart sequences, win-back flows, and post-lapse triggers tend to show genuine incrementality because they intervene at real decision friction. Weekly promotional sends to your full list tend to harvest intent that already existed. Measuring them together produces a number that is meaningless for any decision you actually need to make.

  • 04
    Run brand spend in a separate budget lane with separate measurement

    Sales-optimised campaigns left unsupervised harvest existing demand faster than new demand gets created. The attribution looks fine right up until the pipeline runs dry. Brand spend builds the ceiling. Performance spend draws it down. Track them independently or you will consistently misread which one is doing what.

  • 05
    Accept that Advantage+ is not cleanly measurable and price that in

    Run it for reach and audience discovery where its scale is genuinely useful. Keep a portion of budget in manual campaigns where exclusions are more dependable and use that structure as your measurement vehicle. Do not make budget scaling decisions based on Advantage+ reported ROAS alone. It is telling you what it optimised, not what it caused.

The dashboards will always look good. That is what they are built to do.

The only number in your stack that has no incentive to flatter you is your actual order volume. Build your measurement practice around that number, and treat everything else as a hypothesis to be tested rather than a result to be reported.