Resources

Attribution models and how to evaluate an MMP

Short answer

Attribution assigns credit for a conversion across the touchpoints that preceded it. There is no universally correct model: last-click works for tactical operations, multi-touch models distribute credit better across longer journeys, and only causal experimentation measures real impact. An MMP is the operating system for that signal on mobile — not the final judge of causality. Choose your MMP by use case (deep linking, UA scale, pricing transparency, omnichannel measurement), not by generic ranking.


The problem most teams frame backwards

Teams argue about which attribution model to use before solving the prior question: what can they actually observe?

Today's binding constraint isn't mathematical, it's observability. Third-party cookie restrictions, storage partitioning, consent requirements for certain identifiers, aggregated and delayed postbacks on iOS, and cross-device fragmentation all reduce your ability to connect a given exposure to a given conversion at the user level.

Debating time-decay versus position-based while 40% of your conversions arrive modeled is optimizing the set dressing. Fix collection first; argue about credit allocation second.


How attribution works, operationally

The system needs three things: log an eligible touch, retain enough identity or context to recognize the user at conversion time, and apply window and priority rules to assign credit.

ComponentWhat it doesWhat usually breaks it
Client-side trackingBrowser or SDK sends events from the user's session (gtag, Tag Manager, Firebase SDK)Ad blockers, cookie loss, JS/SDK errors, browser restrictions, missing consent
Server-side trackingBackend sends events over HTTP (Measurement Protocol, MMP S2S APIs)Incomplete identity stitching, duplication with SDK when dedup rules are missing, bad timestamps, dropped click IDs
Deep links / referrersCarry campaign context into the app or landing pageRedirects that strip parameters, blocked link decoration, in-app webview opens
Self-attributing networks (SANs)Meta, Google and TikTok report their own attribution via APICross-network over-counting, mismatched windows, non-reconcilable with last-click
Privacy frameworksSKAdNetwork, AdAttributionKit, Attribution Reporting APIAggregation, privacy thresholds, postback delays, loss of granularity

The practical takeaway: the more your measurement leans on the client-side layer, the more fragile it is. Server-side is sturdier, but introduces its own risk — duplication and broken stitching — unless you implement explicit dedup rules.


Attribution models compared

ModelHow it assigns creditWhere it worksPrimary bias
Last-click100% to the last eligible touchTactical operations, simple reconciliation, smaller accountsOvervalues branded search, retargeting and closing channels
First-click100% to the first touchMeasuring discovery and funnel entryIgnores everything that follows
LinearEven splitShort journeys with comparable touch weightTreats all touches as equivalent when they aren't
Time-decayMore weight to recent touchesShort purchase cyclesStill penalizes the discovery phase
Position-basedTypically 40/20/40Compromise between discovery and closeWeights are arbitrary, not data-derived
Data-driven / algorithmicModel trained on observed sequencesHigh volume with workable identity dataStill observational — it inherits the bias of what was observable
IncrementalityTreatment vs. control comparisonBudget allocation decisionsDoesn't trace the journey; answers a different question

The academic evidence here is consistent and a little uncomfortable: attribution models are useful for organizing information, but they can fail badly at approximating true causal effect. Large-scale field experiments at eBay (Blake, Nosko and Tadelis, Econometrica, 2015) and at Meta (Gordon et al., Marketing Science, 2019 and 2023) show that observational methods routinely overstate the causal effect of search and social, sometimes by wide margins.

ADEX rule of thumb: use attribution for tactical decisions within a channel, and incrementality for budget allocation across channels. They answer different questions.


What to check before blaming the model

Before you switch models or switch vendors, this is the diagnostic order we run:

  1. Parameter integrity. Do click IDs survive every redirect, shortener and consent wall?
  2. Deduplication. Is the same event counted twice when it arrives via SDK and via server?
  3. Windows. Are click and view windows identical across your MMP, the ad platforms and the CRM? They almost never are.
  4. Scopes. Are user-, session- and event-scoped metrics being mixed in the same report?
  5. Consent coverage. What share of traffic sits in denied mode, and how is it being modeled?
  6. Event coverage. Are business events — not just installs — mapped and firing?
  7. Platform discrepancy. What's the delta between MMP and each SAN, and is it stable over time?

When step 7 shows an unstable delta, the problem is almost always in steps 1 through 4, not the model.


MMP landscape, compared

The market still concentrates around six vendors, with Firebase/GA4 as an adjacent analytics stack that isn't equivalent to a neutral MMP.

MMPStrongest atBest fit forConsideration
AppsFlyerScale, partner coverage, enterprise ecosystemHigh-volume mobile UA, teams with many integrationsCost and complexity scale quickly with volume
AdjustFraud prevention, automation, product ergonomicsGrowing apps with small growth teamsLess depth on some web-to-app cases
SingularCost + attribution unification, ETL to warehouseTeams needing normalized spend and raw dataMore technical implementation curve
BranchDeep linking and web-to-app journeysProducts where linking is part of the productAttribution is solid, but linking is the differentiator
KochavaOmnichannel measurement, CTV, free entry tiersTeams measuring beyond mobileThinner partner presence in some markets
TenjinPricing transparency, app/gaming focusGaming studios and cost-sensitive appsFewer enterprise features
Firebase / GA4Product analytics and web+app reportingAnalytics core, not a neutral MMP substituteNot an independent third party relative to Google

There is no universal winner. The right choice depends on which question hurts most: is my problem linking, scale, cost, transparency or data unification?


How ADEX approaches it

We work attribution in four layers, in this order:

  1. Collection. SDK validation, business event mapping, server-side tracking where client-side is fragile, and explicit deduplication rules.
  2. Reconciliation. Systematic comparison across MMP, SANs and CRM, with acceptable discrepancy thresholds defined up front.
  3. Model. Model selection driven by the decision, not by fashion. We document which model feeds which decision.
  4. Causal validation. Incrementality tests or geo-experiments whenever the decision moves material budget.

ADEX is certified across all four major MMPs — AppsFlyer, Adjust, Singular and Branch — and has completed 12+ MMP migrations. That coverage matters for one concrete reason: when the recommended vendor is also the vendor selling, the advice isn't neutral.


When this isn't your priority

Be honest about the threshold. If you're spending under roughly $10K/month on paid media, running a single channel, or closing purchases inside one session, sophisticated attribution architecture returns very little. Fix product, offer and landing page conversion first.

Attribution starts paying when multiple channels compete for the same credit, your purchase cycle spans devices or days, and your budget is large enough that a bad reallocation costs real money.


FAQ

What is an MMP and why does it matter? A Mobile Measurement Partner is a neutral third party that attributes installs and in-app events across multiple ad networks. It matters because networks self-attribute: without a common referee, the sum of conversions your channels report will exceed your actual conversions.

Which attribution model is best? None in the abstract. Last-click for daily operations, data-driven for reading journeys once you have volume, and incrementality for budget decisions. Using one model for all three is the most common mistake.

How much discrepancy between my MMP and Meta or Google is normal? There's always discrepancy, because windows, view criteria and deduplication differ. What matters isn't the absolute number but its stability: a constant delta is a known configuration issue; a moving delta is a collection problem.

Do SKAdNetwork and AdAttributionKit replace an MMP? No. They are Apple's aggregated attribution frameworks, with delays and privacy thresholds. An MMP integrates and reconciles them with the rest of your measurement, but it cannot recover granularity Apple never delivers.

Can I migrate MMPs without losing historical data? Yes — with a 7–14 day parallel run, historical raw data export and event-by-event validation before cutover. What you can't do is retroactively reconstruct attribution the new vendor never observed.

Do I need a data warehouse to do this properly? Not to start. Yes to scale. The moment you need to join spend, attribution, CRM and retention in the same question, a warehouse stops being optional.


Next step

If your dashboards and your ad platforms don't reconcile, the model is rarely the culprit. Review my MMP setup →


Related reading


External sources