skip to content

Search

Mobile Attribution and the Rise of the MMP

Less than one minute read Updated:

Why measuring app installs is a fundamentally different problem from web tracking, and how Mobile Measurement Partners became the neutral source of truth between advertisers and ad networks.

A user taps your ad, installs your app, and by the time they open it, your ad has no idea it exists.

That is the mobile attribution problem in one sentence, and it is a different problem from the one the web solved with cookies. I work on the data side of an ad business, a DSP and an exchange that process 200M+ devices’ worth of ad events a day, and the overwhelming majority of that volume comes from inside apps, not mobile web. So understanding how the industry closed that gap tells you almost everything about how mobile advertising actually works today.

So that’s today’s post.

Today’s Post

How an install gets credited to an ad, and why nobody trusts an ad network to make that call alone, in six sections.

  • Why the App Store breaks the web’s whole tracking model
  • The one identifier that survives the gap
  • Two ways to make a match, and why one of them is a guess
  • Why the industry built a neutral referee instead of trusting the networks
  • The three rules that make one answer stick
  • The identifier everything depends on, and the deadline already on the calendar

1. The install gap

Picture the simplest mobile ad you can. A user is playing a free game. An ad for another game appears. They tap it, land in the App Store, install, and open the new app the next day.

Now ask the question that actually matters: which ad caused that install?

On the web, this is trivial. A click carries a URL with tracking parameters, the landing page reads them, and you are done. On mobile, the App Store sits in the middle of that flow, and it does not pass anything through. The tapped ad hands control to Apple’s or Google’s store. The store does the download. Then the store hands control to a brand new app that has never seen the ad, never seen the click, and has no idea where the user came from.

Three boxes that never share storage A cookie would cross this journey on the web. On mobile, nothing crosses the middle box. Grey monospace text names what a cookie would carry, if the store passed anything through. Publisher app the free game showing the ad a sandboxed island of its own would carry: click ID, campaign, network App Store downloads the new app passes nothing through Apple or Google Play, a hard wall Newly installed app opens with zero context has never seen the ad or the click would carry: nothing, first launch wall wall device stays constant device stays constant The one thing that survives all three boxes the device itself, and its advertising ID the two apps, never talking directly the store, the boundary that strips context where a shared identifier still gets through
A cookie would cross this journey on the web. On mobile, nothing crosses the middle box except the device carrying it. PNG ↓

That discontinuity is the install gap, sometimes called the attribution gap, and closing it is the entire founding problem of mobile attribution. A cookie cannot survive it, because the journey crosses three sandboxes: the publisher app, the store, and the new app. None of them share storage with each other. So the industry needed something that could persist across all three, and the only thing that qualified was the device itself.

2. The identifier that survives the gap

Every phone ships with a resettable advertising identifier, and for roughly a decade it was the backbone of the entire mobile ad ecosystem.

IDFA, the Identifier for Advertisers, is Apple’s version: a UUID-style string assigned per device. Apple’s “Limit Ad Tracking” toggle defaulted to off, so the IDFA was available by default, an opt-out model rather than opt-in.

GAID, Google’s Advertising ID on Android, does the same job. Resettable, user-controllable, one per device. You will also see it called AAID, the older name for the same identifier.

The property that matters is that both apps on the same device can read the same ID. The game that showed the ad reads the IDFA. The newly installed game reads the same IDFA. They never talk to each other directly, but if both report that ID to a neutral third party, the third party can connect the two events on its own: this device saw the ad at 2:01pm, and this device opened the new app at 2:04pm. Nothing passes data along the chain. The gap gets bridged because both ends independently report to a referee who matches them up.

3. Deterministic versus probabilistic attribution

There are two ways to make that match, and the difference between them defines most of the drama that follows in this track.

Deterministic attribution uses a hard, unique identifier present on both records, the IDFA or GAID. When the click record and the install record carry the same device ID, the match is certain. No guessing. This was the gold standard, and while ad IDs were freely available, it was the default.

Probabilistic attribution is the fallback for when you do not have a shared hard ID. Instead you fingerprint. You collect signals available at click time and install time, IP address, device model, OS version, screen size, timestamp, sometimes carrier, and build a statistical guess. A click from a given IP on an iPhone, on a given OS build, at 2:01pm. Four minutes later, an install from the same IP, same device model, same OS. Probably the same person.

Same click, same install, two ways to link them Deterministic matching needs a shared device ID on both records. Probabilistic matching rebuilds the link from circumstance. Grey monospace text is what each record actually carries. DETERMINISTIC PROBABILISTIC CLICK RECORD INSTALL RECORD VERDICT Carries the device ID IDFA or GAID, one hard ID IDFA 6D92078A-…-E7DC Carries circumstantial signals no shared hard ID present IP · device model · OS Carries the same device ID read by a different app entirely same IDFA, first open Carries lookalike signals only matching context, no shared key same IP · device model · OS Certain match no guessing, no confidence level the gold standard while IDs flowed Probable match a confidence, weaker over a wider window breaks on 40 people sharing Wi-Fi one hard ID on both records, a fact a statistical guess built from circumstance The identifier decides everything: whether the referee is stating a fact or estimating a probability.
Same click, same install. Whether the referee states a fact or estimates a probability turns entirely on whether one hard identifier is present on both records. PNG ↓

Probabilistic matching is a model, not a fact. It carries a confidence level, gets weaker as the window between click and install stretches, and breaks badly on shared IPs, think forty people on the same coffee shop or corporate Wi-Fi. For years it was the second-class citizen of attribution, useful for filling gaps, never trusted the way a deterministic match was trusted. Hold onto that hierarchy. Later posts in this track invert it.

4. Why nobody lets a network mark its own homework

Here is the part newcomers to ad-tech usually underestimate. You might assume the ad networks would just report which installs they drove themselves. They have the click data. Why not let them?

Because their incentive is misaligned with the truth in a way that gets expensive fast. Say an advertiser runs campaigns on five networks at once, and a user sees ads on three of them before installing. Ask each of those three “did you drive this install?” and all three will raise a hand and bill for it. The advertiser pays for one install three times over, and every network has a direct financial reason to claim credit aggressively and interpret ambiguous cases in its own favor.

Letting a network attribute its own performance is letting a contractor sign off on its own building inspection. This is exactly the marking-your-own-homework problem, and it is the reason the industry built a category of company whose only job is to referee.

That company is the Mobile Measurement Partner, or MMP. Structurally, it sits between the advertiser’s app and every network at once. It receives the install signal directly from the advertiser’s own SDK, so no single network can game it. It receives click and impression notifications from every network in the campaign. It applies one consistent, advertiser-controlled rulebook to decide which single touch gets credit, and it returns one canonical answer that everyone agrees to abide by.

The referee never sees the click and the open meet Both ends report to the MMP independently. It matches them by device ID and hands out exactly one answer. Grey monospace text is the worked example: IDFA X seen at 2:01 PM, opened at 2:04 PM. Scroll slowly, this plays once. Ad network fires the click notice one of several running App Store installs, passes nothing on Apple, or Google Play Advertiser's app carries the MMP SDK reads the IDFA or GAID MMP, the referee matches, then rules one rulebook, one answer 1 click fires to the MMP IDFA X · 2:01 PM 2 tap lands in the store control passes to Apple 3 install; nothing passes through the install gap 4 SDK fires first-open same IDFA X · 2:04 PM 5 Matched by device ID same IDFA on both records certain, not a guess 6 one postback, one network every other network gets nothing the outside parties the wall no parameter crosses the advertiser's own SDK the referee's call Every install is assigned to at most one network. The single answer is what makes the call enforceable.
The click and the first open never touch. Each side reports to the MMP independently, and the one matched answer flows back out as a postback to exactly one network. (animates as you scroll to it) PNG ↓

Neutrality is not a feature bolted onto the MMP. Neutrality is the product. An MMP that quietly favored one network would be as worthless as a referee betting on one of the teams. Four names carry most of the market:

MMPKnown for
AppsFlyerMarket share leader, broad network integrations, deep analytics
AdjustStrong fraud prevention, later acquired by AppLovin
BranchDeep linking and deferred deep linking
SingularMarketing analytics and cost aggregation alongside attribution

I have seen this evaluation happen from the other side of the table. Building the AI marketing platform Advance at Pixis, part of my mandate was the MMP and third-party integration work, evaluating measurement partners including AppsFlyer against the connectors the product fed on. The pitch a vendor makes and the reconciliation a data team actually needs are two different conversations, and the second one is where trust gets built or lost.

From where I sit on the exchange side today, an MMP’s single-source-of-truth claim is exactly what makes the downstream spend numbers usable. When a DSP or an exchange reasons about whether a campaign actually drove value, it is reconciling against an MMP’s attributed installs, not a network’s self-reported ones. The referee is load-bearing infrastructure for the entire spend, not a nice-to-have dashboard.

5. The rulebook that makes one answer stick

A referee needs a rulebook, and three concepts do almost all of the work.

Click-through attribution credits an install to an ad the user actually clicked. This is the strong signal, a deliberate action.

View-through attribution credits an install to an ad the user merely saw, an impression, without clicking. Much weaker evidence, far easier to abuse, so view-through windows stay short and often serve as a tiebreaker rather than a primary claim.

Attribution windows, or lookback windows, set how long after a click or view an install still counts. Typical defaults run 7 days for clicks and 24 hours for views. Tap an ad Monday, install Wednesday, that counts. Install the following month, the window has closed and that ad gets nothing. Set the window too short and you under-credit slow converters. Set it too long and you over-credit ads that had nothing to do with the install.

Last-touch attribution breaks the tie when several touches qualify inside their windows. The MMP awards credit to the most recent qualifying engagement, usually the last click, with clicks generally beating views. It ignores every assisting touch before the last one, which is blunt, but it is deterministic, auditable, and it produces exactly one answer. Most spend in this era ran on plain last-touch, and it is still the mental default a lot of marketers carry.

Last touch pays whoever is closest to the install Both clicks qualify inside the seven-day window. The MMP credits the most recent one, not the first. Grey monospace text is the worked timeline: two clicks, ninety minutes apart, then one install. time, inside a 7-day window Network A clicks first to arrive t + 0 min Network B clicks arrives ninety minutes later t + 90 min Install happens four hours after B's click t + 5h30m, still in window Network A: nothing first click, no credit last touch ignores it Network B: credited last qualifying click wins postback sent to B only a click, qualifying inside the window the install that triggers the tiebreak the winner: closest to the install the loser: got there first, got nothing Closest to the install wins, not first to click. That is the whole rule, and the whole controversy.
Network A got there first. Network B got there last. The MMP pays whoever is closest to the install, not whoever clicked first. (animates as you scroll to it) PNG ↓

The single answer is the whole point. It is what makes the referee’s call something a network can be held to.

6. The identifier everything depends on

Step back and look at what every piece of this rests on: a stable, readable, deterministic device identifier present across apps. Deterministic matching needs it. Last-touch reconciliation across networks needs it. Even the SDK’s first-open handshake needs it. Probabilistic fingerprinting only ever existed as the fallback for when that identifier was missing.

Everything described above, the neutral MMP, deterministic matching, the multi-network referee, was the settled architecture of mobile advertising. It worked, and it was the world before April 2021.

Then Apple shipped iOS 14.5, introduced App Tracking Transparency, and turned the IDFA off by default for hundreds of millions of devices overnight. The deterministic identifier the entire system had been built on became the exception instead of the rule, and the weak fallback became the only thing left standing.

The next post in this track is The Day Tracking Broke. Bring everything from this one with you, because most of it is about to break.


Takeaways

Who gets credit for the install? The install gap, the referee that closes it, and the rule that stops working in April 2021. Hoshank Ailani · hoshank.vercel.app 1. The install gap The App Store sits in the middle and passes nothing through No cookie survives three sandboxes: app, store, new app Only the device itself persists across the gap install gap = the founding problem of mobile attribution 2. One ID, two ways to match DETERMINISTIC PROBABILISTIC same device ID, IDFA or GAID IP, device model, OS certain match, a fact probable match, a guess IDFA X seen at 2:01 PM, opened at 2:04 PM 3. The MMP: a neutral referee 1 AppsFlyer, market share leader 2 Adjust, strong fraud prevention 3 Branch, deep linking 4 Singular, cost aggregation receives every side's report, applies one rulebook, returns one answer 4. The rulebook Click-through beats view-through, always Attribution windows: 7 days for clicks, 24 hours for views Last touch breaks every tie among qualifying clicks one rulebook, one enforceable answer, at most one network paid 5. The identifier cliff April 2021 iOS 14.5, App Tracking Transparency, IDFA off by default Every rule above assumed the IDFA would be there to read. Deterministic matching, last touch, even the SDK's first-open handshake, all of it needed the same identifier. The fallback became the only thing left standing. Every piece of this system depends on one stable identifier. In April 2021, it stopped being there by default. Full post: hoshank.vercel.app/posts/adtech-track-mobile-attribution-mmps Takeaways
The whole post on one card. Save it, share it, argue with it. PNG ↓

Six panels, one per section. Save this before you read the next post, because the next one breaks half of it.

Final Words

The mobile attribution system that ran for a decade was built entirely on the assumption that a device identifier would always be there to read. It was not a fragile assumption by accident, it was the only lever the industry had before privacy regulation caught up with it. Next time you see an install dashboard, ask whether the number behind it is a match or a guess, and whether anyone still knows the difference.

Reply and tell me which MMP your team runs on and why.

Cheers, Hoshank