Deeplinkly

Glossary/Attribution mechanics

Probabilistic attribution

Definition

Probabilistic attribution estimates which ad interaction most likely caused an install by inferring a match from signals such as timing, network and device characteristics rather than from an identifier shared by both records.

It is the answer to a real problem: on iOS, a large share of installs arrive with no carrier at all, and a business still has to decide where to spend. The difficulty is that the term covers two very different practices — legitimate aggregate modelling, and device fingerprinting, which Apple prohibits outright. Treating them as one thing is how teams end up with a policy violation they did not intend to buy.

Three different things wear this label

The word *probabilistic* is doing a lot of work in vendor marketing, and the three practices it covers have almost nothing in common except that none of them is a join on a key. Separating them is the first useful step, because their accuracy, their unit of analysis and their policy standing all differ.

The three families, which question each answers, and where each stands with the platforms.
MethodUnitAnswersPlatform standing
Device fingerprintingIndividual installWhich click was this one?Prohibited on iOS
Aggregate modelled conversionsCampaignHow many of these were caused?Permitted; network-provided
Incrementality / geo testsCellWhat happened without the ad?Permitted; strongest evidence
Media mix modellingChannel over timeHow does spend move outcomes?Permitted; no user data

Only the first row is the one people mean when they say "probabilistic matching"

Per-install probabilistic matching on iOS is fingerprint attribution under a softer name, and App Store Review Guideline 5.1.2 does not permit deriving data from a device to identify it — regardless of whether the user granted ATT permission. If a vendor offers per-install matching for iOS with no identifier involved, ask which device signals it reads.

The other three rows are ordinary statistics and are how serious measurement gets done in a world without user-level joins. They give up the ability to name the click behind a specific install, which is a real loss, in exchange for answers that survive scrutiny.

Why per-install accuracy collapses at low volume

The failure mode is structural rather than a matter of model quality. Matching works by narrowing candidate clicks until one remains; how well that works depends entirely on how many candidates share the same coarse signals in the same time window.

The candidate-set problem, made visible
-- How many clicks could plausibly explain each install, given only
-- coarse signals? If this number is not close to 1, a "match" is a
-- coin toss dressed up as a result.
SELECT
  i.install_id,
  COUNT(c.click_id) AS candidate_clicks
FROM installs i
JOIN clicks c
  ON  c.country      = i.country
  AND c.os_version   = i.os_version
  AND c.device_model = i.device_model
  AND c.clicked_at BETWEEN i.installed_at - INTERVAL '24 hours'
                       AND i.installed_at
GROUP BY i.install_id;

-- Rural, low-traffic campaign  -> candidate_clicks = 2   (plausible)
-- Metro, high-traffic campaign -> candidate_clicks = 8400 (a guess)

Run that query against your own data and the shape of the problem is immediate. Accuracy is not a single number a vendor can quote; it is a function of traffic density, campaign concentration and window width, and it is worst exactly where budgets are largest.

Conditions under which per-install probabilistic matching is more or less trustworthy.
ConditionEffect on accuracyWhy
High click volume in one geoMuch worseMany indistinguishable candidates
Narrow time windowBetterFewer candidates survive
Many concurrent campaignsWorseCandidates spread across sources
Carrier-grade NAT / shared IPMuch worseThousands of devices, one address
Long install delayWorseWindow must widen to catch it
Small, distinctive audienceBetterBut least likely to matter commercially

We decline to quote a single accuracy figure, and so should anyone else

Published accuracy claims for probabilistic matching range from the high nineties to little better than chance, and both ends can be true — of different datasets. Any figure quoted without the traffic density, window width and campaign count it was measured under is a marketing number, not a measurement.

Using it honestly

The workable posture is to stop asking probabilistic methods to do a deterministic job. They are poor at naming the click behind one install and genuinely good at estimating how much a channel moved a total — so use them at the altitude where they are strong.

  1. Maximise the deterministic base first. Tagged links, correct referrer encoding and the AdServices token cost nothing and shrink the population you have to model. See deterministic attribution.
  2. Report modelled numbers in their own column. Merging a modelled install into the same total as a matched one destroys the only signal about confidence you had.
  3. Use aggregate platform reporting for iOS ad channels. SKAdNetwork and AdAttributionKit are the sanctioned aggregate paths; they are coarse, delayed, and permitted.
  4. Validate with a holdout. A geo split or a scheduled pause is the only method that tells you what would have happened anyway, which is the question budget decisions actually turn on.
  5. Never let a modelled number become a payout basis. Paying a partner on an estimate they can influence is an incentive problem, not a measurement one.

There is one more reason to keep the two columns apart, and it is operational rather than philosophical. A modelled attribution changes when the model is retrained, so last quarter's report can move after the fact. A deterministic match cannot. If your reporting cannot say which of its numbers are stable, nobody downstream can either.

UTM builder

The cheapest way to need less modelling is to lose fewer deterministic signals. This builds correctly-encoded campaign URLs so that every click that can carry an identifier does, shrinking the population you have to reason about statistically.

Open the utm builder

Frequently asked questions

What is probabilistic attribution?
It estimates which ad interaction caused an install without an identifier shared between the click and the install, inferring the link from signals such as timing, geography, device type and network. Because it is an estimate rather than a match, its output carries an error rate that varies enormously with traffic density and window width.
Is probabilistic attribution allowed on iOS?
It depends entirely on the method. Aggregate approaches such as SKAdNetwork reporting, incrementality tests and media mix modelling are permitted and widely used. Per-install matching that derives a device signature from characteristics such as IP address, screen dimensions and system configuration is fingerprinting, which App Store Review Guideline 5.1.2 prohibits regardless of ATT status.
How accurate is probabilistic attribution?
There is no single figure, and anyone quoting one without conditions is selling something. Accuracy depends on how many clicks share the same coarse signals inside the matching window, so it is best for small distinctive audiences and worst for high-volume campaigns in dense markets — which is exactly where the largest budgets sit.
When should I use probabilistic attribution?
Use it at the campaign or channel level to estimate how much a spend moved a total, and only after you have maximised the deterministic signals available to you. Report modelled numbers in a separate column from matched ones, and validate the important decisions with a holdout or geo test rather than with the model alone.
What is the difference between probabilistic attribution and incrementality testing?
Probabilistic attribution tries to assign credit for conversions that already happened, while incrementality testing withholds ads from a comparable group to measure what would have happened without them. The second answers the causal question directly and is much harder to game, which is why it remains the strongest evidence available for a budget decision.

Related terms

  • Deterministic attributionDeterministic attribution credits an install to a specific click by matching an identifier that is present in both records, producing a one-to-one link rather than a statistical estimate.
  • Fingerprint attributionFingerprint attribution matches an install to a click by building a signature from device and network characteristics such as IP address, screen dimensions, OS version and locale, rather than from an identifier either party consented to share.
  • SKAdNetworkSKAdNetwork is Apple's StoreKit framework that attributes app installs to advertising campaigns without exposing a device identifier, by having the operating system send a delayed, aggregated postback to the ad network that won the install.
  • View-through attributionView-through attribution credits an install or conversion to an ad impression the user saw but never clicked, provided the conversion happens inside a view window that is usually much shorter than the click window.