Skip to main content

The SKAdNetwork



SKAdNetwork (StoreKit Ad Network) is Apple’s system for measuring ad performance on iOS in a privacy-preserving way—introduced as part of the shift away from user-level tracking after App Tracking Transparency.

It’s basically Apple’s answer to:

“How do advertisers know an ad worked without tracking the person who saw it?”



1) The core idea

Instead of telling advertisers:

“User X saw ad Y and installed app Z”


SKAdNetwork only tells them:

“An install happened, attributed to ad campaign Y”


…but:

• no personal identity

• no device ID (like IDFA)

• no cross-app tracking data


So it’s aggregated, delayed, and anonymised attribution.



2) How it works (step-by-step)


Step 1: Ad impression / click

A user sees or clicks an ad inside an app on iOS.

The ad network registers:

• campaign ID

• ad network ID

• basic metadata

But not the user identity.


Step 2: App install happens

If the user installs the advertised app within a time window, iOS records:

“This install is associated with campaign X”


But again:

no user-level data is shared


Step 3: Apple signs the attribution

iOS generates a signed postback (a cryptographically verified message).

This is sent to the ad network with:

• campaign ID

• conversion value (limited info)

• coarse timing (delayed)

No device identifiers included.


Step 4: Delayed reporting

Reports are intentionally delayed (often hours to days) and sometimes randomised.


This prevents:

real-time tracking of individual behaviour

correlation of events back to a specific person


3) What advertisers actually get

They receive:

• number of installs per campaign

• limited conversion signals (e.g. whether user opened app, made purchase category-level signals)

• rough timing buckets


They do NOT get:

IP address

device ID (IDFA)

precise user journey

cross-app identity


4) What “conversion value” means

SKAdNetwork allows a small encoded number called a conversion value.


Apps can use it to signal things like:

• user opened app

• completed onboarding

• made a purchase tier (very limited encoding space)


But:

• it’s heavily compressed

• not user-specific

• not real-time


5) What SKAdNetwork breaks

It removes or weakens:


❌ User-level attribution

No more “this specific user clicked ad and bought product”


❌ Cross-app tracking

No linking behaviour across multiple apps


❌ Real-time feedback loops

Advertisers can’t instantly optimise based on live user behaviour



6) What still works (important)

Even with SKAdNetwork:

✔ Campaign-level optimisation

Advertisers can still see:

which ads perform better overall


✔ Aggregate performance tracking

installs per campaign

rough ROI estimation


✔ Model-based inference

Companies like Google and Meta Platforms use:

statistical modelling

cohort analysis

machine learning prediction

..to fill in the gaps.


7) Why it’s controversial in ad tech

Advertisers dislike SKAdNetwork because it:

• removes user-level visibility

• reduces precision targeting

• slows feedback loops

• makes optimisation harder


Privacy advocates like it because it:

• prevents surveillance-style tracking

• reduces identity leakage

• enforces aggregation


8) The big tradeoff

SKAdNetwork is built on a simple principle:

“Advertisers can know what worked, but not who you are or what you did specifically.”


So it shifts advertising from:

individual tracking → aggregate measurement



Summary

SKAdNetwork is Apple’s privacy-preserving system that lets advertisers measure campaign performance on iOS without exposing user identity or enabling cross-app tracking.



How advertisers “hack around” its limits using modelling and server-side signals


Okay, so they don’t “hack” SKAdNetwork in the illegal sense—what they do is reconstruct missing detail using statistical modelling, server-side data, and correlation tricks. The effect is that they recover some of the lost signal from SKAdNetwork and App Tracking Transparency, but only probabilistically.


Here’s how that actually works.



1) The big shift: from user data → prediction

After iOS privacy changes, advertisers lost:

• device IDs (IDFA)

• direct user-level attribution

• real-time conversion feedback


So they switched to:

“We don’t observe the user—we infer what likely happened based on patterns.”


This is called probabilistic attribution modelling.



2) Conversion modelling (filling in SKAdNetwork gaps)

SKAdNetwork only gives:

• campaign-level installs

• delayed, aggregated signals

• limited “conversion values”


So advertisers build models that guess missing detail.


How it works:

They train models using:

• historical pre-ATT data (when tracking was richer)

• current SKAdNetwork aggregates

• known campaign performance patterns


Then they predict:

• which users likely converted early vs late

• which campaigns likely drove high-value users

• expected lifetime value (LTV) distributions


So instead of:

“User X bought item Y”


They get:

“This campaign likely produces high-value users at a rate of ~Z%”



3) Server-side tracking (the biggest workaround)

Instead of relying on the phone to send data, companies move logic to servers.


Example flow:

User clicks ad in an app

They land on a website or app backend


The server logs:

• click timestamp

• campaign ID

• session behaviour

• purchase or signup happens on server


Server tries to match events using:

timing correlation

campaign parameters

probabilistic identifiers


This is called server-side event tracking.


It avoids iOS restrictions because:

• data is collected by the advertiser’s server, not the device OS



4) “Click-through reconstruction” (timing correlation)

Even without user IDs, advertisers exploit timing patterns:


If:

Ad click happens at 10:01

App install occurs at 10:03

Purchase occurs at 10:08


They infer:

• likely same user journey


SKAdNetwork intentionally introduces delays and noise to reduce this, but modelling still extracts trends.



5) Fingerprint-assisted probabilistic linking (limited but still used)

Even though Apple restricts fingerprinting, some weak signals remain:

• IP region consistency (not exact identity)

• device model distributions (e.g. iPhone 14 users behave differently than iPhone SE users)

• app version + OS version combinations

• session timing patterns


These are used not to identify individuals, but to improve:

“Which cluster of users likely converted?”



6) Cohort and aggregate inference (very important)

Instead of tracking individuals, advertisers build cohorts:


Example:

“Users acquired from TikTok ads in UK, iOS 17, last 7 days”


Then they measure:

• install rate

• retention

• revenue distribution


They compare cohorts across campaigns to optimise spending.


This works even with SKAdNetwork because:

SKAdNetwork still provides aggregate outputs per campaign



7) “Conversion value mapping” tricks

Apps encode behaviour into SKAdNetwork’s limited conversion value field.


Example encoding:

0 = installed only

1 = opened app

2 = completed onboarding

3 = added to cart

4 = purchased


Advertisers then:

• decode patterns across campaigns

• estimate funnel drop-off rates

• reconstruct partial user journeys statistically


It’s lossy, but still useful at scale.



8) Machine learning reconstruction (the real engine)

Big platforms like Google and Meta Platforms use ML models that:

• ingest SKAdNetwork aggregates

• combine with historical user-level datasets (pre-ATT)

• simulate likely user journeys

• adjust predictions in real time


The result is:

synthetic reconstruction of user behaviour patterns


Not exact tracking—but very effective forecasting.



Identity stitching still happens (just differently)

Even with ATT, identity resolution still exists via:


A) Logged-in accounts

Facebook / Instagram / Google accounts remain strongest identifiers


B) First-party data

websites collect emails, purchases, phone numbers

then upload hashed identifiers to ad platforms


C) Offline-to-online matching

loyalty programs

email signups

purchase receipts


These become anchors that reconnect probabilistic data.



The key limitation (important reality check)

All of this “workaround” tracking:

• is less precise than old IDFA-based tracking

• introduces uncertainty

• works best in large-scale aggregate systems, not individual certainty


So the system shifts from:

“we know exactly who did what”

to:

“we’re highly confident this type of user did this thing”



Summary

After SKAdNetwork and App Tracking Transparency, advertisers didn’t stop tracking—they switched to:

server-side event collection + probabilistic modelling + cohort analysis to reconstruct user behaviour indirectly rather than directly.

Comments