The ATT Problem (and How We Solved It)
It was May 2021, three weeks after iOS 14.5 landed. A developer emailed me from a small studio in Manchester: 'My installs doubled last month, but I have no idea where they came from. Branch wants £300/month. I can't afford that.' I read it twice. That message was the entire reason we built Attribr.
When IDFA Died, Attribution Didn't Have To
Let's be clear about what happened in May 2021. Apple made it optional for users to grant IDFA (Identifier For Advertisers) permission via the App Tracking Transparency prompt. Overnight, the fingerprinting and tracking landscape changed. Most users said no. The enterprises - Branch, AppsFlyer, Adjust - pivoted to probabilistic matching and fingerprinting. But their solutions stayed expensive and heavy.
The real problem wasn't technical. It was philosophical. Those SDKs were built for teams with data scientists on staff. They made money by selling analytics at scale. A solo developer or a five-person studio didn't fit their model.
We asked ourselves a different question: what if you could know where installs came from without asking permission, without loading a 5MB dependency, and without burning £300 a month?
Deterministic Matching First, Then the Rest
The foundation is deterministic matching. When an ad network fires a click, it passes parameters: source, campaign ID, creative ID, timestamp. Those parameters travel through the iOS deeplink system and land in your app. If Attribr sees those parameters on install, we match the click to the install with certainty. No guesswork. No fingerprinting required.
That works brilliantly when networks cooperate. But not all of them do. Some campaigns run through partners, some clicks get lost in the redirect chain, some users take fifteen minutes to install after tapping an ad.
That's where probabilistic matching enters. We look at a lightweight set of signals - approximate timing, IP subnet, device type, language, carrier - and calculate the probability that a given install came from a given click. We're not trying to create a permanent device fingerprint. We're solving one discrete problem: did this user tap that ad before they installed?
The math runs locally on-device. Your SDK is 50KB. Launch overhead is under 50 milliseconds. Zero third-party dependencies. We can do this because we're not trying to be a data warehouse. We're trying to solve one problem well.
The Three Questions We Answer
Every indie developer asks the same three things: where did this install come from, is this user actually active two weeks later, and if they came from a Rippl promoter, who was it?
The first question is attribution: deterministic + probabilistic matching gives you a source. The second is retention cohort tracking at 7, 14, and 30 days. We track it without collecting personal data. We don't need a login, a device ID, or anything sensitive. You define a custom event (a purchase, a level completed, a content unlock) and we tell you what percentage of users from each source hit that event by day 7, 14, or 30.
The third is the Rippl bridge. Rippl is a performance-marketing platform built by community promoters - streamers, content creators, affiliate partners. If a user installs your app via a Rippl promoter's link, Attribr passes that signal back to Rippl automatically. You pay the promoter only for installs that stick, and Rippl handles the logistics. It's the only attribution SDK with this built-in.
Put together, you can see exactly what's working. Campaign A brought installs cheap, but they churn by day 14. Campaign B brought fewer installs, but 60% are still active at day 30. That's the insight that matters.
Three Lines of Code, No Permissions Needed
Integration is intentionally minimal. Swift or Kotlin. Three lines. You call Attribr.track() on launch, you log custom events (purchases, signups, retention milestones), and you query the dashboard for cohort and retention charts.
You never ask the user for ATT permission. You never send PII. You never load third-party trackers. The SDK runs, collects what it needs locally, and sends anonymised attribution data to our dashboard. That's it.
We chose this design because we remembered what enterprise SDKs felt like to integrate. Fifteen configuration keys. A privacy lawyer needed to review the tracking consent. Thirty KB of code doing things you didn't understand. We wanted the opposite: transparent, lightweight, indie-focused.
Why This Matters Now
iOS 14.5+ didn't kill attribution. It killed the assumption that everyone could afford enterprise tools. Millions of indie developers and small studios released apps without knowing if their marketing worked. Some went back to guessing. Some paid for tools they barely used.
Attribr exists because that situation seemed wrong. You shouldn't need a £300/month budget or a privacy team to understand your install sources and user retention. You shouldn't need to ask permission to see if your marketing worked.
The deterministic + probabilistic approach isn't new. But building it small, focused, and indie-first was. That's the bet we made. That's what the SDK reflects.
If you've been flying blind on iOS 14.5+ installs, or if you're tired of paying enterprise prices for studio-scale data, does the thought of knowing your retention curves and attribution sources without ATT permission actually change how you'd run your next campaign?