# One sale, three owners

> An interactive Dashcrab story about attribution. Text version of https://dashcrab.app/en/stories/una-venta-tres-duenos.html
> Published October 12, 2026. More stories: https://dashcrab.app/en/stories.html

Sofi bought a jacket. Meta says it was thanks to Meta. Google says it was Google. Email says it was the email. All three are right, and the total is still wrong.

## The purchase

- **Tuesday, 10:40 p.m.** Sofi is scrolling Instagram in bed. A Reel for a USD 120 jacket shows up. She taps "Shop now", checks the size and the price, and closes the app without buying.
- **Thursday.** She remembers the jacket but not the exact name. She searches on Google and taps the first result, which is an ad. The same store's organic result was right below it.
- **Saturday.** The weekly newsletter arrives: her size is back, 10% off. She clicks.
- **Sunday night.** She opens her laptop, types the store's address by hand and buys. One jacket, USD 120. One single sale.

### How Meta measures

By default, Meta claims a purchase if it happens up to **7 days after a click** on the ad's link, 1 day after an engagement (a like, a save, watching 5 seconds of video) or **1 day after just seeing it**. Meta split link clicks from other engagements in March 2026. Whatever Sofi does next on Google, in her inbox or in the store, Meta doesn't see.

### Study: clicks that were already yours

eBay stopped paying for the ads shown when someone searched "ebay" on Bing and Yahoo, and kept paying for them on Google to compare. Almost all the clicks it lost came back through the organic result: people searching for the brand came in anyway (Blake, Nosko and Tadelis, Econometrica, 2015). Google Ads, meanwhile, claims the sale if it happens up to **30 days after the click** (configurable up to 90). Sofi's search falls well inside.

## Monday, in the reports

| Platform | What it says | Why |
|---|---|---|
| Meta Ads | 1 purchase, USD 120 | Reel click 6 days ago, inside its 7-day window |
| Google Ads | 1 conversion, USD 120 | Ad click 4 days ago, inside its 30-day window |
| Email platform | 1 order, USD 120 | Email click 2 days ago |
| **Sum of the reports** | **3 purchases, USD 360** | |
| **Your store** | **1 purchase, USD 120** | |

### Psychology: self-serving bias

People tend to take credit for successes and blame circumstances for failures (Miller and Ross, Psychological Bulletin, 1975). Platforms have no ego, but their rules produce the same effect: each one only looks at its own touches and, if it finds one inside its window, logs the whole sale. None subtracts what the other one claimed.

### How GA4 measures

In its acquisition reports, GA4 gives the purchase to the last channel that wasn't direct. Sofi came in direct on Sunday, so the credit jumps to Saturday's email. GA4 doesn't see impressions, so to GA4 an ad view doesn't exist, and it loses anyone who rejects cookies. It is a third opinion, not a referee.

### Why it got worse

Since iOS 14.5, in April 2021, every app has to ask permission to track. Safari deletes cookies set by JavaScript after 7 days without a visit, or after 24 hours if the person arrived from a link with tracking parameters. What they can no longer see, platforms fill in with modeled conversions: estimates mixed with observed data, in the same number.

## The whole journey, from outside the platforms

Four touches and one USD 120 purchase. This is how each model splits it:

| Model | Instagram Reel (Meta) | Google ad | Newsletter | Direct |
|---|---|---|---|---|
| First touch | USD 120 | USD 0 | USD 0 | USD 0 |
| Last touch | USD 0 | USD 0 | USD 0 | USD 120 |
| Last non-direct | USD 0 | USD 0 | USD 120 | USD 0 |
| Linear | USD 30 | USD 30 | USD 30 | USD 30 |
| Time decay (7-day half-life) | USD 23 | USD 27 | USD 33 | USD 37 |
| U-shaped (40/20/40) | USD 48 | USD 12 | USD 12 | USD 48 |

The credit changes hands, but the total is always USD 120. The seventh model, data-driven, is missing, and it can't be calculated from a single purchase.

## Data-driven, step by step

A tiny store with three journeys:

- Juan: Meta → Google → Email → **bought**
- Ana: Meta → didn't buy
- Leo: Google → Email → didn't buy

Last touch gives it all to email. First touch gives it all to Meta. Both rules only look at Juan's journey. Data-driven looks at all three.

**Step 1. The map.** From each place, what share of people went where:

| From | To | Probability |
|---|---|---|
| Start | Meta | 67% (2 of 3) |
| Start | Google | 33% (1 of 3) |
| Meta | Google | 50% |
| Meta | Nothing | 50% |
| Google | Email | 100% |
| Email | Purchase | 50% |
| Email | Nothing | 50% |

**Step 2. The probability of buying.** Add up the paths that reach the purchase:

- Meta → Google → Email → Purchase: 67% × 50% × 100% × 50% = 17%
- Google → Email → Purchase: 33% × 100% × 50% = 17%
- Total: **33%**

**Step 3. The removal effect.** Remove one channel from the map and recalculate:

- Without Meta: only Google's path is left, 33% × 100% × 50% = 17%. It drops 50%.
- Without Google: nobody reaches the purchase. It drops 100%.
- Without Email: nobody reaches the purchase. It drops 100%.

**Step 4. The split.** 50 + 100 + 100 = 250, and each channel takes its share: **Meta 20%, Google 40%, Email 40%**.

### How it's calculated

Data-driven treats each journey as a first-order Markov chain: the probability of moving to a step depends only on the step you are on (Anderl, Becker, von Wangenheim and Schumann, International Journal of Research in Marketing, 2016). Using every journey in a period, with and without a purchase, it calculates how much the probability of buying would drop if a channel didn't exist, and splits the credit in proportion.

- The good part: it uses the journeys that didn't buy, which fixed rules ignore. A channel that shows up in many paths that don't sell loses credit.
- What it doesn't do: it doesn't know what would have happened without the ad. It removes a channel from a map, not from the world. And it needs volume: with few journeys, the map is noise.
- Dashcrab Attribution calculates it over the journeys in the selected date range. Beyond the 30 most frequent channels, the rest are grouped as "other".

## A whole month: every channel, all seven models

Example data from a store: 204 purchases and 2,380 journeys without a purchase, calculated with the same rules as Dashcrab Attribution. Purchases credited to each channel; every column adds up to 204.

| Channel | First touch | Last touch | Last non-direct | Linear | Time decay | U-shaped | Data-driven |
|---|---|---|---|---|---|---|---|
| Meta | 80 | 8 | 24 | 39 | 30 | 42 | 47 |
| Google | 54 | 58 | 78 | 62 | 61 | 58 | 51 |
| Email | 12 | 24 | 58 | 23 | 28 | 20 | 27 |
| Organic | 32 | 18 | 18 | 25 | 23 | 25 | 17 |
| Direct | 26 | 96 | 26 | 55 | 62 | 59 | 62 |

- Meta gets 8 purchases on last touch and 80 on first touch: it opens a lot of conversations and almost never closes them.
- Data-driven gives it 47: what would be lost without Meta, also counting the 1,280 people who went through Meta and didn't buy.
- Direct gets 62 on data-driven, because many journeys end there and removing it cuts them off. No model is neutral.

### No model is the truth

- **First touch:** which channel opens the conversation?
- **Last touch:** what happened right before buying?
- **Last non-direct:** the same, but Direct only counts if there was nothing else. It is GA4's rule.
- **Linear:** who was there? Everyone, in equal parts.
- **Time decay:** recent touches weigh more. The weight halves every 7 days back.
- **U-shaped:** 40% to the opener, 40% to the closer, 20% for the middle.
- **Data-driven:** how much is lost without each channel, based on your own journeys?

That's why it pays to see them side by side and not marry one. What doesn't change in any of them: one sale is worth one sale.

### Attribution is not causation

Kellogg researchers compared 15 controlled experiments at Facebook against the methods the industry uses without an experiment. Even with hundreds of control variables, those methods often failed to reach the real effect (Gordon, Zettelmeyer, Bhargava and Chapsky, Marketing Science, 2019). In 2023 they repeated the test with 663 experiments, with the same result (Gordon, Moakler and Zettelmeyer, 2023). An attribution model splits the credit for sales that already happened; it doesn't say which ones would have happened anyway. There is only one way to know that: turn something off and watch what happens.

## Three things to do this week

1. **Look at the real total first.** Your store, your CRM or your WhatsApp sales. If the platforms add up to more, the difference is overlap, not growth.
2. **Match the windows before comparing.** Meta on 7-day click, no view. Google on 7-day click. It doesn't remove double counting, but it shrinks it.
3. **Turn something off and watch.** A brand campaign or a region, two or three weeks, away from a big sales date. If you sell the same, that channel was charging for demand that already existed.

A conversion is worth 1. It gets split, not multiplied. Dashcrab Attribution builds each customer's journey with its own pixel, installed through Google Tag Manager, and splits every sale across the channels that drove it, with seven models side by side, data-driven included: https://dashcrab.app/en/attribution.html

## Sources

- Meta, splitting link clicks from other engagements (March 2026): https://www.facebook.com/business/news/click-attribution
- Blake, Nosko and Tadelis, "Consumer Heterogeneity and Paid Search Effectiveness: A Large-Scale Field Experiment", Econometrica (2015): https://www.nber.org/papers/w20171
- Google Ads, About conversion windows: https://support.google.com/google-ads/answer/3123169
- Miller and Ross, "Self-serving biases in the attribution of causality: Fact or fiction?", Psychological Bulletin (1975).
- Apple, App Tracking Transparency: https://developer.apple.com/documentation/apptrackingtransparency
- WebKit, Tracking Prevention in WebKit: https://webkit.org/tracking-prevention/
- Anderl, Becker, von Wangenheim and Schumann, "Mapping the customer journey: Lessons learned from graph-based online attribution modeling", International Journal of Research in Marketing (2016).
- Gordon, Zettelmeyer, Bhargava and Chapsky, "A Comparison of Approaches to Advertising Measurement: Evidence from Big Field Experiments at Facebook", Marketing Science (2019): https://www.kellogg.northwestern.edu/faculty/gordon_b/files/fb_comparison.pdf
- Gordon, Moakler and Zettelmeyer, "Close Enough? A Large-Scale Exploration of Non-Experimental Approaches to Advertising Measurement" (2023).
- The long version on the blog: https://dashcrab.app/en/blog/por-que-google-ads-y-meta-ads-se-adjudican-la-misma-venta.html
