โœฆFree to use ยท ยฃ0.02 per attributed purchase

Know where your
paying users come from.

Simple attribution for indie iOS developers. Track which link, influencer, or campaign drove each install and purchase. Two lines of code. No enterprise nonsense.

MyApp.swift
// That's it. Seriously.
import LinkOwl

LinkOwl.configure(apiKey: "lo_live_xxxx")
LinkOwl.trackInstall()

How it works

Create a link, share it, see exactly which clicks turned into installs and purchases.

๐Ÿ”—
STEP 01

Create a tracking link

One unique link per campaign, influencer, or channel. Share it anywhere โ€” TikTok bio, email, Reddit.

๐Ÿ“ฆ
STEP 02

Add two lines of Swift

One Swift Package, two function calls. Works with VibeCode, Cursor, Xcode โ€” any tool that builds iOS apps.

๐Ÿ“Š
STEP 03

See the full chain

Click โ†’ Install โ†’ Purchase. Attributed to the exact link that drove it. RevenueCat webhook does the rest.

The attribution chain

๐Ÿ‘†User clicks your LinkOwl tracking link
๐Ÿ”Fingerprint captured (IP hash + device, no IDFA)
๐Ÿ“ฑRedirected to App Store
โฌ‡๏ธUser installs your app
๐Ÿ”—SDK fires trackInstall() โ†’ fingerprint matched to click
๐Ÿ’ฐUser purchases โ†’ RevenueCat webhook fires
โœ…Purchase attributed to original link

Built for indie devs

Not enterprise marketing teams. Not adtech giants. You.

Privacy-first

No IDFA. No IDFV. No persistent device IDs. IP hashed with daily-rotating salt. GDPR-safe by design.

Works with AI tools

Building with Cursor, VibeCode, or Windsurf? The SDK README is written so AI can integrate it from a single prompt.

RevenueCat native

Already using RevenueCat? Add one webhook URL. Purchases are attributed automatically. Zero extra code.

Tiny footprint

Under 50KB. No background tasks. No analytics bloat. Silent failures โ€” never crashes your app.

Honest pricing

Free forever. We take ยฃ0.02 only when RevenueCat confirms a purchase we attributed to one of your links.

ยฃ0.02
per attributed first purchase

Renewals? Free. Unattributed purchases? Free.

No monthly fee. No per-install charge. No minimum.

100 attributed purchases = ยฃ2.00. That's your total cost.

Get started free

Stop guessing. Start attributing.

Set up in under 5 minutes. Know exactly where your revenue comes from.

Create your free account โ†’