ananas.team
§ 07·ARTICLE
AnalyticsThe ananas.team crew··

SKAdNetwork and SKAN 4.0: Why Your iOS Attribution Lies, and What to Do About It

If you have an app and any budget at all on iOS, your attribution is broken. Not “might be broken.” Broken. The only question is whether you know it.

ATT killed the deterministic “click → install” link. Apple no longer tells you who came from where. Instead you get SKAdNetwork, which hands you fragments of data with delay, noise and a privacy threshold that leaves half your postbacks empty. And you are supposed to make budget decisions on those fragments.

The nastiest part is that fintech gets hit hardest of all. Why? The funnel is long. Install, signup, verification, first deposit, first trade — it stretches over days, sometimes weeks. And SKAN lives inside a postback window. An event that happens on day ten simply will not make it into a default setup. You optimize for installs and signups while the paying customer appears beyond your line of sight.

What a conversion value actually is, and why 6 bits decide everything

In SKAN you encode the state of a user into a single number — the conversion value. In the fine variant that is 6 bits, meaning values from 0 to 63. That's all. Your entire funnel has to fit into 64 states.

Sounds tight. In practice it is enough, as long as you don't try to cram everything in there. The classic mistake is encoding every twitch: opened a screen, tapped a button, checked the quotes. Don't. Encode what moves money: signup, KYC passed, account funded, first trade completed. Four or five states that genuinely mean something to the business.

And the priority here is by value, not by the order in which things happen. If someone funded their account, that matters more than the ten onboarding screens they scrolled through. Encode the highest state reached, not the most recent one.

Three postback windows — and why everyone forgets about them

SKAN 4.0 brought three windows instead of one: 0–2 days, 3–7 days, 8–35 days. That alone made the upgrade worth doing. A long funnel now fits.

But there is a catch — the lock window. You can “freeze” the conversion value early to get data sooner. And this is where people shoot themselves in the foot: they lock the value on day two, enjoy the speed, and lose everything that happened afterwards. For fintech, with its two-week cycle to the first trade, that is suicide. Don't rush the lock — completeness matters more to you than speed.

A contentious take I expect to be corrected on: for most fintech apps the second and third windows matter more than the first. Everyone configures the first window, because it is the default. But the money lives in the third. If you don't have a proper mapping for 8–35 days, you have thrown away half the point of SKAN 4.0.

Coarse value is not a “fallback,” it is the reality

When a campaign has little traffic, Apple will not give you the fine value. The privacy threshold kicks in, and instead of a detailed number you get a coarse one: low / medium / high. Three buckets instead of 64.

People configure the fine value and ignore coarse. Then they wonder why new or small campaigns report nothing but zeros. Configure both. Coarse should split your funnel into three meaningful chunks, so that even on low traffic you can tell whether it was a signup or a paying customer.

What to check right now

Open the SKAN configuration in your MMP. Look at three things. First, whether there is any mapping for the third window at all, or whether the whole funnel is squeezed into the first two days. Second, whether the coarse value is configured or left empty. Third, whether a lock window is sitting somewhere it is cutting off your delayed conversions.

If you stumbled on even one of those, data is leaking, and you are paying for it with real budget that Smart Bidding is pouring in the wrong direction.


§ 08·RELATED